Ema has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/363182 )
Change subject: Add IPv6 support to all monitors ...................................................................... Add IPv6 support to all monitors Previously, monitors would only monitor over IPv4 by picking a random IP from the IPv4 address set only on every connection. With this change they will *only* monitor with the primary IP (IPv4 or IPv6, depending on the address family of the service) that was selected to be pooled by IPVS. Change-Id: I21c1575e180cbda792a5eacc004fafd4a624e03b --- M pybal/monitors/dnsquery.py M pybal/monitors/idleconnection.py M pybal/monitors/proxyfetch.py M pybal/test/test_monitors.py 4 files changed, 8 insertions(+), 17 deletions(-) Approvals: Ema: Looks good to me, approved jenkins-bot: Verified diff --git a/pybal/monitors/dnsquery.py b/pybal/monitors/dnsquery.py index 65b7e89..b374791 100644 --- a/pybal/monitors/dnsquery.py +++ b/pybal/monitors/dnsquery.py @@ -52,7 +52,7 @@ super(DNSQueryMonitoringProtocol, self).run() # Create a resolver - self.resolver = client.createResolver([(ip, 53) for ip in self.server.ip4_addresses]) + self.resolver = client.createResolver([(self.server.ip, 53)]) if not self.checkCall or not self.checkCall.active(): self.checkCall = reactor.callLater(self.intvCheck, self.check) diff --git a/pybal/monitors/idleconnection.py b/pybal/monitors/idleconnection.py index 1c34634..42c556d 100644 --- a/pybal/monitors/idleconnection.py +++ b/pybal/monitors/idleconnection.py @@ -10,7 +10,6 @@ from twisted.internet import reactor, protocol import logging -import random import socket @@ -130,9 +129,4 @@ def _connect(self, *args, **kwargs): """Starts a TCP connection attempt""" - try: - host = random.choice(self.server.ip4_addresses) - except (TypeError, IndexError): - host = self.server.host - - self.reactor.connectTCP(host, self.server.port, self, *args, **kwargs) + self.reactor.connectTCP(self.server.ip, self.server.port, self, *args, **kwargs) diff --git a/pybal/monitors/proxyfetch.py b/pybal/monitors/proxyfetch.py index 201c2ef..3468e73 100644 --- a/pybal/monitors/proxyfetch.py +++ b/pybal/monitors/proxyfetch.py @@ -10,7 +10,7 @@ from twisted.internet import reactor, defer from twisted.web import client from twisted.python.runtime import seconds -import logging +import logging, random log = util.log @@ -96,16 +96,13 @@ # FIXME: Use GET as a workaround for a Twisted bug with HEAD/Content-length # where it expects a body and throws a PartialDownload failure - import random url = random.choice(self.URL) - try: - host = random.choice(self.server.ip4_addresses) - except (TypeError, IndexError): - host = self.server.host self.checkStartTime = seconds() self.getPageDeferred = self.getProxyPage( - url, method='GET', host=host, + url, + method='GET', + host=self.server.ip, port=self.server.port, status=self.expectedStatus, timeout=self.toGET, diff --git a/pybal/test/test_monitors.py b/pybal/test/test_monitors.py index b44d29d..c38a370 100644 --- a/pybal/test/test_monitors.py +++ b/pybal/test/test_monitors.py @@ -49,8 +49,8 @@ self.monitor.run() connector = self.reactor.connectors.pop() destination = connector.getDestination() - self.assertEquals((destination.host, destination.port), - (self.server.host, self.server.port)) + self.assert_((destination.host, destination.port) == (self.server.host, self.server.port) + or (destination.host, destination.port) == (self.server.ip, self.server.port)) def testClientConnectionMade(self): """Test `IdleConnectionMonitoringProtocol.clientConnectionMade`.""" -- To view, visit https://gerrit.wikimedia.org/r/363182 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I21c1575e180cbda792a5eacc004fafd4a624e03b Gerrit-PatchSet: 1 Gerrit-Project: operations/debs/pybal Gerrit-Branch: 1.13 Gerrit-Owner: Ema <e...@wikimedia.org> Gerrit-Reviewer: Ema <e...@wikimedia.org> Gerrit-Reviewer: Mark Bergsma <m...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits