From 2b50ea5a3046f5f72e90d1c9841453aa9d38767e Mon Sep 17 00:00:00 2001
From: Oleksii Zamiatin <ozamiatin@mirantis.com>
Date: Mon, 4 Jul 2016 12:28:57 +0300
Subject: [PATCH] [zmq] Additional configurations for f-tests

Extend functional testing to cover all zmq deployment configurations.

Change-Id: I03a1bb27a4cca429405a19e9de3ba593bbf1db63
---
 setup-test-env-zmq-proxy.sh   | 31 +++++++++++++++++++++++++++++++
 setup-test-env-zmq-pub-sub.sh | 31 +++++++++++++++++++++++++++++++
 setup-test-env-zmq.sh         |  2 +-
 tox.ini                       |  6 ++++++
 4 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100755 setup-test-env-zmq-proxy.sh
 create mode 100755 setup-test-env-zmq-pub-sub.sh

diff --git a/setup-test-env-zmq-proxy.sh b/setup-test-env-zmq-proxy.sh
new file mode 100755
index 000000000..e40dbb3cc
--- /dev/null
+++ b/setup-test-env-zmq-proxy.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -e
+
+. tools/functions.sh
+
+DATADIR=$(mktemp -d /tmp/OSLOMSG-ZEROMQ.XXXXX)
+trap "clean_exit $DATADIR" EXIT
+
+export TRANSPORT_URL=zmq://
+export ZMQ_MATCHMAKER=redis
+export ZMQ_REDIS_PORT=65123
+export ZMQ_IPC_DIR=${DATADIR}
+export ZMQ_USE_PUB_SUB=false
+export ZMQ_USE_ROUTER_PROXY=true
+
+cat > ${DATADIR}/zmq.conf <<EOF
+[DEFAULT]
+transport_url=${TRANSPORT_URL}
+rpc_zmq_matchmaker=${ZMQ_MATCHMAKER}
+rpc_zmq_ipc_dir=${ZMQ_IPC_DIR}
+use_pub_sub=${ZMQ_USE_PUB_SUB}
+use_router_proxy=${ZMQ_USE_ROUTER_PROXY}
+[matchmaker_redis]
+port=${ZMQ_REDIS_PORT}
+EOF
+
+redis-server --port $ZMQ_REDIS_PORT &
+
+oslo-messaging-zmq-proxy --debug True --config-file ${DATADIR}/zmq.conf > ${DATADIR}/zmq-proxy.log 2>&1 &
+
+$*
diff --git a/setup-test-env-zmq-pub-sub.sh b/setup-test-env-zmq-pub-sub.sh
new file mode 100755
index 000000000..4a937baf2
--- /dev/null
+++ b/setup-test-env-zmq-pub-sub.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -e
+
+. tools/functions.sh
+
+DATADIR=$(mktemp -d /tmp/OSLOMSG-ZEROMQ.XXXXX)
+trap "clean_exit $DATADIR" EXIT
+
+export TRANSPORT_URL=zmq://
+export ZMQ_MATCHMAKER=redis
+export ZMQ_REDIS_PORT=65123
+export ZMQ_IPC_DIR=${DATADIR}
+export ZMQ_USE_PUB_SUB=true
+export ZMQ_USE_ROUTER_PROXY=true
+
+cat > ${DATADIR}/zmq.conf <<EOF
+[DEFAULT]
+transport_url=${TRANSPORT_URL}
+rpc_zmq_matchmaker=${ZMQ_MATCHMAKER}
+rpc_zmq_ipc_dir=${ZMQ_IPC_DIR}
+use_pub_sub=${ZMQ_USE_PUB_SUB}
+use_router_proxy=${ZMQ_USE_ROUTER_PROXY}
+[matchmaker_redis]
+port=${ZMQ_REDIS_PORT}
+EOF
+
+redis-server --port $ZMQ_REDIS_PORT &
+
+oslo-messaging-zmq-proxy --debug True --config-file ${DATADIR}/zmq.conf > ${DATADIR}/zmq-proxy.log 2>&1 &
+
+$*
diff --git a/setup-test-env-zmq.sh b/setup-test-env-zmq.sh
index e40dbb3cc..0fa3fcd64 100755
--- a/setup-test-env-zmq.sh
+++ b/setup-test-env-zmq.sh
@@ -11,7 +11,7 @@ export ZMQ_MATCHMAKER=redis
 export ZMQ_REDIS_PORT=65123
 export ZMQ_IPC_DIR=${DATADIR}
 export ZMQ_USE_PUB_SUB=false
-export ZMQ_USE_ROUTER_PROXY=true
+export ZMQ_USE_ROUTER_PROXY=false
 
 cat > ${DATADIR}/zmq.conf <<EOF
 [DEFAULT]
diff --git a/tox.ini b/tox.ini
index e39daba8e..708a27652 100644
--- a/tox.ini
+++ b/tox.ini
@@ -42,6 +42,12 @@ commands = {toxinidir}/setup-test-env-qpid.sh 1.0 python setup.py testr --slowes
 [testenv:py27-func-zeromq]
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest --testr-args='oslo_messaging.tests.functional'
 
+[testenv:py27-func-zeromq-proxy]
+commands = {toxinidir}/setup-test-env-zmq-proxy.sh python setup.py testr --slowest --testr-args='oslo_messaging.tests.functional'
+
+[testenv:py27-func-zeromq-pub-sub]
+commands = {toxinidir}/setup-test-env-zmq-pub-sub.sh python setup.py testr --slowest --testr-args='oslo_messaging.tests.functional'
+
 [testenv:bandit]
 deps = -r{toxinidir}/test-requirements.txt
 commands = bandit -r oslo_messaging -x tests -n5