X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fcommon.git;a=blobdiff_plain;f=osm_common%2Ffsmongo.py;fp=osm_common%2Ffsmongo.py;h=a057e378d6da14bbd5a382972d079fa1a15bc12d;hp=487eaf8d042685baa53c7a40b373679540a1d095;hb=40f57c87816f6e3e99f495b4e6f8b5abe8cce7a9;hpb=945fa22703037593544f3ea0c93913d562cf1532 diff --git a/osm_common/fsmongo.py b/osm_common/fsmongo.py index 487eaf8..a057e37 100644 --- a/osm_common/fsmongo.py +++ b/osm_common/fsmongo.py @@ -294,6 +294,7 @@ class FsMongo(FsBase): :param folder: :return: None or raises an exception """ + folder = folder.rstrip("/") try: self.fs.upload_from_stream(folder, BytesIO(), metadata={"type": "dir"}) except errors.FileExists: # make it idempotent @@ -308,6 +309,9 @@ class FsMongo(FsBase): :param dst: destination directory :return: None or raises and exception """ + dst = dst.rstrip("/") + src = src.rstrip("/") + try: dst_cursor = self.fs.find( {"filename": {"$regex": "^{}(/|$)".format(dst)}}, no_cursor_timeout=True @@ -333,6 +337,7 @@ class FsMongo(FsBase): :return: True, False """ f = storage if isinstance(storage, str) else "/".join(storage) + f = f.rstrip("/") cursor = self.fs.find({"filename": f}) @@ -344,7 +349,7 @@ class FsMongo(FsBase): "Multiple files found", http_code=HTTPStatus.INTERNAL_SERVER_ERROR ) - print(requested_file.metadata) + self.logger.debug("Entry {} metadata {}".format(f, requested_file.metadata)) # if no special mode is required just check it does exists if not mode: @@ -365,6 +370,7 @@ class FsMongo(FsBase): :return: file size """ f = storage if isinstance(storage, str) else "/".join(storage) + f = f.rstrip("/") cursor = self.fs.find({"filename": f}) @@ -386,6 +392,7 @@ class FsMongo(FsBase): :return: None """ f = path if isinstance(path, str) else "/".join(path) + f = f.rstrip("/") if type(compressed_object) is tarfile.TarFile: for member in compressed_object.getmembers(): @@ -404,7 +411,9 @@ class FsMongo(FsBase): file_type = "dir" metadata = {"type": file_type, "permissions": member.mode} + member.name = member.name.rstrip("/") + self.logger.debug("Uploading {}".format(member.name)) self.fs.upload_from_stream( f + "/" + member.name, stream, metadata=metadata ) @@ -423,9 +432,9 @@ class FsMongo(FsBase): file_type = "file" metadata = {"type": file_type} + member.filename = member.filename.rstrip("/") - print("Now uploading...") - print(f + "/" + member.filename) + self.logger.debug("Uploading {}".format(member.filename)) self.fs.upload_from_stream( f + "/" + member.filename, stream, metadata=metadata ) @@ -442,6 +451,7 @@ class FsMongo(FsBase): """ try: f = storage if isinstance(storage, str) else "/".join(storage) + f = f.rstrip("/") if "b" in mode: return GridByteStream(f, self.fs, mode) @@ -464,6 +474,7 @@ class FsMongo(FsBase): """ try: f = storage if isinstance(storage, str) else "/".join(storage) + f = f.rstrip("/") files = [] dir_cursor = self.fs.find({"filename": f}) @@ -506,6 +517,7 @@ class FsMongo(FsBase): """ try: f = storage if isinstance(storage, str) else "/".join(storage) + f = f.rstrip("/") file_cursor = self.fs.find({"filename": f}) found = False