Commit 844af82c authored by davelopez's avatar davelopez
Browse files

Use correct model_store_format when importing from uri

parent 6a00dc65
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -168,6 +168,7 @@ class ModelStoreManager:
            self._app,
            galaxy_user,
            import_options,
            model_store_format=request.model_store_format,
        )
        new_history = history is None and not request.for_library
        if new_history:
+4 −4
Original line number Diff line number Diff line
@@ -2241,7 +2241,7 @@ def source_to_import_store(
    app: StoreAppProtocol,
    galaxy_user: Optional[model.User],
    import_options: Optional[ImportOptions],
    model_store_format: Optional[str] = None,
    model_store_format: Optional[ModelStoreFormat] = None,
) -> ModelImportStore:
    if isinstance(source, dict):
        if model_store_format is not None:
@@ -2279,8 +2279,8 @@ def source_to_import_store(
                target_path, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler
            )
        else:
            model_store_format = model_store_format or "tgz"
            if model_store_format in ["tar.gz", "tgz", "tar"]:
            model_store_format = model_store_format or ModelStoreFormat.TGZ
            if ModelStoreFormat.is_compressed(model_store_format):
                try:
                    temp_dir = mkdtemp()
                    target_dir = CompressedFile(target_path).extract(temp_dir)
@@ -2290,7 +2290,7 @@ def source_to_import_store(
                model_import_store = get_import_model_store_for_directory(
                    target_dir, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler
                )
            elif model_store_format in ["bag.gz", "bag.tar", "bag.zip"]:
            elif ModelStoreFormat.is_bag(model_store_format):
                model_import_store = BagArchiveImportModelStore(
                    target_path, import_options=import_options, app=app, user=galaxy_user
                )
+8 −0
Original line number Diff line number Diff line
@@ -1291,6 +1291,14 @@ class ModelStoreFormat(str, Enum):
    BAG_DOT_TAR = "bag.tar"
    BAG_DOT_TGZ = "bag.tgz"

    @classmethod
    def is_compressed(cls, value: "ModelStoreFormat"):
        return value in [cls.TAR_DOT_GZ, cls.TGZ, cls.TAR, cls.ROCRATE_ZIP]

    @classmethod
    def is_bag(cls, value: "ModelStoreFormat"):
        return value in [cls.BAG_DOT_TAR, cls.BAG_DOT_TGZ, cls.BAG_DOT_ZIP]


class StoreContentSource(Model):
    store_content_uri: Optional[str]
+2 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ from pydantic import (
from .schema import (
    DatasetSourceType,
    HistoryContentType,
    ModelStoreFormat,
    StoreExportPayload,
    WriteStoreToPayload,
)
@@ -82,6 +83,7 @@ class ImportModelStoreTaskRequest(BaseModel):
    history_id: Optional[int]
    source_uri: str
    for_library: bool
    model_store_format: Optional[ModelStoreFormat]


class MaterializeDatasetInstanceTaskRequest(BaseModel):
+1 −0
Original line number Diff line number Diff line
@@ -278,6 +278,7 @@ class HistoriesService(ServiceBase, ConsumesModelStores, ServesExportStores):
            user=trans.async_request_user,
            source_uri=source_uri,
            for_library=False,
            model_store_format=payload.model_store_format,
        )
        result = import_model_store.delay(request=request)
        return async_task_summary(result)