Esempio n. 1
0
 def send_retry(cls, try_count=1, make_file=False):
     global_sender = sender.get_global_sender()
     if global_sender.pendings:
         buffer_clear = False
         for i in xrange(try_count):
             try:
                 global_sender.lock.acquire()
                 global_sender._send_data(global_sender.pendings)
                 global_sender.pendings = None
                 buffer_clear = True
                 break
             except Exception as e:
                 logger.GetLog().error(
                     '=====[ERROR]===== sender data to fluentd error :', e,
                     e.message, global_sender.pendings)
             finally:
                 global_sender.lock.release()
         if make_file:
             if not buffer_clear:
                 f = None
                 try:
                     if not common_config.debug:
                         f = open(
                             "./restart_{0}.bin".format(uuid.uuid4().hex),
                             'wb')
                         f.write(sender.get_global_sender().pendings)
                 except:
                     pass
                 finally:
                     if f:
                         f.close()
Esempio n. 2
0
 def __init__(self, label, data, **kwargs):
     if not isinstance(data, dict):
         raise Exception("data must be dict")
     s = kwargs['sender'] if ('sender'
                              in kwargs) else sender.get_global_sender()
     timestamp = kwargs['time'] if ('time' in kwargs) else int(time.time())
     s.emit_with_time(label, timestamp, data)
    def test_no_last_error_on_successful_event(self):
        global_sender = sender.get_global_sender()
        event.Event('unfollow', {
            'from': 'userC',
            'to':   'userD'
        })

        # This test will fail unless you have a working connection to fluentd
        self.assertEqual(global_sender.last_error, None)
Esempio n. 4
0
    def test_no_last_error_on_successful_event(self):
        global_sender = sender.get_global_sender()
        event.Event('unfollow', {
            'from': 'userC',
            'to':   'userD'
        })

        self.assertEqual(global_sender.last_error, None)
        sender.close()
Esempio n. 5
0
def buffer_overflow_handler(pending_events):
    buffer_clear = False
    try:
        sender.get_global_sender()._send_data(pending_events)

        buffer_clear = True
    except:
        pass
    finally:
        pass

    if not buffer_clear:
        f = None
        try:
            if not common_config.debug:
                f = open("./pending_{0}.bin".format(uuid.uuid4().hex), 'wb')
                f.write(pending_events)
        except:
            pass
        finally:
            if f:
                f.close()
Esempio n. 6
0
    def test_connect_exception_during_event_send(self, mock_socket):
        # Make the socket.socket().connect() call raise a custom exception
        mock_connect = mock_socket.socket.return_value.connect
        EXCEPTION_MSG = "a event send socket connect() exception"
        mock_connect.side_effect = TestException(EXCEPTION_MSG)

        # Force the socket to reconnect while trying to emit the event
        global_sender = sender.get_global_sender()
        global_sender._close()

        event.Event('unfollow', {'from': 'userE', 'to': 'userF'})

        ex = global_sender.last_error
        self.assertEqual(ex.args, EXCEPTION_MSG)
        global_sender.clear_last_error()
    def test_connect_exception_during_event_send(self, mock_socket):
        # Make the socket.socket().connect() call raise a custom exception
        mock_connect = mock_socket.socket.return_value.connect
        EXCEPTION_MSG = "a event send socket connect() exception"
        mock_connect.side_effect = Exception(EXCEPTION_MSG)

        # Force the socket to reconnect while trying to emit the event
        global_sender = sender.get_global_sender()
        global_sender._close()

        event.Event('unfollow', {
            'from': 'userE',
            'to':   'userF'
        })

        ex = global_sender.last_error
        self.assertEqual(ex.message, EXCEPTION_MSG)
        global_sender.clear_last_error()
Esempio n. 8
0
 def __init__(self, label, data, **kwargs):
     assert isinstance(data, dict), 'data must be a dict'
     sender_ = kwargs.get('sender', sender.get_global_sender())
     timestamp = kwargs.get('time', int(time.time()))
     sender_.emit_with_time(label, timestamp, data)
Esempio n. 9
0
 def __init__(self, label, data, **kwargs):
     assert isinstance(data, dict), 'data must be a dict'
     self.label = label
     self.data = data
     self.sender_ = kwargs.get('sender', sender.get_global_sender())
     self.timestamp = kwargs.get('time', int(time.time()))
Esempio n. 10
0
 def __init__(self, label, data, **kwargs):
     if not isinstance(data, dict) :
         raise Exception("data must be dict")
     s = kwargs['sender'] if ('sender' in kwargs) else sender.get_global_sender()
     timestamp = kwargs['time'] if ('time' in kwargs) else int(time.time())
     s.emit_with_time(label, timestamp, data)
Esempio n. 11
0
 def __init__(self, label, data, **kwargs):
     assert isinstance(data, dict), 'data must be a dict'
     sender_ = kwargs.get('sender', sender.get_global_sender())
     timestamp = kwargs.get('time', int(time.time()))
     sender_.emit_with_time(label, timestamp, data)
Esempio n. 12
0
 def __init__(self, label, data, **kwargs):
     if not isinstance(data, dict) :
         raise Exception("data must be dict")
     l = ('sender' in kwargs) and kwargs['sender'] or sender.get_global_sender()
     l.emit(label, data)