+
+ def __process_walltime(duration=None):
+ """ Calculates the walltime in seconds from the duration in H:M:S
+ specified in the RSpec.
+
+ """
+ if duration:
+ walltime = duration.split(":")
+ # Fixing the walltime by adding a few delays. First put the walltime
+ # in seconds oarAdditionalDelay = 20; additional delay for
+ # /bin/sleep command to
+ # take in account prologue and epilogue scripts execution
+ # int walltimeAdditionalDelay = 120; additional delay
+
+ desired_walltime = int(walltime[0])*3600 + int(walltime[1]) * 60 +\
+ int(walltime[2])
+ total_walltime = desired_walltime + 140 #+2 min 20
+ sleep_walltime = desired_walltime + 20 #+20 sec
+ logger.debug("SLABDRIVER \t__process_walltime desired_walltime %s\
+ total_walltime %s sleep_walltime %s "\
+ %(desired_walltime, total_walltime, \
+ sleep_walltime))
+ #Put the walltime back in str form
+ #First get the hours
+ walltime[0] = str(total_walltime / 3600)
+ total_walltime = total_walltime - 3600 * int(walltime[0])
+ #Get the remaining minutes
+ walltime[1] = str(total_walltime / 60)
+ total_walltime = total_walltime - 60 * int(walltime[1])
+ #Get the seconds
+ walltime[2] = str(total_walltime)
+ logger.debug("SLABDRIVER \t__process_walltime walltime %s "\
+ %(walltime))
+ else:
+ #automatically set 10min +2 min 20
+ walltime[0] = '0'
+ walltime[1] = '12'
+ walltime[2] = '20'
+ sleep_walltime = '620'
+
+ return walltime, sleep_walltime
+