Пример #1
0
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()
Пример #2
0
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()
Пример #3
0
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)
Пример #4
0
    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()
Пример #5
0
    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)
Пример #6
0
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.')
Пример #7
0
    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})
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
    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})])
Пример #12
0
    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)
Пример #13
0
    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)
Пример #14
0
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()