summaryrefslogtreecommitdiffstats
path: root/extras/distributed-testing/distributed-test-runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'extras/distributed-testing/distributed-test-runner.py')
-rwxr-xr-xextras/distributed-testing/distributed-test-runner.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/extras/distributed-testing/distributed-test-runner.py b/extras/distributed-testing/distributed-test-runner.py
index 68418fabfaf..e3733ac7cb2 100755
--- a/extras/distributed-testing/distributed-test-runner.py
+++ b/extras/distributed-testing/distributed-test-runner.py
@@ -28,29 +28,40 @@ CLIENT_TIMEOUT_S = 60
PATCH_FILE_UID = str(uuid.uuid4())
SSH_TIMEOUT_S = 10
MAX_ATTEMPTS = 3
+ADDRESS_FAMILY = 'IPv4'
+
+
+def socket_instance(address_family):
+ if address_family.upper() == 'ipv4'.upper():
+ return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ elif address_family.upper() == 'ipv6'.upper():
+ return socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+ else:
+ Log.error("Invalid IP addess family")
+ sys.exit(1)
def patch_file():
return "/tmp/%s-patch.tar.gz" % PATCH_FILE_UID
# ..............................................................................
-# SimpleXMLRPCServer IPv6 Wrapper
+# SimpleXMLRPCServer IPvX Wrapper
# ..............................................................................
-class IPv6SimpleXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer):
+class GeneralXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer):
def __init__(self, addr):
SimpleXMLRPCServer.SimpleXMLRPCServer.__init__(self, addr)
def server_bind(self):
if self.socket:
self.socket.close()
- self.socket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+ self.socket = socket_instance(args['address_family'])
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
SimpleXMLRPCServer.SimpleXMLRPCServer.server_bind(self)
-class IPv6HTTPConnection(httplib.HTTPConnection):
+class HTTPConnection(httplib.HTTPConnection):
def __init__(self, host):
self.host = host
httplib.HTTPConnection.__init__(self, host)
@@ -62,12 +73,12 @@ class IPv6HTTPConnection(httplib.HTTPConnection):
self.sock.settimeout(old_timeout)
-class IPv6Transport(xmlrpclib.Transport):
+class IPTransport(xmlrpclib.Transport):
def __init__(self, *args, **kwargs):
xmlrpclib.Transport.__init__(self, *args, **kwargs)
def make_connection(self, host):
- return IPv6HTTPConnection(host)
+ return HTTPConnection(host)
# ..............................................................................
@@ -236,7 +247,7 @@ class TestServer:
def init(self):
Log.debug("Starting xmlrpc server on port %s" % self.port)
- self.rpc = IPv6SimpleXMLRPCServer(("", self.port))
+ self.rpc = GeneralSimpleXMLRPCServer(("", self.port))
self.rpc.register_instance(Handlers(self.scratchdir))
def serve(self):
@@ -419,7 +430,7 @@ class RPCConnection((threading.Thread)):
def _connect(self):
url = "http://%s:%s" % (self.host, self.port)
- self.proxy = xmlrpclib.ServerProxy(url, transport=IPv6Transport())
+ self.proxy = xmlrpclib.ServerProxy(url, transport=IPTransport())
return self.proxy.hello(self.cb.id)
def disconnect(self):
@@ -836,6 +847,8 @@ parser.add_argument("--test-timeout",
default=TEST_TIMEOUT_S)
# general
parser.add_argument("-v", help="verbose", action="store_true")
+parser.add_argument("--address_family", help="IPv6 or IPv4 to use",
+ default=ADDRESS_FAMILY)
args = parser.parse_args()