summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkhandel <dkhandel@localhost.localdomain>2018-06-11 12:49:41 +0530
committerAmar Tumballi <amarts@redhat.com>2018-06-18 03:47:01 +0000
commit8353bc096117e446f08c4970b3f7f55d4aa3356c (patch)
treeed25ac0b0d4fb0b92bd3a03966e5f49f5803a19f
parent337f5815a4fa9a961c72b249e1d6b1c6907e961d (diff)
Add a command-line argument option to use specific address family
This commit adds option to pass command-line argument to use any of IPv4 or IPv6 address family. Also it clean all the logs in the /tmp before running the distributed-test-runner.py fixes: bz#1586342 Change-Id: Ie55021389d454a7e3631359cbd6a1504b6661317 Signed-off-by: dkhandel <dkhandel@redhat.com>
-rwxr-xr-xextras/distributed-testing/distributed-test-runner.py29
-rwxr-xr-xextras/distributed-testing/distributed-test.sh10
2 files changed, 28 insertions, 11 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()
diff --git a/extras/distributed-testing/distributed-test.sh b/extras/distributed-testing/distributed-test.sh
index 1ceff033cba..8f1e0310f33 100755
--- a/extras/distributed-testing/distributed-test.sh
+++ b/extras/distributed-testing/distributed-test.sh
@@ -7,6 +7,7 @@ TESTS='all'
FLAKY=$KNOWN_FLAKY_TESTS
BROKEN=$BROKEN_TESTS
TEST_TIMEOUT_S=900
+ADDRESS_FAMILY='IPv4'
FLAGS=""
@@ -20,7 +21,7 @@ function print_env {
}
function cleanup {
- rm -f /tmp/test-*.log
+ rm -f /tmp/test*.log
}
function usage {
@@ -30,13 +31,14 @@ function usage {
[--hosts <hosts>] [-n <parallelism>]
[--tests <tests>]
[--id-rsa <ssh private key>]
+ [--address_family <IPv4 or IPv6>]
"
}
function parse_args () {
args=`getopt \
-o hvn: \
- --long help,verbose,valgrind,asan,asan-noleaks,all,\
+ --long help,verbose,address_family:,valgrind,asan,asan-noleaks,all,\
smoke,flaky,broken,hosts:,tests:,id-rsa:,test-timeout: \
-n 'fb-remote-test.sh' -- "$@"`
@@ -51,6 +53,7 @@ smoke,flaky,broken,hosts:,tests:,id-rsa:,test-timeout: \
case "$1" in
-h | --help) usage ; exit 1 ;;
-v | --verbose) FLAGS="$FLAGS -v" ; shift ;;
+ --address_family) ADDRESS_FAMILY=$2; shift 2 ;;
--valgrind) FLAGS="$FLAGS --valgrind" ; shift ;;
--asan-noleaks) FLAGS="$FLAGS --asan-noleaks"; shift ;;
--asan) FLAGS="$FLAGS --asan" ; shift ;;
@@ -83,7 +86,8 @@ function main {
"extras/distributed-testing/distributed-test-runner.py" $FLAGS --tester \
--n "$N" --hosts "$HOSTS" --tests "$TESTS" \
- --flaky_tests "$FLAKY $BROKEN" --test-timeout "$TEST_TIMEOUT_S"
+ --flaky_tests "$FLAKY $BROKEN" --test-timeout "$TEST_TIMEOUT_S" \
+ --address_family "$ADDRESS_FAMILY"
exit $?
}