[core] more robust check of "status" file

This commit is contained in:
Fabien Servant 2020-11-23 14:56:22 +01:00 committed by Fabien Castan
parent fecec3eb40
commit 1993114178

View file

@ -288,11 +288,16 @@ class NodeChunk(BaseObject):
self.statusFileLastModTime = -1 self.statusFileLastModTime = -1
self._status.reset() self._status.reset()
else: else:
with open(statusFile, 'r') as jsonFile: try:
statusData = json.load(jsonFile) with open(statusFile, 'r') as jsonFile:
self._status.fromDict(statusData) statusData = json.load(jsonFile)
self.statusFileLastModTime = os.path.getmtime(statusFile) self.status.fromDict(statusData)
if oldStatus != self._status.status: self.statusFileLastModTime = os.path.getmtime(statusFile)
except Exception as e:
self.statusFileLastModTime = -1
self.status.reset()
if oldStatus != self.status.status:
self.statusChanged.emit() self.statusChanged.emit()
@property @property
@ -323,8 +328,11 @@ class NodeChunk(BaseObject):
data = self._status.toDict() data = self._status.toDict()
statusFilepath = self.statusFile statusFilepath = self.statusFile
folder = os.path.dirname(statusFilepath) folder = os.path.dirname(statusFilepath)
if not os.path.exists(folder): try:
os.makedirs(folder) os.makedirs(folder)
except Exception as e:
pass
statusFilepathWriting = getWritingFilepath(statusFilepath) statusFilepathWriting = getWritingFilepath(statusFilepath)
with open(statusFilepathWriting, 'w') as jsonFile: with open(statusFilepathWriting, 'w') as jsonFile:
json.dump(data, jsonFile, indent=4) json.dump(data, jsonFile, indent=4)