def hm_listener(exit_event): # TODO(german): stevedore load those drivers signal.signal(signal.SIGINT, signal.SIG_IGN) udp_getter = heartbeat_udp.UDPStatusGetter(update_db.UpdateHealthDb(), update_db.UpdateStatsDb()) while not exit_event.is_set(): udp_getter.check()
def hm_listener(): # TODO(german): steved'or load those drivers udp_getter = heartbeat_udp.UDPStatusGetter( update_db.UpdateHealthDb(), update_db.UpdateStatsDb()) while True: udp_getter.check()
def hm_listener(exit_event): signal.signal(signal.SIGINT, signal.SIG_IGN) udp_getter = heartbeat_udp.UDPStatusGetter() while not exit_event.is_set(): try: udp_getter.check() except Exception as e: LOG.error('Health Manager listener experienced unknown error: %s', e)
def test_check_no_mixins(self, mock_socket, mock_getaddrinfo): self.mock_socket = mock_socket self.mock_getaddrinfo = mock_getaddrinfo self.mock_getaddrinfo.return_value = [range(1, 6)] mock_dorecv = mock.Mock() self.udp_status_getter = heartbeat_udp.UDPStatusGetter(None, None) self.udp_status_getter.dorecv = mock_dorecv mock_dorecv.side_effect = [(dict(id=FAKE_ID), 2)] self.udp_status_getter.check()
def test_check_exception(self, mock_socket, mock_getaddrinfo, mock_submit): self.mock_socket = mock_socket self.mock_getaddrinfo = mock_getaddrinfo self.mock_getaddrinfo.return_value = [range(1, 6)] mock_dorecv = mock.Mock() self.udp_status_getter = heartbeat_udp.UDPStatusGetter(None, None) self.udp_status_getter.dorecv = mock_dorecv mock_dorecv.side_effect = exceptions.InvalidHMACException self.udp_status_getter.check() self.assertFalse(mock_submit.called)
def hm_listener(exit_event): signal.signal(signal.SIGINT, signal.SIG_IGN) signal.signal(signal.SIGHUP, _mutate_config) udp_getter = heartbeat_udp.UDPStatusGetter() while not exit_event.is_set(): try: udp_getter.check() except Exception as e: LOG.error('Health Manager listener experienced unknown error: %s', e) LOG.info('Waiting for executor to shutdown...') udp_getter.executor.shutdown() LOG.info('Executor shutdown finished.')
def test_check(self, mock_socket, mock_getaddrinfo): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_getaddrinfo.return_value = [range(1, 6)] mock_dorecv = mock.Mock() getter = heartbeat_udp.UDPStatusGetter(self.health_update, self.stats_update) getter.dorecv = mock_dorecv mock_dorecv.side_effect = [(dict(id=FAKE_ID), 2)] getter.check() getter.executor.shutdown() self.health_update.update_health.assert_called_once_with({'id': 1}) self.stats_update.update_stats.assert_called_once_with({'id': 1})
def setUp(self, mock_socket, mock_getaddrinfo): super(TestHeartbeatUDP, self).setUp() self.mock_socket = mock_socket self.mock_getaddrinfo = mock_getaddrinfo self.mock_getaddrinfo.return_value = [range(1, 6)] self.health_update = mock.Mock() self.stats_update = mock.Mock() self.conf = oslo_fixture.Config(cfg.CONF) self.conf.config(group="health_manager", heartbeat_key=KEY) self.conf.config(group="health_manager", bind_ip=IP) self.conf.config(group="health_manager", bind_port=PORT) self.conf.config(group="health_manager", sock_rlimit=0) self.udp_status_getter = heartbeat_udp.UDPStatusGetter( self.health_update, self.stats_update)
def test_update(self, mock_socket, mock_getaddrinfo): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_getaddrinfo.return_value = [range(1, 6)] bind_mock = mock.MagicMock() socket_mock.bind = bind_mock getter = heartbeat_udp.UDPStatusGetter(None, None) self.mock_getaddrinfo.assert_called_with(IP, PORT, 0, 2) self.assertEqual(5, self.udp_status_getter.sockaddr) self.mock_socket.assert_called_with(1, socket.SOCK_DGRAM) bind_mock.assert_called_once_with((IP, PORT)) self.conf.config(group="health_manager", sock_rlimit=RLIMIT) mock_getaddrinfo.return_value = [range(1, 6), range(1, 6)] getter.update(KEY, IP, PORT)
def test_update(self, mock_socket, mock_getaddrinfo): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_getaddrinfo.return_value = [FAKE_ADDRINFO] bind_mock = mock.MagicMock() socket_mock.bind = bind_mock getter = heartbeat_udp.UDPStatusGetter(None, None) mock_getaddrinfo.assert_called_with(IP, PORT, 0, socket.SOCK_DGRAM) self.assertEqual((IP, PORT), getter.sockaddr) mock_socket.assert_called_with(socket.AF_INET, socket.SOCK_DGRAM) bind_mock.assert_called_once_with((IP, PORT)) self.conf.config(group="health_manager", sock_rlimit=RLIMIT) mock_getaddrinfo.return_value = [FAKE_ADDRINFO, FAKE_ADDRINFO] getter.update(KEY, IP, PORT)
def test_check(self, mock_socket, mock_getaddrinfo): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_getaddrinfo.return_value = [range(1, 6)] mock_dorecv = mock.Mock() mock_executor = mock.Mock() getter = heartbeat_udp.UDPStatusGetter() getter.dorecv = mock_dorecv mock_dorecv.side_effect = [(dict(id=FAKE_ID), 2)] getter.executor = mock_executor getter.check() getter.executor.shutdown() mock_executor.submit.assert_has_calls( [mock.call(heartbeat_udp.update_health, {'id': 1}), mock.call(heartbeat_udp.update_stats, {'id': 1})])
def test_dorecv(self, mock_socket, mock_getaddrinfo): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_getaddrinfo.return_value = [range(1, 6)] recvfrom = mock.MagicMock() socket_mock.recvfrom = recvfrom getter = heartbeat_udp.UDPStatusGetter(None, None) # key = 'TEST' msg = {"testkey": "TEST"} sample_msg = ('78daab562a492d2ec94ead54b252500a710d0e5' '1aa050041b506245806e5c1971e79951818394e' 'a6e71ad989ff950945f9573f4ab6f83e25db8ed7') bin_msg = binascii.unhexlify(sample_msg) recvfrom.return_value = bin_msg, 2 (obj, srcaddr) = getter.dorecv() self.assertEqual(2, srcaddr) self.assertEqual({"testkey": "TEST"}, obj)
def test_dorecv_bad_packet(self, mock_socket, mock_getaddrinfo, mock_unwrap): socket_mock = mock.MagicMock() mock_socket.return_value = socket_mock mock_unwrap.side_effect = Exception('boom') mock_getaddrinfo.return_value = [range(1, 6)] recvfrom = mock.MagicMock() socket_mock.recvfrom = recvfrom getter = heartbeat_udp.UDPStatusGetter() # key = 'TEST' msg = {"testkey": "TEST"} sample_msg = ('78daab562a492d2ec94ead54b252500a710d0e5' '1aa050041b506245806e5c1971e79951818394e' 'a6e71ad989ff950945f9573f4ab6f83e25db8ed7') bin_msg = binascii.unhexlify(sample_msg) recvfrom.return_value = bin_msg, 2 self.assertRaises(exceptions.InvalidHMACException, getter.dorecv)
def hm_listener(exit_event): signal.signal(signal.SIGINT, signal.SIG_IGN) udp_getter = heartbeat_udp.UDPStatusGetter() while not exit_event.is_set(): udp_getter.check()