collector: enable the service to listen on IPv6.
It makes udp_address=::0 work. Change-Id: Ib77dce329d8782a7079581a371efd3530c2f2942 Closes-Bug: 1435897
This commit is contained in:
parent
b0ba685268
commit
b6486bedab
|
@ -16,6 +16,7 @@
|
|||
import socket
|
||||
|
||||
import msgpack
|
||||
import netaddr
|
||||
import oslo.messaging
|
||||
from oslo_config import cfg
|
||||
from oslo_utils import timeutils
|
||||
|
@ -107,7 +108,10 @@ class CollectorService(os_service.Service):
|
|||
self.tg.add_timer(604800, lambda: None)
|
||||
|
||||
def start_udp(self):
|
||||
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
address_family = socket.AF_INET
|
||||
if netaddr.valid_ipv6(cfg.CONF.collector.udp_address):
|
||||
address_family = socket.AF_INET6
|
||||
udp = socket.socket(address_family, socket.SOCK_DGRAM)
|
||||
udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
udp.bind((cfg.CONF.collector.udp_address,
|
||||
cfg.CONF.collector.udp_port))
|
||||
|
|
|
@ -141,14 +141,27 @@ class TestCollector(tests_base.BaseTestCase):
|
|||
|
||||
udp_socket = self._make_fake_socket(self.counter)
|
||||
|
||||
with mock.patch('socket.socket', return_value=udp_socket):
|
||||
with mock.patch('socket.socket') as mock_socket:
|
||||
mock_socket.return_value = udp_socket
|
||||
self.srv.start()
|
||||
mock_socket.assert_called_with(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
|
||||
self._verify_udp_socket(udp_socket)
|
||||
|
||||
mock_dispatcher.record_metering_data.assert_called_once_with(
|
||||
self.counter)
|
||||
|
||||
def test_udp_socket_ipv6(self):
|
||||
self._setup_messaging(False)
|
||||
self.CONF.set_override('udp_address', '::1', group='collector')
|
||||
self._setup_fake_dispatcher()
|
||||
sock = self._make_fake_socket('data')
|
||||
|
||||
with mock.patch.object(socket, 'socket') as mock_socket:
|
||||
mock_socket.return_value = sock
|
||||
self.srv.start()
|
||||
mock_socket.assert_called_with(socket.AF_INET6, socket.SOCK_DGRAM)
|
||||
|
||||
def test_udp_receive_storage_error(self):
|
||||
self._setup_messaging(False)
|
||||
mock_dispatcher = self._setup_fake_dispatcher()
|
||||
|
|
Loading…
Reference in New Issue