Commit a703be5b authored by Yakubov, Sergey's avatar Yakubov, Sergey
Browse files

call pass user to delete dataset functions

parent 6fdc2efa
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -91,8 +91,8 @@ def purge_hda(hda_manager: HDAManager, hda_id: int):


@galaxy_task(ignore_result=True, action="completely removes a set of datasets from the object_store")
def purge_datasets(dataset_manager: DatasetManager, request: PurgeDatasetsTaskRequest):
    dataset_manager.purge_datasets(request)
def purge_datasets(dataset_manager: DatasetManager, request: PurgeDatasetsTaskRequest, user: model.User):
    dataset_manager.purge_datasets(request, user)


@galaxy_task(ignore_result=True, action="materializing dataset instance")
+1 −1
Original line number Diff line number Diff line
@@ -2428,7 +2428,7 @@ class MinimalJobWrapper(HasResourceParameters):
                # is a bit of hack - our object store abstractions would be stronger
                # and more consistent if tools weren't writing there directly.
                try:
                    dataset.full_delete()
                    dataset.full_delete(user=hda.user)
                except ObjectNotFound:
                    pass

+2 −2
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ class DatasetManager(base.ModelManager[model.Dataset], secured.AccessibleManager
                session.commit()
        return dataset

    def purge_datasets(self, request: PurgeDatasetsTaskRequest):
    def purge_datasets(self, request: PurgeDatasetsTaskRequest, user: model.User):
        """
        Caution: any additional security checks must be done before executing this action.

@@ -106,7 +106,7 @@ class DatasetManager(base.ModelManager[model.Dataset], secured.AccessibleManager
                dataset: model.Dataset = self.session().query(model.Dataset).get(dataset_id)
                if dataset.user_can_purge:
                    try:
                        dataset.full_delete()
                        dataset.full_delete(user)
                    except Exception:
                        log.exception(f"Unable to purge dataset ({dataset.id})")

+4 −4
Original line number Diff line number Diff line
@@ -439,7 +439,7 @@ class HDAStorageCleanerManager(base.StorageCleanerManager):
            with transaction(session):
                session.commit()

        self._request_full_delete_all(dataset_ids_to_remove)
        self._request_full_delete_all(dataset_ids_to_remove, user=user)

        return StorageItemsCleanupResult(
            total_item_count=len(item_ids),
@@ -448,15 +448,15 @@ class HDAStorageCleanerManager(base.StorageCleanerManager):
            errors=errors,
        )

    def _request_full_delete_all(self, dataset_ids_to_remove: Set[int]):
    def _request_full_delete_all(self, dataset_ids_to_remove: Set[int], user: model.User):
        use_tasks = self.dataset_manager.app.config.enable_celery_tasks
        request = PurgeDatasetsTaskRequest(dataset_ids=list(dataset_ids_to_remove))
        if use_tasks:
            from galaxy.celery.tasks import purge_datasets

            purge_datasets.delay(request=request)
            purge_datasets.delay(request=request, user=user)
        else:
            self.dataset_manager.purge_datasets(request)
            self.dataset_manager.purge_datasets(request, user=user)


class HDASerializer(  # datasets._UnflattenedMetadataDatasetAssociationSerializer,
+2 −2
Original line number Diff line number Diff line
@@ -4145,7 +4145,7 @@ class Dataset(Base, StorableObject, Serializable):
            and len(self.history_associations) == len(self.purged_history_associations)
        )

    def full_delete(self, user):
    def full_delete(self, user=None):
        """Remove the file and extra files, marks deleted and purged"""
        # os.unlink( self.file_name )
        try:
@@ -5000,7 +5000,7 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot
            self.copy_tags_from(self.user, other_hda)
        self.dataset = new_dataset or other_hda.dataset
        if old_dataset:
            old_dataset.full_delete()
            old_dataset.full_delete(user=self.user)

    def copy(self, parent_id=None, copy_tags=None, flush=True, copy_hid=True, new_name=None):
        """
Loading