Exemple #1
0
    def __init__( self, state ):
        # Call this AFTER derived class initialisation

        # Derived class init MUST define:
        #  * self.id: unique identity (e.g. NAME.CYCLE for cycling tasks)
        #  * prerequisites and outputs
        #  * self.env_vars

        class_vars = {}
        self.state = task_state.task_state( state )
        self.trigger_now = False

        # Count instances of each top level object derived from task.
        # Top level derived classes must define:
        #   <class>.instance_count = 0
        # NOTE: top level derived classes are now defined dynamically
        # (so this is initialised in src/taskdef.py).
        self.__class__.instance_count += 1
        self.__class__.upward_instance_count += 1

        self.latest_message = ""
        self.latest_message_priority = "NORMAL"

        self.submission_timer_start = None
        self.execution_timer_start = None

        self.submitted_time = None
        self.started_time = None
        self.succeeded_time = None
        self.etc = None
        self.to_go = None
        self.try_number = 1
        self.retry_delay_timer_start = None

        self.message_queue = msgqueue()
        self.db_queue = []

        self.suite_name = os.environ['CYLC_SUITE_REG_NAME']
        self.db_path = os.path.join(gcfg.cfg['task hosts']['local']['run directory'], self.suite_name)
        self.db = cylc.rundb.CylcRuntimeDAO(suite_dir=self.db_path)
        
        # sets submit num for restarts or when triggering state prior to submission
        submits = self.db.get_task_current_submit_num(self.name, self.c_time)
        if submits > 0:
            self.submit_num = submits
            self.record_db_update("task_states", self.name, self.c_time, status=self.state.get_status()) #is this redundant?
        else:
            self.submit_num = 0

        if not self.db.get_task_state_exists(self.name, self.c_time):
            try:
                self.record_db_state(self.name, self.c_time, submit_num=self.submit_num, try_num=self.try_number, status=self.state.get_status()) #queued call
            except:
                pass

        self.db.close()
        self.hostname = None
        self.owner = None
        self.submit_method = None
Exemple #2
0
    def __init__( self, state ):
        # Call this AFTER derived class initialisation

        # Derived class init MUST define:
        #  * self.id: unique identity (e.g. NAME%CYCLE for cycling tasks)
        #  * prerequisites and outputs
        #  * self.env_vars

        class_vars = {}
        self.state = task_state.task_state( state )
        self.launcher = None
        self.trigger_now = False

        # Count instances of each top level object derived from task.
        # Top level derived classes must define:
        #   <class>.instance_count = 0
        # NOTE: top level derived classes are now defined dynamically
        # (so this is initialised in src/taskdef.py).
        self.__class__.instance_count += 1
        self.__class__.upward_instance_count += 1

        Pyro.core.ObjBase.__init__(self)

        self.latest_message = ""
        self.latest_message_priority = "NORMAL"

        self.submission_timer_start = None
        self.execution_timer_start = None

        self.submitted_time = None
        self.started_time = None
        self.succeeded_time = None
        self.etc = None
        self.to_go = None
        self.try_number = 1
        self.retry_delay_timer_start = None