示例#1
0
    def __poll_in_try_block(self, arm_info):
        succeeded = False
        failure_reason = ""
        try:
            self.__command_queue.pop_all()
            self.poll()
            succeeded = True
        except:
            exctype, value = hap.handle_exception()
            if exctype is hap.Signal:
                if value.restart:
                    return
            else:
                failure_reason = "%s, %s" % (exctype, value)

        if succeeded:
            sleep_time = self.__pollingInterval
            arm_info.success()
        else:
            sleep_time = self.__retryInterval
            self.on_aborted_poll()
            arm_info.fail()

        # Send ArmInfo
        try:
            arm_info.failure_reason = failure_reason
            self.put_arm_info(arm_info)
            self.log_status(arm_info)
        except:
            hap.handle_exception()

        try:
            self.__command_queue.wait(sleep_time)
        except:
            hap.handle_exception()
示例#2
0
 def __iterate_in_try_block(seq, func, *args, **kwargs):
     for s in seq:
         try:
             func(s, *args, **kwargs)
         except:
             logger.warning("Failed to process element: %s" % s)
             hap.handle_exception()
示例#3
0
 def __iterate_in_try_block(seq, func, *args, **kwargs):
     for s in seq:
         try:
             func(s, *args, **kwargs)
         except:
             logger.warning("Failed to process element: %s" % s)
             hap.handle_exception()
示例#4
0
 def __fluentd_manager_main(self):
     self.__setup_log_status_timer()
     while True:
         try:
             self.__fluentd_manager_main_in_try_block()
         except:
             hap.handle_exception()
             self.__arm_info.fail()
             time.sleep(self.__ms_info.retry_interval_sec)
示例#5
0
 def __parse_line(self, line):
     try:
         header, msg = line.split(": ", 1)
         timestamp, tag = self.__parse_header(header)
     except:
         timestamp, tag, msg = None, None, None
         hap.handle_exception()
         self.__arm_info.fail()
     return timestamp, tag, msg
示例#6
0
 def __fluentd_manager_main(self):
     self.__setup_log_status_timer()
     while True:
         try:
             self.__fluentd_manager_main_in_try_block()
         except:
             hap.handle_exception()
             self.__arm_info.fail()
             time.sleep(self.__ms_info.retry_interval_sec)
示例#7
0
 def __parse_line(self, line):
     try:
         header, msg = line.split(": ", 1)
         timestamp, tag = self.__parse_header(header)
     except:
         timestamp, tag, msg = None, None, None
         hap.handle_exception()
         self.__arm_info.fail()
     return timestamp, tag, msg
示例#8
0
 def __parse_line(self, line):
     try:
         if not self.__re_expected_msg.search(line):
             logger.error("%% " + line.rstrip("\n"))
             return None, None, None
         header, msg = line.split(": ", 1)
         timestamp, tag = self.__parse_header(header)
     except:
         timestamp, tag, msg = None, None, None
         hap.handle_exception()
         self.__arm_info.fail()
     return timestamp, tag, msg
示例#9
0
 def __parse_line(self, line):
     try:
         if not self.__re_expected_msg.search(line):
             logger.error("%% " + line.rstrip("\n"))
             return None, None, None
         header, msg = line.split(": ", 1)
         timestamp, tag = self.__parse_header(header)
     except:
         timestamp, tag, msg = None, None, None
         hap.handle_exception()
         self.__arm_info.fail()
     return timestamp, tag, msg
示例#10
0
 def __call__(self):
     try:
         self.__enable_handling_terminate_signal()
         self.__call_main()
     except:
         self.__terminate_children()
         raises = (KeyboardInterrupt, AssertionError, SystemExit)
         exctype, value = hap.handle_exception(raises=raises)
示例#11
0
 def __call__(self):
     try:
         self.__enable_handling_terminate_signal()
         self.__call_main()
     except:
         self.__terminate_children()
         raises = (KeyboardInterrupt, AssertionError, SystemExit)
         exctype, value = hap.handle_exception(raises=raises)
示例#12
0
    def __call__(self):
        args = self.__setup()
        try:
            self.__run(args)
        except:
            raises = (KeyboardInterrupt, AssertionError, SystemExit)
            exctype, value = hap.handle_exception(raises=raises)

        self.enable_handling_sigchld(False)
    def __call__(self):
        args = self.__setup()
        try:
            self.__run(args)
        except:
            raises = (KeyboardInterrupt, AssertionError, SystemExit)
            exctype, value = hap.handle_exception(raises=raises)

        self.enable_handling_sigchld(False)
示例#14
0
    def __call__(self):
        while True:
            try:
                self.__run()
            except:
                raises = (KeyboardInterrupt, AssertionError, SystemExit)
                exctype, value = hap.handle_exception(raises=raises)
            else:
                break

            self.enable_handling_sigchld(False)
            if self.__main_plugin is not None:
                self.__main_plugin.destroy()
                self.__main_plugin = None
            if self.__poller is not None:
                self.__poller.terminate()
                self.__poller = None

            logging.info("Rerun after %d sec" % self.__error_sleep_time)
            time.sleep(self.__error_sleep_time)