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

split get_filename and pull for s3 and irods

parent e922c167
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9132,6 +9132,7 @@ class MetadataFile(Base, StorableObject, Serializable):
            alt_name = f"metadata_{identifier}.dat"
            if not object_store.exists(self, extra_dir="_metadata_files", extra_dir_at_root=True, alt_name=alt_name):
                object_store.create(self, extra_dir="_metadata_files", extra_dir_at_root=True, alt_name=alt_name)
            object_store.sync_cache(self,extra_dir="_metadata_files", extra_dir_at_root=True, alt_name=alt_name)
            path = object_store.get_filename(
                self, extra_dir="_metadata_files", extra_dir_at_root=True, alt_name=alt_name
            )
+13 −0
Original line number Diff line number Diff line
@@ -711,6 +711,19 @@ class IRODSObjectStore(DiskObjectStore, CloudConfigMixin):
        return content

    def _get_filename(self, obj, **kwargs):
        base_dir = kwargs.get("base_dir", None)
        dir_only = kwargs.get("dir_only", False)
        obj_dir = kwargs.get("obj_dir", False)
        rel_path = self._construct_path(obj, **kwargs)

        # for JOB_WORK directory
        if base_dir and dir_only and obj_dir:
            return os.path.abspath(rel_path)

        return self._get_cache_path(rel_path)

    def _sync_cache(self, obj, **kwargs):

        ipt_timer = ExecutionTimer()
        base_dir = kwargs.get("base_dir", None)
        dir_only = kwargs.get("dir_only", False)
+14 −0
Original line number Diff line number Diff line
@@ -644,6 +644,20 @@ class S3ObjectStore(ConcreteObjectStore, CloudConfigMixin):
        return content

    def _get_filename(self, obj, **kwargs):

        base_dir = kwargs.get("base_dir", None)
        dir_only = kwargs.get("dir_only", False)
        obj_dir = kwargs.get("obj_dir", False)
        rel_path = self._construct_path(obj, **kwargs)

        # for JOB_WORK directory
        if base_dir and dir_only and obj_dir:
            return os.path.abspath(rel_path)

        return self._get_cache_path(rel_path)

    def _sync_cache(self, obj, **kwargs):

        base_dir = kwargs.get("base_dir", None)
        dir_only = kwargs.get("dir_only", False)
        obj_dir = kwargs.get("obj_dir", False)
+2 −0
Original line number Diff line number Diff line
@@ -585,10 +585,12 @@ class DatasetsService(ServiceBase, UsesVisualizationMixin):
                if filename and filename != "index":
                    object_store = trans.app.object_store
                    dir_name = dataset_instance.dataset.extra_files_path_name
                    dataset_instance.sync_cache(extra_dir=dir_name, alt_name=filename, trans=trans)
                    file_path = object_store.get_filename(
                        dataset_instance.dataset, extra_dir=dir_name, alt_name=filename
                    )
                else:
                    dataset_instance.sync_cache(trans=trans)
                    file_path = dataset_instance.file_name
                rval = open(file_path, "rb")
            else: