Commit 9b1301e6 authored by Dannon Baker's avatar Dannon Baker
Browse files

Apply black to forward merge

parent 82d5b4ea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ def add_empty_response_middleware(app: FastAPI) -> None:

def add_sentry_middleware(app: FastAPI) -> None:
    from sentry_sdk.integrations.asgi import SentryAsgiMiddleware

    app.add_middleware(SentryAsgiMiddleware)


+25 −21
Original line number Diff line number Diff line
@@ -204,15 +204,14 @@ def administrative_delete_datasets(
    # We really only need the id column here, but sqlalchemy barfs when
    # trying to select only 1 column
    hda_ids_query = sa.select(
        (app.model.HistoryDatasetAssociation.__table__.c.id,
         app.model.HistoryDatasetAssociation.__table__.c.deleted),
        (app.model.HistoryDatasetAssociation.__table__.c.id, app.model.HistoryDatasetAssociation.__table__.c.deleted),
        whereclause=and_(
            app.model.Dataset.__table__.c.deleted == false(),
            app.model.HistoryDatasetAssociation.__table__.c.update_time < cutoff_time,
            app.model.HistoryDatasetAssociation.__table__.c.deleted == false()),
        from_obj=[sa.outerjoin(
                  app.model.Dataset.__table__,
                  app.model.HistoryDatasetAssociation.__table__)])
            app.model.HistoryDatasetAssociation.__table__.c.deleted == false(),
        ),
        from_obj=[sa.outerjoin(app.model.Dataset.__table__, app.model.HistoryDatasetAssociation.__table__)],
    )

    # Add all datasets associated with Histories to our list
    hda_ids = []
@@ -233,19 +232,22 @@ def administrative_delete_datasets(
    # Process each of the Dataset objects
    for hda_id in hda_ids:
        user_query = sa.select(
            [app.model.HistoryDatasetAssociation.__table__,
             app.model.History.__table__,
             app.model.User.__table__],
            whereclause=and_(
                app.model.HistoryDatasetAssociation.__table__.c.id == hda_id),
            from_obj=[sa.join(app.model.User.__table__,
                              app.model.History.__table__)
                      .join(app.model.HistoryDatasetAssociation.__table__)],
            use_labels=True)
            [app.model.HistoryDatasetAssociation.__table__, app.model.History.__table__, app.model.User.__table__],
            whereclause=and_(app.model.HistoryDatasetAssociation.__table__.c.id == hda_id),
            from_obj=[
                sa.join(app.model.User.__table__, app.model.History.__table__).join(
                    app.model.HistoryDatasetAssociation.__table__
                )
            ],
            use_labels=True,
        )
        for result in app.sa_session.execute(user_query):
            user_notifications[result[app.model.User.__table__.c.email]].append(
                (result[app.model.HistoryDatasetAssociation.__table__.c.name],
                 result[app.model.History.__table__.c.name]))
                (
                    result[app.model.HistoryDatasetAssociation.__table__.c.name],
                    result[app.model.History.__table__.c.name],
                )
            )
            deleted_instance_count += 1
            if not info_only and not email_only:
                # Get the HistoryDatasetAssociation objects
@@ -282,10 +284,12 @@ def _get_tool_id_for_hda(app, hda_id):
    # TODO Some datasets don't seem to have an entry in jtod or a copied_from
    if hda_id is None:
        return None
    job = app.sa_session.query(app.model.Job).\
        join(app.model.JobToOutputDatasetAssociation).\
        filter(app.model.JobToOutputDatasetAssociation.__table__.c.dataset_id
               == hda_id).first()
    job = (
        app.sa_session.query(app.model.Job)
        .join(app.model.JobToOutputDatasetAssociation)
        .filter(app.model.JobToOutputDatasetAssociation.__table__.c.dataset_id == hda_id)
        .first()
    )
    if job is not None:
        return job.tool_id
    else:
+100 −65
Original line number Diff line number Diff line
@@ -222,14 +222,17 @@ def delete_userless_histories(app, cutoff_time, info_only=False, force_retry=Fal
    history_count = 0
    start = time.time()
    if force_retry:
        histories = app.sa_session.query(app.model.History) \
                                  .filter(and_(app.model.History.__table__.c.user_id == null(),
                                               app.model.History.update_time < cutoff_time))
        histories = app.sa_session.query(app.model.History).filter(
            and_(app.model.History.__table__.c.user_id == null(), app.model.History.update_time < cutoff_time)
        )
    else:
        histories = app.sa_session.query(app.model.History) \
                                  .filter(and_(app.model.History.__table__.c.user_id == null(),
        histories = app.sa_session.query(app.model.History).filter(
            and_(
                app.model.History.__table__.c.user_id == null(),
                app.model.History.__table__.c.deleted == false(),
                                               app.model.History.update_time < cutoff_time))
                app.model.History.update_time < cutoff_time,
            )
        )
    for history in histories:
        if not info_only:
            log.info("Deleting history id %d", history.id)
@@ -252,16 +255,23 @@ def purge_histories(app, cutoff_time, remove_from_disk, info_only=False, force_r
    history_count = 0
    start = time.time()
    if force_retry:
        histories = app.sa_session.query(app.model.History) \
                                  .filter(and_(app.model.History.__table__.c.deleted == true(),
                                               app.model.History.update_time < cutoff_time)) \
                                  .options(joinedload('datasets'))
        histories = (
            app.sa_session.query(app.model.History)
            .filter(and_(app.model.History.__table__.c.deleted == true(), app.model.History.update_time < cutoff_time))
            .options(joinedload("datasets"))
        )
    else:
        histories = app.sa_session.query(app.model.History) \
                                  .filter(and_(app.model.History.__table__.c.deleted == true(),
        histories = (
            app.sa_session.query(app.model.History)
            .filter(
                and_(
                    app.model.History.__table__.c.deleted == true(),
                    app.model.History.__table__.c.purged == false(),
                                               app.model.History.update_time < cutoff_time)) \
                                  .options(joinedload('datasets'))
                    app.model.History.update_time < cutoff_time,
                )
            )
            .options(joinedload("datasets"))
        )
    for history in histories:
        log.info("### Processing history id %d (%s)", history.id, unicodify(history.name))
        for dataset_assoc in history.datasets:
@@ -296,14 +306,19 @@ def purge_libraries(app, cutoff_time, remove_from_disk, info_only=False, force_r
    library_count = 0
    start = time.time()
    if force_retry:
        libraries = app.sa_session.query(app.model.Library) \
                                  .filter(and_(app.model.Library.__table__.c.deleted == true(),
                                               app.model.Library.__table__.c.update_time < cutoff_time))
        libraries = app.sa_session.query(app.model.Library).filter(
            and_(
                app.model.Library.__table__.c.deleted == true(), app.model.Library.__table__.c.update_time < cutoff_time
            )
        )
    else:
        libraries = app.sa_session.query(app.model.Library) \
                                  .filter(and_(app.model.Library.__table__.c.deleted == true(),
        libraries = app.sa_session.query(app.model.Library).filter(
            and_(
                app.model.Library.__table__.c.deleted == true(),
                app.model.Library.__table__.c.purged == false(),
                                               app.model.Library.__table__.c.update_time < cutoff_time))
                app.model.Library.__table__.c.update_time < cutoff_time,
            )
        )
    for library in libraries:
        _purge_folder(library.root_folder, app, remove_from_disk, info_only=info_only)
        if not info_only:
@@ -327,14 +342,20 @@ def purge_folders(app, cutoff_time, remove_from_disk, info_only=False, force_ret
    folder_count = 0
    start = time.time()
    if force_retry:
        folders = app.sa_session.query(app.model.LibraryFolder) \
                                .filter(and_(app.model.LibraryFolder.__table__.c.deleted == true(),
                                             app.model.LibraryFolder.__table__.c.update_time < cutoff_time))
        folders = app.sa_session.query(app.model.LibraryFolder).filter(
            and_(
                app.model.LibraryFolder.__table__.c.deleted == true(),
                app.model.LibraryFolder.__table__.c.update_time < cutoff_time,
            )
        )
    else:
        folders = app.sa_session.query(app.model.LibraryFolder) \
                                .filter(and_(app.model.LibraryFolder.__table__.c.deleted == true(),
        folders = app.sa_session.query(app.model.LibraryFolder).filter(
            and_(
                app.model.LibraryFolder.__table__.c.deleted == true(),
                app.model.LibraryFolder.__table__.c.purged == false(),
                                             app.model.LibraryFolder.__table__.c.update_time < cutoff_time))
                app.model.LibraryFolder.__table__.c.update_time < cutoff_time,
            )
        )
    for folder in folders:
        _purge_folder(folder, app, remove_from_disk, info_only=info_only)
        folder_count += 1
@@ -348,30 +369,36 @@ def delete_datasets(app, cutoff_time, remove_from_disk, info_only=False, force_r
    # Marks datasets as deleted if associated items are all deleted.
    start = time.time()
    if force_retry:
        history_dataset_ids_query = sa.select((app.model.Dataset.__table__.c.id,
                                               app.model.Dataset.__table__.c.state),
        history_dataset_ids_query = sa.select(
            (app.model.Dataset.__table__.c.id, app.model.Dataset.__table__.c.state),
            whereclause=app.model.HistoryDatasetAssociation.__table__.c.update_time < cutoff_time,
                                              from_obj=[sa.outerjoin(app.model.Dataset.__table__,
                                                                     app.model.HistoryDatasetAssociation.__table__)])
        library_dataset_ids_query = sa.select((app.model.LibraryDataset.__table__.c.id,
                                               app.model.LibraryDataset.__table__.c.deleted),
            from_obj=[sa.outerjoin(app.model.Dataset.__table__, app.model.HistoryDatasetAssociation.__table__)],
        )
        library_dataset_ids_query = sa.select(
            (app.model.LibraryDataset.__table__.c.id, app.model.LibraryDataset.__table__.c.deleted),
            whereclause=app.model.LibraryDataset.__table__.c.update_time < cutoff_time,
                                              from_obj=[app.model.LibraryDataset.__table__])
            from_obj=[app.model.LibraryDataset.__table__],
        )
    else:
        # We really only need the id column here, but sqlalchemy barfs when trying to select only 1 column
        history_dataset_ids_query = sa.select((app.model.Dataset.__table__.c.id,
                                               app.model.Dataset.__table__.c.state),
                                              whereclause=and_(app.model.Dataset.__table__.c.deleted == false(),
        history_dataset_ids_query = sa.select(
            (app.model.Dataset.__table__.c.id, app.model.Dataset.__table__.c.state),
            whereclause=and_(
                app.model.Dataset.__table__.c.deleted == false(),
                app.model.HistoryDatasetAssociation.__table__.c.update_time < cutoff_time,
                                                               app.model.HistoryDatasetAssociation.__table__.c.deleted == true()),
                                              from_obj=[sa.outerjoin(app.model.Dataset.__table__,
                                                                     app.model.HistoryDatasetAssociation.__table__)])
        library_dataset_ids_query = sa.select((app.model.LibraryDataset.__table__.c.id,
                                               app.model.LibraryDataset.__table__.c.deleted),
                                              whereclause=and_(app.model.LibraryDataset.__table__.c.deleted == true(),
                app.model.HistoryDatasetAssociation.__table__.c.deleted == true(),
            ),
            from_obj=[sa.outerjoin(app.model.Dataset.__table__, app.model.HistoryDatasetAssociation.__table__)],
        )
        library_dataset_ids_query = sa.select(
            (app.model.LibraryDataset.__table__.c.id, app.model.LibraryDataset.__table__.c.deleted),
            whereclause=and_(
                app.model.LibraryDataset.__table__.c.deleted == true(),
                app.model.LibraryDataset.__table__.c.purged == false(),
                                                               app.model.LibraryDataset.__table__.c.update_time < cutoff_time),
                                              from_obj=[app.model.LibraryDataset.__table__])
                app.model.LibraryDataset.__table__.c.update_time < cutoff_time,
            ),
            from_obj=[app.model.LibraryDataset.__table__],
        )
    deleted_dataset_count = 0
    deleted_instance_count = 0
    skip = []
@@ -444,16 +471,22 @@ def purge_datasets(app, cutoff_time, remove_from_disk, info_only=False, force_re
    disk_space = 0
    start = time.time()
    if force_retry:
        datasets = app.sa_session.query(app.model.Dataset) \
                                 .filter(and_(app.model.Dataset.__table__.c.deleted == true(),
        datasets = app.sa_session.query(app.model.Dataset).filter(
            and_(
                app.model.Dataset.__table__.c.deleted == true(),
                app.model.Dataset.__table__.c.purgable == true(),
                                              app.model.Dataset.__table__.c.update_time < cutoff_time))
                app.model.Dataset.__table__.c.update_time < cutoff_time,
            )
        )
    else:
        datasets = app.sa_session.query(app.model.Dataset) \
                                 .filter(and_(app.model.Dataset.__table__.c.deleted == true(),
        datasets = app.sa_session.query(app.model.Dataset).filter(
            and_(
                app.model.Dataset.__table__.c.deleted == true(),
                app.model.Dataset.__table__.c.purgable == true(),
                app.model.Dataset.__table__.c.purged == false(),
                                              app.model.Dataset.__table__.c.update_time < cutoff_time))
                app.model.Dataset.__table__.c.update_time < cutoff_time,
            )
        )
    for dataset in datasets:
        file_size = dataset.file_size
        _purge_dataset(app, dataset, remove_from_disk, info_only=info_only)
@@ -523,12 +556,14 @@ def _delete_dataset(dataset, app, remove_from_disk, info_only=False, is_deletabl
        metadata_files = []
        # lets create a list of metadata files, then perform actions on them
        for hda in dataset.history_associations:
            for metadata_file in app.sa_session.query(app.model.MetadataFile) \
                                               .filter(app.model.MetadataFile.__table__.c.hda_id == hda.id):
            for metadata_file in app.sa_session.query(app.model.MetadataFile).filter(
                app.model.MetadataFile.__table__.c.hda_id == hda.id
            ):
                metadata_files.append(metadata_file)
        for ldda in dataset.library_associations:
            for metadata_file in app.sa_session.query(app.model.MetadataFile) \
                                               .filter(app.model.MetadataFile.__table__.c.lda_id == ldda.id):
            for metadata_file in app.sa_session.query(app.model.MetadataFile).filter(
                app.model.MetadataFile.__table__.c.lda_id == ldda.id
            ):
                metadata_files.append(metadata_file)
        for metadata_file in metadata_files:
            op_description = "marked as deleted"