projects
/
osm
/
common.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug 2231: reverse_sync in fsmongo obtains file timestamp with UTC timezone instea...
[osm/common.git]
/
osm_common
/
fsmongo.py
diff --git
a/osm_common/fsmongo.py
b/osm_common/fsmongo.py
index
1ce5909
..
b0fe4a1
100644
(file)
--- a/
osm_common/fsmongo.py
+++ b/
osm_common/fsmongo.py
@@
-275,14
+275,11
@@
class FsMongo(FsBase):
if all(key in config.keys() for key in ["uri", "collection"]):
self.client = MongoClient(config["uri"])
self.fs = GridFSBucket(self.client[config["collection"]])
if all(key in config.keys() for key in ["uri", "collection"]):
self.client = MongoClient(config["uri"])
self.fs = GridFSBucket(self.client[config["collection"]])
- elif all(key in config.keys() for key in ["host", "port", "collection"]):
- self.client = MongoClient(config["host"], config["port"])
- self.fs = GridFSBucket(self.client[config["collection"]])
else:
if "collection" not in config.keys():
raise FsException('Missing parameter "collection"')
else:
else:
if "collection" not in config.keys():
raise FsException('Missing parameter "collection"')
else:
- raise FsException('Missing parameters: "uri"
or "host" + "port"
')
+ raise FsException('Missing parameters: "uri"')
except FsException:
raise
except Exception as e: # TODO refine
except FsException:
raise
except Exception as e: # TODO refine
@@
-573,7
+570,6
@@
class FsMongo(FsBase):
self.__update_local_fs(from_path=from_path)
def _update_mongo_fs(self, from_path):
self.__update_local_fs(from_path=from_path)
def _update_mongo_fs(self, from_path):
-
os_path = self.path + from_path
# Obtain list of files and dirs in filesystem
os_path = self.path + from_path
# Obtain list of files and dirs in filesystem
@@
-606,7
+602,9
@@
class FsMongo(FsBase):
# convert to relative path
rel_filename = os.path.relpath(member["filename"], self.path)
# convert to relative path
rel_filename = os.path.relpath(member["filename"], self.path)
- last_modified_date = datetime.datetime.fromtimestamp(
+ # get timestamp in UTC because mongo stores upload date in UTC:
+ # https://www.mongodb.com/docs/v4.0/tutorial/model-time-data/#overview
+ last_modified_date = datetime.datetime.utcfromtimestamp(
os.path.getmtime(member["filename"])
)
os.path.getmtime(member["filename"])
)
@@
-618,7
+616,6
@@
class FsMongo(FsBase):
remote_files.pop(rel_filename, None)
if last_modified_date >= upload_date:
remote_files.pop(rel_filename, None)
if last_modified_date >= upload_date:
-
stream = None
fh = None
try:
stream = None
fh = None
try:
@@
-655,7
+652,6
@@
class FsMongo(FsBase):
self.fs.delete(file._id)
def _get_mongo_files(self, from_path=None):
self.fs.delete(file._id)
def _get_mongo_files(self, from_path=None):
-
file_dict = {}
file_cursor = self.fs.find(no_cursor_timeout=True, sort=[("uploadDate", -1)])
for file in file_cursor:
file_dict = {}
file_cursor = self.fs.find(no_cursor_timeout=True, sort=[("uploadDate", -1)])
for file in file_cursor: