From 6585ea3e5a2b68ed7ca3afb72ec816cb841f624d Mon Sep 17 00:00:00 2001 From: aticig Date: Fri, 24 Jun 2022 16:01:05 +0300 Subject: [PATCH] Match the correct clause when interface position is zero Change-Id: I6eacc818c1596442295d39ff704fe56dea319c11 Signed-off-by: aticig --- NG-RO/osm_ng_ro/ns.py | 12 +++++++++-- ...erface_position_zero-2fd0b47297c46dbb.yaml | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/Fix_for_interface_position_zero-2fd0b47297c46dbb.yaml diff --git a/NG-RO/osm_ng_ro/ns.py b/NG-RO/osm_ng_ro/ns.py index 096d4dfd..a7c15628 100644 --- a/NG-RO/osm_ng_ro/ns.py +++ b/NG-RO/osm_ng_ro/ns.py @@ -1087,7 +1087,11 @@ class Ns(object): # If the position info is provided for all the interfaces, it will be sorted # according to position number ascendingly. - if all(i.get("position") for i in target_vdu["interfaces"]): + if all( + i.get("position") + 1 + for i in target_vdu["interfaces"] + if i.get("position") is not None + ): sorted_interfaces = sorted( target_vdu["interfaces"], key=lambda x: (x.get("position") is None, x.get("position")), @@ -1097,7 +1101,11 @@ class Ns(object): # If the position info is provided for some interfaces but not all of them, the interfaces # which has specific position numbers will be placed and others' positions will not be taken care. else: - if any(i.get("position") for i in target_vdu["interfaces"]): + if any( + i.get("position") + 1 + for i in target_vdu["interfaces"] + if i.get("position") is not None + ): n = len(target_vdu["interfaces"]) sorted_interfaces = [-1] * n k, m = 0, 0 diff --git a/releasenotes/notes/Fix_for_interface_position_zero-2fd0b47297c46dbb.yaml b/releasenotes/notes/Fix_for_interface_position_zero-2fd0b47297c46dbb.yaml new file mode 100644 index 00000000..de16ebcc --- /dev/null +++ b/releasenotes/notes/Fix_for_interface_position_zero-2fd0b47297c46dbb.yaml @@ -0,0 +1,21 @@ +####################################################################################### +# Copyright ETSI Contributors and Others. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +####################################################################################### +--- +fixes: + - | + This patch will provide the match the correct if/else clause when the interface + position 0. -- 2.17.1