4dbcfa6c96
As a result of upgrading proton to 0.10, some behavioral changes have triggerd failures in the gate. This patch fixes a subprocess call and syntax error in the AMQP1.0 unit tests. This patch also fixes the functional test setup script to correctly configure olter versions of QPIDD. Both these fixes are necessary to get the gate to pass. Change-Id: I5ca8476999fc953688c76c302a59bedf70658c8b Closes-Bug: #1494794 Closes-Bug: #1494918
105 lines
2.6 KiB
Bash
Executable File
105 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Usage: setup-test-env-qpid.sh PROTOCOL <command to run>
|
|
# where PROTOCOL is the version of the AMQP protocol to use with
|
|
# qpidd. Valid values for PROTOCOL are "1", "1.0", "0-10", "0.10"
|
|
set -e
|
|
|
|
# require qpidd, qpid-tools sasl2-bin/cyrus-sasl-plain+cyrus-sasl-lib
|
|
|
|
. tools/functions.sh
|
|
|
|
DATADIR=$(mktemp -d /tmp/OSLOMSG-QPID.XXXXX)
|
|
trap "clean_exit $DATADIR" EXIT
|
|
|
|
QPIDD=$(which qpidd 2>/dev/null)
|
|
|
|
# which protocol should be used with qpidd?
|
|
# 1 for AMQP 1.0, 0.10 for AMQP 0.10
|
|
#
|
|
PROTOCOL=$1
|
|
case $PROTOCOL in
|
|
"1" | "1.0")
|
|
PROTOCOL="1"
|
|
shift
|
|
;;
|
|
"0.10" | "0-10")
|
|
PROTOCOL="0-10"
|
|
shift
|
|
;;
|
|
*)
|
|
# assume the old protocol
|
|
echo "No protocol specified, assuming 0.10"
|
|
PROTOCOL="0-10"
|
|
;;
|
|
esac
|
|
|
|
# ensure that the version of qpidd does support AMQP 1.0
|
|
if [ $PROTOCOL == "1" ] && ! `$QPIDD --help | grep -q "queue-patterns"`; then
|
|
echo "This version of $QPIDD does not support AMQP 1.0"
|
|
exit 1
|
|
fi
|
|
|
|
[ -f "/usr/lib/qpid/daemon/acl.so" ] && LIBACL="load-module=/usr/lib/qpid/daemon/acl.so"
|
|
|
|
cat > ${DATADIR}/qpidd.conf <<EOF
|
|
port=65123
|
|
acl-file=${DATADIR}/qpidd.acl
|
|
sasl-config=${DATADIR}/sasl2
|
|
${LIBACL}
|
|
mgmt-enable=yes
|
|
log-to-stderr=no
|
|
EOF
|
|
|
|
# sadly, older versions of qpidd (<=0.32) cannot authenticate against
|
|
# newer versions of proton (>=0.10). If this version of qpidd does
|
|
# not support the fix, then do not require authentication
|
|
|
|
if [ $PROTOCOL == "1" ] && ! `$QPIDD --help | grep -q "sasl-service-name"`; then
|
|
echo "This version of $QPIDD does not support SASL authentication with AMQP 1.0"
|
|
cat >> ${DATADIR}/qpidd.conf <<EOF
|
|
auth=no
|
|
EOF
|
|
else
|
|
cat >> ${DATADIR}/qpidd.conf <<EOF
|
|
auth=yes
|
|
EOF
|
|
fi
|
|
|
|
if [ $PROTOCOL == "1" ]; then
|
|
cat >> ${DATADIR}/qpidd.conf <<EOF
|
|
# Used by AMQP1.0 only
|
|
queue-patterns=exclusive
|
|
queue-patterns=unicast
|
|
topic-patterns=broadcast
|
|
EOF
|
|
# versions of qpidd >0.32 require this for AMQP 1 and SASL:
|
|
if `$QPIDD --help | grep -q "sasl-service-name"`; then
|
|
cat >> ${DATADIR}/qpidd.conf <<EOF
|
|
sasl-service-name=amqp
|
|
EOF
|
|
fi
|
|
fi
|
|
|
|
cat > ${DATADIR}/qpidd.acl <<EOF
|
|
group admin stackqpid@QPID
|
|
acl allow admin all
|
|
acl deny all all
|
|
EOF
|
|
|
|
mkdir -p ${DATADIR}/sasl2
|
|
cat > ${DATADIR}/sasl2/qpidd.conf <<EOF
|
|
pwcheck_method: auxprop
|
|
auxprop_plugin: sasldb
|
|
sasldb_path: ${DATADIR}/qpidd.sasldb
|
|
mech_list: PLAIN
|
|
EOF
|
|
|
|
echo secretqpid | saslpasswd2 -c -p -f ${DATADIR}/qpidd.sasldb -u QPID stackqpid
|
|
|
|
mkfifo ${DATADIR}/out
|
|
$QPIDD --log-enable info+ --log-to-file ${DATADIR}/out --config ${DATADIR}/qpidd.conf &
|
|
wait_for_line "Broker .*running" "error" ${DATADIR}/out
|
|
|
|
$*
|