Not expected random result when updating n:n link .
One contract had x different services attached, I updated link customercontract-Services documenting SLA and coverage window.
iTOP erased (x-1) services by the last one and at the end, I have under CustomerContract x identical services attached to this one.
I tried to modify and delete services from customercontract window and it doesn't work (I can select services, click on delete and nothing happened, I still have X identical services).
only way to clean my DB is to go on OQL menu: SELECT lnkCustomerContractToService and here I can delete wrong entries and attach again my wanted services.
you can reproduce issue:
if you change SLA related on one Service from CustomerContract , it's OK
if you change Service related from SLA schema, then you regenerate the issue
To reproduce, on a fresh install with sample data:
Variations, still starting from fresh sample data:
Last edit: Romain Quetiez 2016-05-13
One more method to reproduce:
Fix: allow duplicates for such a link set. This change requires an alteration of the data model:
Analysis: such a linkset is not of the same nature as the linksets between contracts and services: A single SLA can list the same contract several times (for various services), which breaks an assumption on link sets as configured by default. See how the search dialog does not propose the objects already related.
Fix implemented in trunk as [r4109]
This fix raises the exposure of a few limitations documented in [#1145], [#1146] and [#1147], but this does not seem to be problematic when it comes to work with SLAs.
Related
Commit: <Commit _id='5358055aa02bb175d1406271:4109' tree_id='1d66e98d3bbf530aa6fbd9e815896582799f9a26' committed=I{'date': datetime.datetime(2016, 5, 20, 8, 1, 40, 686000), 'email': '', 'name': 'romainq'} authored=I{'date': datetime.datetime(2016, 5, 20, 8, 1, 40, 686000), 'email': '', 'name': 'romainq'} message='#1213 Losing SLA data when changing any attribute of an SLA.' parent_ids=I['5358055aa02bb175d1406271:4108'] child_ids=I['5358055aa02bb175d1406271:4110'] repo_ids=I[ObjectId('5358055aa02bb175d1406271')]>
Tickets:
#1145Tickets: #1146
Tickets:
#1147Last edit: Romain Quetiez 2016-05-20
Not reproduced on iTop 2.1.0
Reproduced on trunk, HEAD revision.