projects
/
osm
/
common.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug 1977: Strip trailing /
[osm/common.git]
/
osm_common
/
fsmongo.py
diff --git
a/osm_common/fsmongo.py
b/osm_common/fsmongo.py
index
487eaf8
..
a057e37
100644
(file)
--- 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
"""
: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
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
"""
: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
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)
:return: True, False
"""
f = storage if isinstance(storage, str) else "/".join(storage)
+ f = f.rstrip("/")
cursor = self.fs.find({"filename": f})
cursor = self.fs.find({"filename": f})
@@
-344,7
+349,7
@@
class FsMongo(FsBase):
"Multiple files found", http_code=HTTPStatus.INTERNAL_SERVER_ERROR
)
"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:
# 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)
:return: file size
"""
f = storage if isinstance(storage, str) else "/".join(storage)
+ f = f.rstrip("/")
cursor = self.fs.find({"filename": f})
cursor = self.fs.find({"filename": f})
@@
-386,6
+392,7
@@
class FsMongo(FsBase):
:return: None
"""
f = path if isinstance(path, str) else "/".join(path)
: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():
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}
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
)
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}
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
)
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)
"""
try:
f = storage if isinstance(storage, str) else "/".join(storage)
+ f = f.rstrip("/")
if "b" in mode:
return GridByteStream(f, self.fs, mode)
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)
"""
try:
f = storage if isinstance(storage, str) else "/".join(storage)
+ f = f.rstrip("/")
files = []
dir_cursor = self.fs.find({"filename": f})
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)
"""
try:
f = storage if isinstance(storage, str) else "/".join(storage)
+ f = f.rstrip("/")
file_cursor = self.fs.find({"filename": f})
found = False
file_cursor = self.fs.find({"filename": f})
found = False