Skip to content

Commit de92eca

Browse files
committed
[core] node: Remove static info from the chunks' status file
`nodeType` and `packageName` are already part of the node's status file, and there is thus no need to propagate them to the chunks'.
1 parent c169a1d commit de92eca

File tree

2 files changed

+5
-32
lines changed

2 files changed

+5
-32
lines changed

bin/meshroom_createChunks

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ if not node._chunksCreated:
9999
for chunk in node._chunks:
100100
if args.forceCompute or chunk._status.status != Status.SUCCESS:
101101
hasChunkToLaunch = True
102-
chunk._status.setNode(node)
103102
chunk._status.initExternSubmit()
104103
chunk.upgradeStatusFile()
105104

meshroom/core/node.py

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class ExecMode(Enum):
6565
NodeChunkSetup = namedtuple("NodeChunks", ["blockSize", "fullSize", "nbBlocks"])
6666

6767
class NodeStatusData(BaseObject):
68-
__slots__ = ("nodeName", "status", "execMode", "nodeType", "packageName",
68+
__slots__ = ("nodeName", "nodeType", "status", "execMode", "packageName",
6969
"mrNodeType", "submitterSessionUid", "chunks", "jobInfo")
7070

7171
def __init__(self, nodeName='', nodeType='', packageName='',
@@ -212,17 +212,14 @@ class ChunkStatusData(BaseObject):
212212
dateTimeFormatting = '%Y-%m-%d %H:%M:%S.%f'
213213

214214
__slots__ = (
215-
"nodeName", "nodeType", "packageName", "mrNodeType", "computeSessionUid", "execMode",
216-
"status", "commandLine", "startDateTime", "endDateTime", "elapsedTime", "hostname"
215+
"nodeName", "mrNodeType", "computeSessionUid", "execMode", "status",
216+
"commandLine", "startDateTime", "endDateTime", "elapsedTime", "hostname"
217217
)
218218

219-
def __init__(self, nodeName='', nodeType='', packageName='',
220-
mrNodeType: MrNodeType = MrNodeType.NONE, parent: BaseObject = None):
219+
def __init__(self, nodeName='', mrNodeType: MrNodeType = MrNodeType.NONE, parent: BaseObject = None):
221220
super().__init__(parent)
222221

223222
self.nodeName: str = nodeName
224-
self.nodeType: str = nodeType
225-
self.packageName: str = packageName
226223
self.mrNodeType = mrNodeType
227224

228225
self.computeSessionUid: Optional[str] = None # Session where computation is done
@@ -240,19 +237,6 @@ def resetDynamicValues(self):
240237
self.elapsedTime: float = 0.0
241238
self.hostname: str = ""
242239

243-
def setNode(self, node):
244-
""" Set the node information from one node instance. """
245-
self.nodeName = node.name
246-
self.setNodeType(node)
247-
248-
def setNodeType(self, node):
249-
"""
250-
Set the node type and package information from the given node.
251-
We do not set the name in this method as it may vary if there are duplicates.
252-
"""
253-
self.nodeType = node.nodeType
254-
self.packageName = node.packageName
255-
self.mrNodeType = node.getMrNodeType()
256240

257241
def merge(self, other):
258242
self.startDateTime = min(self.startDateTime, other.startDateTime)
@@ -261,8 +245,6 @@ def merge(self, other):
261245

262246
def reset(self):
263247
self.nodeName: str = ""
264-
self.nodeType: str = ""
265-
self.packageName: str = ""
266248
self.mrNodeType: MrNodeType = MrNodeType.NONE
267249
self.execMode: ExecMode = ExecMode.NONE
268250
self.resetDynamicValues()
@@ -464,8 +446,7 @@ def __init__(self, node, range, parent=None):
464446
self.node = node
465447
self.range = range
466448
self._logManager = None
467-
self._status: ChunkStatusData = ChunkStatusData(node.name, node.nodeType, node.packageName,
468-
node.getMrNodeType())
449+
self._status: ChunkStatusData = ChunkStatusData(nodeName=node.name, mrNodeType=node.getMrNodeType())
469450
self.statistics: stats.Statistics = stats.Statistics()
470451
self.statusFileLastModTime = -1
471452
self.subprocess = None
@@ -527,7 +508,6 @@ def updateStatusFromCache(self):
527508
if not os.path.exists(statusFile):
528509
self.statusFileLastModTime = -1
529510
self._status.reset()
530-
self._status.setNodeType(self.node)
531511
else:
532512
try:
533513
with open(statusFile) as jsonFile:
@@ -539,7 +519,6 @@ def updateStatusFromCache(self):
539519
logging.debug(f"updateStatusFromCache({self.node.name}): Error while loading status file {statusFile}: {exc}")
540520
self.statusFileLastModTime = -1
541521
self._status.reset()
542-
self._status.setNodeType(self.node)
543522

544523
if oldStatus != self._status.status:
545524
self.statusChanged.emit()
@@ -649,7 +628,6 @@ def process(self, forceCompute=False, inCurrentEnv=False):
649628
return
650629

651630
runningProcesses[self.name] = self
652-
self._status.setNode(self.node)
653631
self._status.initStartCompute()
654632
self.upgradeStatusFile()
655633
executionStatus = None
@@ -670,7 +648,6 @@ def process(self, forceCompute=False, inCurrentEnv=False):
670648
executionStatus = Status.STOPPED
671649
raise
672650
finally:
673-
self._status.setNode(self.node)
674651
self._status.initEndCompute()
675652
self.upgradeStatusFile()
676653

@@ -690,7 +667,6 @@ def _processInIsolatedEnvironment(self):
690667
configuration.
691668
"""
692669
try:
693-
self._status.setNode(self.node)
694670
self._status.initIsolatedCompute()
695671
self.upgradeStatusFile()
696672

@@ -1589,7 +1565,6 @@ def initStatusOnSubmit(self, forceCompute=False):
15891565
for chunk in self._chunks:
15901566
if forceCompute or chunk._status.status != Status.SUCCESS:
15911567
hasChunkToLaunch = True
1592-
chunk._status.setNode(self)
15931568
chunk._status.initExternSubmit()
15941569
chunk.upgradeStatusFile()
15951570
if hasChunkToLaunch:
@@ -1605,7 +1580,6 @@ def initStatusOnCompute(self, forceCompute=False):
16051580
for chunk in self._chunks:
16061581
if forceCompute or (chunk._status.status not in (Status.RUNNING, Status.SUCCESS)):
16071582
hasChunkToLaunch = True
1608-
chunk._status.setNode(self)
16091583
chunk._status.initLocalSubmit()
16101584
chunk.upgradeStatusFile()
16111585
if hasChunkToLaunch:

0 commit comments

Comments
 (0)