Create TaskManager with a task overview

Create a seperate class to handle the logic of computing nodes
+ An UI overview with all submitted nodes
This commit is contained in:
Lee Geertsen 2019-08-12 18:34:48 +02:00 committed by Yann Lanthony
parent bc1eb83d92
commit 51d6c18840
No known key found for this signature in database
GPG key ID: 519FAE6DF7A70642
11 changed files with 579 additions and 76 deletions

View file

@ -259,6 +259,15 @@ class NodeChunk(BaseObject):
def isAlreadySubmitted(self):
return self.status.status in (Status.SUBMITTED, Status.RUNNING)
def isAlreadySubmittedOrFinished(self):
return self.status.status in (Status.SUBMITTED, Status.RUNNING, Status.SUCCESS)
def isFinishedOrRunning(self):
return self.status.status in (Status.SUCCESS, Status.RUNNING)
def isStopped(self):
return self.status.status == Status.STOPPED
def process(self, forceCompute=False):
if not forceCompute and self.status.status == Status.SUCCESS:
print("Node chunk already computed:", self.name)
@ -291,6 +300,7 @@ class NodeChunk(BaseObject):
self.upgradeStatusTo(Status.SUCCESS)
def stopProcess(self):
self.upgradeStatusTo(Status.STOPPED)
self.node.nodeDesc.stopProcess(self)
statusChanged = Signal()
@ -516,6 +526,18 @@ class BaseNode(BaseObject):
return True
return False
def isAlreadySubmittedOrFinished(self):
for chunk in self._chunks:
if not chunk.isAlreadySubmittedOrFinished():
return False
return True
def isFinishedOrRunning(self):
for chunk in self._chunks:
if not chunk.isFinishedOrRunning():
return False
return True
def alreadySubmittedChunks(self):
return [ch for ch in self._chunks if ch.isAlreadySubmitted()]