]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
[EDF29150] : deal with not finished execs
authorAnthony Geay <anthony.geay@edf.fr>
Thu, 8 Feb 2024 07:02:36 +0000 (08:02 +0100)
committerAnthony Geay <anthony.geay@edf.fr>
Thu, 8 Feb 2024 07:02:36 +0000 (08:02 +0100)
src/Container/SALOME_ContainerHelper.py

index d8663afbdb90ddafe74f0bba2242181258114d8a..23dd6a5166f1040e59a233aea127b578d50d2a2d 100644 (file)
@@ -198,7 +198,9 @@ class ScriptExecInfo:
 
     @property
     def execTime(self):
-      return self.endExecTime - self.startExecTime
+      if ( self.endExecTime is not None ) and (self.startExecTime is not None):
+        return self.endExecTime - self.startExecTime
+      return None
     
     @property
     def fullExecTime(self):
@@ -633,6 +635,8 @@ def ListAllExecContainIn( listOfContainerLogInfo ):
     For all ContainerLogInfo contained in listOfContainerLogInfo extract all ScriptExecInfo contained recursively
     in it. This method filters all "side" executions like those positionning environment for exemple.
 
+    See also : ListAllExecFinishedContainIn
+
     Args:
     -----
 
@@ -647,6 +651,27 @@ def ListAllExecContainIn( listOfContainerLogInfo ):
     allexecs = sum( [sum( [[myexec for myexec in ps] for ps in cont],[] ) for cont in listOfContainerLogInfo], [] )
     return [elt for elt in allexecs if elt.get() is not None]
 
+def ListAllExecFinishedContainIn( listOfContainerLogInfo ):
+    """
+    For all ContainerLogInfo contained in listOfContainerLogInfo extract all ScriptExecInfo contained recursively
+    in it. This method filters all "side" executions like those positionning environment for exemple and those not finished.
+
+    See also : ListAllExecContainIn
+
+    Args:
+    -----
+
+    listOfContainerLogInfo (list<ContainerLogInfo>) : instance typically returned by salome.LogManagerLoadFromFile
+
+    Returns
+    -------
+
+    list<ScriptExecInfoDeco> : all ScriptExecInfoDeco instance contained recursively in all input ContainerLogInfo instances
+
+    """
+    beforeFiltering = ListAllExecContainIn( listOfContainerLogInfo )
+    return [elt for elt in beforeFiltering if elt.get().execTime is not None]
+
 def IsExecTimeHigherThan( execInstDeco, limitDuration ):
     """
     Example of Usage :