Skip to content
Snippets Groups Projects
Commit 53f34cf8 authored by kayal2001's avatar kayal2001 Committed by elumalai
Browse files

Bug_Fix-2350 NS Update failed while using Affinity/Anti-Affinity policy


Change-Id: I61898e04eecb7f1b792a3fa47203f4bf5288aa09
Signed-off-by: default avatarkayal2001 <kayalvizhi.v@tataelxsi.co.in>
parent 5305e303
No related branches found
No related tags found
No related merge requests found
Pipeline #17172 passed with stage
in 4 minutes and 11 seconds
......@@ -3065,6 +3065,37 @@ class Ns(object):
return changes_list
def _remove_old_ro_tasks(self, nsr_id: str, changes_list: list, task_param) -> None:
"""Delete all ro_tasks registered for the targets vdurs (target_record)
If task of type CREATE exist then vim will try to get info form deleted VMs.
So remove all task related to target record.
Args:
nsr_id (str): NS record ID
changes_list (list): list of dictionaries to create tasks later
"""
ro_tasks = self.db.get_list("ro_tasks", {"tasks.nsr_id": nsr_id})
for change in changes_list:
if task_param == "task_id":
param_to_check = "{}:{}".format(
change.get("deployment_info", {}).get("action_id"),
change.get("deployment_info", {}).get("task_index"),
)
elif task_param == "target_record":
param_to_check = change["target_record"]
for ro_task in ro_tasks:
for task in ro_task["tasks"]:
if task[task_param] == param_to_check:
self.db.del_one(
"ro_tasks",
q_filter={
"_id": ro_task["_id"],
"modified_at": ro_task["modified_at"],
},
fail_on_empty=False,
)
def recreate(self, session, indata, version, nsr_id, *args, **kwargs):
self.logger.debug("ns.recreate nsr_id={} indata={}".format(nsr_id, indata))
# TODO: validate_input(indata, recreate_schema)
......@@ -3113,6 +3144,7 @@ class Ns(object):
tasks_by_target_record_id=tasks_by_target_record_id,
)
self._remove_old_ro_tasks(nsr_id, changes_list, "target_record")
self.define_all_tasks(
changes_list=changes_list,
db_new_tasks=db_new_tasks,
......@@ -3317,6 +3349,7 @@ class Ns(object):
action_id=action_id,
tasks_by_target_record_id=tasks_by_target_record_id,
)
self._remove_old_ro_tasks(nsr_id, changes_list, "task_id")
self.define_all_tasks(
changes_list=changes_list,
db_new_tasks=db_new_tasks,
......
#######################################################################################
# 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.
#######################################################################################
---
prelude: >
Replace this text with content to appear at the top of the section for this
release. All of the prelude content is merged together and then rendered
separately from the items listed in other parts of the file, so the text
needs to be worded so that both the prelude and the other items make sense
when read independently. This may mean repeating some details. Not every
release note requires a prelude. Usually only notes describing major
features or adding release theme details should have a prelude.
features:
- |
List new features here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
issues:
- |
List known issues here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
upgrade:
- |
List upgrade notes here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
deprecations:
- |
List deprecations notes here, or remove this section. All of the list
items in this section are combined when the release notes are rendered, so
the text needs to be worded so that it does not depend on any information
only available in another section, such as the prelude. This may mean
repeating some details.
critical:
- |
Add critical notes here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
security:
- |
Add security notes here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
fixes:
- |
Add normal bug fixes here, or remove this section. All of the list items
in this section are combined when the release notes are rendered, so the
text needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
other:
- |
Add other notes here, or remove this section. All of the list items in
this section are combined when the release notes are rendered, so the text
needs to be worded so that it does not depend on any information only
available in another section, such as the prelude. This may mean repeating
some details.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment