Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #3031 (closed)

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

Delete P/D should not delete contents in other datasets

Reported by: wmoore Owned by: jamoore
Priority: blocker Milestone: OMERO-Beta4.2.1
Component: General Version: n.a.
Keywords: n.a. Cc: jburel
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2010-09-30 (17)

Description

If I delete a Project or Dataset and choose to delete contents, the contents should only be deleted if they have no other parents.

Images should remain if they are in any other Datasets and Datasets should remain if they are in any other Projects.

Change History (15)

comment:1 Changed 14 years ago by jmoore

  • Remaining Time set to 0.25
  • Status changed from new to assigned

comment:2 Changed 14 years ago by jmoore

  • Remaining Time changed from 0.25 to 0
  • Resolution set to fixed
  • Status changed from assigned to closed

(In [8264]) Preserving doubly linked Datasets and Images on delete (Fix #3031)

comment:3 Changed 14 years ago by jmoore

(In [8265]) Also preserving Plates on Screen delete (See #3031)

comment:4 Changed 14 years ago by jmoore

(In [8267]) Failing test for SOFT data loss (See #3031, #3032)

comment:5 Changed 14 years ago by cblackburn

(In [8269]) Test added ot check that whether Pixels files are deleted for multiply linked images. See #3031

comment:6 Changed 14 years ago by jmoore

(In [8271]) Fixing ordering of no-doubly-linked-content deletes in spec.xml (See #3031)

comment:7 Changed 14 years ago by wmoore

  • Resolution fixed deleted
  • Status changed from closed to reopened

I find that if ANY of the images in a dataset I'm deleting in Insight (with delete contents) are also in another dataset, then NONE of the images are deleted (end up with some images as orphans).

comment:8 Changed 14 years ago by jmoore

  • Priority changed from major to blocker
  • Remaining Time changed from 0 to 1.5

At the moment, all IDs to be deleted are stored by location in the graph:

 /Dataset/DatasetImageLink/Image:1,2,3,6,7
 /Dataset/DatasetImageLink/Image/Pixels:6,7,8
 ...

making it impossible to decipher which sub-elements belong to which element, so that if Image 1 throws a ConstraintViolation (i.e. is doubly linked) but Image 2 is fine, we can't know which Pixels should be deleted.

This will require significant refactoring to the DeleteIds object making it into a tree structure which knows which deletes belong with super-element.

comment:9 Changed 14 years ago by jmoore

(In [8292]) Refactoring for re-opened content delete issue (See #3031)

comment:10 Changed 14 years ago by jmoore

(In [8293]) Test for re-opened content delete issue (See #3031)

comment:11 Changed 14 years ago by jmoore

  • Remaining Time changed from 1.5 to 0
  • Resolution set to fixed
  • Status changed from reopened to closed

In r8294:

Extensive refactoring of delete logic (Fix #3031)

The moves the logic of deleting from DeleteSpec and DeleteEntry
to DeleteState (formerly DeleteIds). The requirement was that
for a given row delete, it was clear which higher-level object
asked for that delete so that it could be cleanly rolled back.

comment:12 Changed 14 years ago by jmoore

(In [8295]) Fixing DeleteITest compile error (See #3031)

comment:13 Changed 14 years ago by jmoore

(In [8296]) Fixing broken FORCE logic (See #3031)

comment:14 Changed 14 years ago by jmoore

(In [8337]) Missing test from r8294 (See #3031)

comment:15 Changed 14 years ago by jmoore

(In [8356]) Improvement of refactored logic from r8294 (See #3031, #3125, #3130)

EventLogs were getting lost due to rollbacks/releases not being
properly called. This commit introduces a the parent step as a
"finished" marker with a "rollbackOnly" flag set to true when
necessary.

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.69297 sec.)

We're Hiring!