From: asteroide Date: Thu, 1 Jun 2017 09:43:11 +0000 (+0200) Subject: Do not add assignment if it already exists. X-Git-Tag: opnfv-5.1.RC1~77 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=3643c5376b9e4d55c5718c9bd03c692ece2eb5cb;p=moon.git Do not add assignment if it already exists. Change-Id: Ic73d9db4823368bc8fb5f71b2b9b29af3d3ea1c7 --- diff --git a/moonv4/moon_db/moon_db/backends/sql.py b/moonv4/moon_db/moon_db/backends/sql.py index b9ff332c..d6becbbe 100644 --- a/moonv4/moon_db/moon_db/backends/sql.py +++ b/moonv4/moon_db/moon_db/backends/sql.py @@ -820,8 +820,9 @@ class PolicyConnector(BaseConnector, PolicyDriver): if ref: old_ref = copy.deepcopy(ref.to_dict()) assignments = old_ref["assignments"] - assignments.append(data_id) - setattr(ref, "assignments", assignments) + if data_id not in assignments: + assignments.append(data_id) + setattr(ref, "assignments", assignments) else: ref = SubjectAssignment.from_dict( { @@ -871,8 +872,9 @@ class PolicyConnector(BaseConnector, PolicyDriver): if ref: old_ref = copy.deepcopy(ref.to_dict()) assignments = old_ref["assignments"] - assignments.append(data_id) - setattr(ref, "assignments", assignments) + if data_id not in assignments: + assignments.append(data_id) + setattr(ref, "assignments", assignments) else: ref = ObjectAssignment.from_dict( { @@ -922,9 +924,9 @@ class PolicyConnector(BaseConnector, PolicyDriver): if ref: old_ref = copy.deepcopy(ref.to_dict()) assignments = old_ref["assignments"] - assignments.append(data_id) - # FIXME (asteroide): the setattr doesn't work here ; the assignments is not updated in the database - setattr(ref, "assignments", assignments) + if data_id not in assignments: + assignments.append(data_id) + setattr(ref, "assignments", assignments) else: ref = ActionAssignment.from_dict( {