def test_init(self): modconf = Module( { 'module_name': 'influxdbBroker', 'module_type': 'influxdbBroker', 'host': 'testhost', 'port': '1111', 'user': '******', 'password': '******', 'database': 'testdatabase', 'use_udp': '1', 'udp_port': '2222', 'tick_limit': '3333', } ) broker = InfluxdbBroker(modconf) self.assertEqual(broker.host, 'testhost') self.assertEqual(broker.port, 1111) self.assertEqual(broker.user, 'testuser') self.assertEqual(broker.password, 'testpassword') self.assertEqual(broker.database, 'testdatabase') self.assertEqual(broker.use_udp, True) self.assertEqual(broker.udp_port, 2222) self.assertEqual(broker.tick_limit, 3333)
def test_hook_tick_limit(self): broker = InfluxdbBroker(self.basic_modconf) broker.tick_limit = 300 broker.ticks = 299 broker.buffer.append('this_wont_work_lol') broker.hook_tick(None) broker.hook_tick(None) self.assertEqual(broker.ticks, 0) self.assertEqual(broker.buffer, [])
def test_init_defaults(self): broker = InfluxdbBroker(self.basic_modconf) self.assertEqual(broker.host, 'localhost') self.assertEqual(broker.port, 8086) self.assertEqual(broker.user, 'root') self.assertEqual(broker.password, 'root') self.assertEqual(broker.database, 'database') self.assertEqual(broker.use_udp, False) self.assertEqual(broker.udp_port, 4444) self.assertEqual(broker.tick_limit, 300)
def test_log_brok_illegal_char(self): data = { 'log': '[1329144231] SERVICE ALERT: www.cibc.com;www.cibc.com;WARNING;HARD;4;WARNING - load average: 5.04, 4.67, 5.04' } brok = Brok('log', data) brok.prepare() broker = InfluxdbBroker(self.basic_modconf) broker.manage_log_brok(brok) point = broker.buffer[0] self.assertEqual(point['name'], 'www_cibc_com.www_cibc_com._events_.ALERT')
def test_manage_log_brok(self): data = { 'log': '[1402515279] HOST NOTIFICATION: admin;localhost;CRITICAL;notify-service-by-email;Connection refused' } brok = Brok('log', data) brok.prepare() broker = InfluxdbBroker(self.basic_modconf) broker.manage_log_brok(brok) # make sure that this has generated only 1 point self.assertEqual(len(broker.buffer), 1) point = broker.buffer[0] # validate the point expected = { 'points': [[ None, 'CRITICAL', 'admin', 1402515279, 'notify-service-by-email', 'HOST' ]], 'name': 'localhost._events_.NOTIFICATION', 'columns': [ 'acknownledgement', 'state', 'contact', 'time', 'notification_method', 'notification_type' ] } self.assertEqual(expected, point) # And that there is as much columns as there is points # (manage_log_brok has a special way of creating points) self.assertEqual(len(point['points'][0]), len(point['columns'])) # A service notification's name should be different (host.service._events_.[event_type]) data[ 'log'] = '[1402515279] SERVICE NOTIFICATION: admin;localhost;check-ssh;CRITICAL;notify-service-by-email;Connection refused' brok = Brok('log', data) brok.prepare() broker.buffer = [] broker.manage_log_brok(brok) point = broker.buffer[0] self.assertEqual(point['name'], 'localhost.check-ssh._events_.NOTIFICATION')
def test_hook_tick(self): setattr(self.basic_modconf, 'use_udp', '1') data = [{ "points": [["1", 1, 1.0], ["2", 2, 2.0]], "name": "foo", "columns": ["column_one", "column_two", "column_three"] }] broker = InfluxdbBroker(self.basic_modconf) broker.init() broker.buffer.append(data) broker.hook_tick(None) # We are not testing python-influxdb. # We are only making sure that the format of points we are sending # does not raise errors and that the buffer empties. self.assertEqual(broker.buffer, []) self.assertEqual(broker.ticks, 0)
def setUp(self): self.basic_modconf = Module(basic_dict_modconf) self.influx_broker = InfluxdbBroker(self.basic_modconf)