def tclass_init( sself, start_tag, initial_state, stop_c_time=None, startup=False, validate=False, submit_num=0, exists=False ): sself.cycon = container.cycon(self.cyclers) sself.intercycle_offset = self.intercycle_offset sself.startup = startup sself.submit_num = submit_num sself.exists = exists if self.cycling: # and startup: # adjust only needed at start-up but it does not hurt to # do it every time as after the first adjust we're already # on-cycle. sself.tag = sself.cycon.initial_adjust_up(start_tag) sself.cleanup_cutoff = sself.cycon.offset(sself.tag, str(-int(sself.intercycle_offset))) else: sself.tag = start_tag sself.c_time = sself.tag sself.id = sself.name + TaskID.DELIM + sself.tag sself.asyncid_pattern = self.asyncid_pattern if "clocktriggered" in self.modifiers: sself.real_time_delay = float(self.clocktriggered_offset) # prerequisites sself.prerequisites = prerequisites(self.ict) sself.suicide_prerequisites = prerequisites(self.ict) sself.add_prerequisites(startup, sself.tag) sself.logfiles = logfiles() for lfile in self.rtconfig["extra log files"]: sself.logfiles.add_path(lfile) # outputs sself.outputs = outputs(sself.id) for outp in self.outputs: msg = outp.get(sself.tag) if not sself.outputs.exists(msg): sself.outputs.add(msg) sself.outputs.register() if stop_c_time: # cycling tasks with a final cycle time set super(sself.__class__, sself).__init__(initial_state, stop_c_time, validate=validate) else: # TODO - TEMPORARY HACK FOR ASYNC sself.stop_c_time = "99991231230000" super(sself.__class__, sself).__init__(initial_state, validate=validate) sself.suite_polling_cfg = self.suite_polling_cfg sself.reconfigure_me = False sself.is_coldstart = self.is_coldstart sself.set_from_rtconfig()
def tclass_init( sself, start_tag, initial_state, stop_c_time=None, startup=False, validate=False, submit_num=0, exists=False ): sself.cycon = container.cycon( self.cyclers ) sself.intercycle_offset = self.intercycle_offset sself.startup = startup sself.submit_num = submit_num sself.exists=exists if self.cycling: # and startup: # adjust only needed at start-up but it does not hurt to # do it every time as after the first adjust we're already # on-cycle. sself.tag = sself.cycon.initial_adjust_up( start_tag ) sself.cleanup_cutoff = sself.cycon.offset( sself.tag, str(-int(sself.intercycle_offset)) ) else: sself.tag = start_tag sself.c_time = sself.tag sself.id = sself.name + TaskID.DELIM + sself.tag sself.asyncid_pattern = self.asyncid_pattern if 'clocktriggered' in self.modifiers: sself.real_time_delay = float( self.clocktriggered_offset ) # prerequisites sself.prerequisites = prerequisites( self.ict ) sself.suicide_prerequisites = prerequisites( self.ict ) sself.add_prerequisites( startup, sself.tag ) sself.logfiles = logfiles() for lfile in self.rtconfig[ 'extra log files' ]: sself.logfiles.add_path( lfile ) # outputs sself.outputs = outputs( sself.id ) for outp in self.outputs: msg = outp.get( sself.tag ) if not sself.outputs.exists( msg ): sself.outputs.add( msg ) sself.outputs.register() if stop_c_time: # cycling tasks with a final cycle time set super( sself.__class__, sself ).__init__( initial_state, stop_c_time, validate=validate ) else: # TODO - TEMPORARY HACK FOR ASYNC sself.stop_c_time = '99991231230000' super( sself.__class__, sself ).__init__( initial_state, validate=validate ) sself.suite_polling_cfg = self.suite_polling_cfg sself.reconfigure_me = False sself.is_coldstart = self.is_coldstart sself.set_from_rtconfig()
def tclass_init( sself, start_tag, initial_state, stop_c_time=None, startup=False ): sself.cycon = container.cycon( self.cyclers ) if self.cycling: # and startup: # adjust only needed at start-up but it does not hurt to # do it every time as after the first adjust we're already # on-cycle. sself.tag = sself.cycon.initial_adjust_up( start_tag ) else: sself.tag = start_tag sself.c_time = sself.tag sself.id = sself.name + '%' + sself.tag sself.asyncid_pattern = self.asyncid_pattern sself.initial_scripting = self.initial_scripting sself.enviro_scripting = self.enviro_scripting sself.ssh_messaging = self.ssh_messaging sself.command = self.command sself.sim_mode_run_length = self.sim_mode_run_length sself.fail_in_sim_mode = self.fail_in_sim_mode # deepcopy retry delays: the deque gets pop()'ed in the task # proxy objects, which is no good if all instances of the # same task class reference the original deque! sself.retry_delays = deepcopy(self.retry_delays) sself.precommand = self.precommand sself.postcommand = self.postcommand if 'clocktriggered' in self.modifiers: sself.real_time_delay = float( self.clocktriggered_offset ) # prerequisites sself.prerequisites = prerequisites() sself.suicide_prerequisites = prerequisites() sself.add_prerequisites( startup, sself.cycon, sself.tag ) sself.logfiles = logfiles() for lfile in self.logfiles: sself.logfiles.add_path( lfile ) # outputs sself.outputs = outputs( sself.id ) for outp in self.outputs: msg = outp.get( sself.tag ) if not sself.outputs.exists( msg ): sself.outputs.add( msg ) sself.outputs.register() sself.env_vars = OrderedDict() for var in self.environment: val = self.environment[ var ] sself.env_vars[ var ] = val sself.directives = OrderedDict() for var in self.directives: val = self.directives[ var ] sself.directives[ var ] = val if 'catchup_clocktriggered' in self.modifiers: catchup_clocktriggered.__init__( sself ) if stop_c_time: # cycling tasks with a final cycle time set super( sself.__class__, sself ).__init__( initial_state, stop_c_time ) else: # TO DO: TEMPORARY HACK FOR ASYNC sself.stop_c_time = '99991231230000' super( sself.__class__, sself ).__init__( initial_state ) sself.reconfigure_me = False sself.is_coldstart = self.is_coldstart