summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/setup-test-env-amqp1.sh211
1 files changed, 20 insertions, 191 deletions
diff --git a/tools/setup-test-env-amqp1.sh b/tools/setup-test-env-amqp1.sh
index 913d5ea..e5d9f11 100755
--- a/tools/setup-test-env-amqp1.sh
+++ b/tools/setup-test-env-amqp1.sh
@@ -1,212 +1,41 @@
#!/bin/bash
#
-# Usage: setup-test-env-amqp.sh <command to run>
-# where AMQP1_BACKEND is the AMQP 1.0 intermediary to use. Valid
-# values are "qdrouterd" for router and "qpidd" for broker.
+# Configuration files for the qdrouterd and artemis backends generated
+# by pifpaf driver fixtures (https://github.com/jd/pifpaf)
set -e
-# router requires qdrouterd, sasl2-bin/cyrus-sasl-plain+cyrus-sasl-lib
-# broker requires qpidd, qpid-tools sasl2-bin/cyrus-sasl-plain+cyrus-sasl-lib
-
. tools/functions.sh
-DATADIR=$(mktemp -d /tmp/OSLOMSG-${AMQP1_BACKEND}.XXXXX)
-trap "clean_exit $DATADIR" EXIT
-
-function _setup_qdrouterd_user {
- echo secretqpid | saslpasswd2 -c -p -f ${DATADIR}/qdrouterd.sasldb stackqpid
-}
-
-function _setup_qpidd_user {
- echo secretqpid | saslpasswd2 -c -p -f ${DATADIR}/qpidd.sasldb -u QPID stackqpid
-}
-
-function _configure_qdrouterd {
-
- QDR=$(type -p qdrouterd)
- if [[ ! -x "$QDR" ]]; then
- echo "FAILURE: Qpid Dispatch Router (qdrouterd) not installed"
- exit 1
- fi
-
- # create a stand alone router
- cat > ${DATADIR}/qdrouterd.conf <<EOF
-router {
- mode: standalone
- id: Router.A
- workerThreads: 4
- saslConfigPath: ${DATADIR}/sasl2
- saslConfigName: qdrouterd
-}
-
-EOF
-
- # create a listener for incoming connect to the router
- # ip address field name changed to 'host' at 1.0+
- local field_name
- field_name=$([[ $($QDR -v) == 0.*.* ]] && echo addr || echo host)
+ARTEMIS_VERSION=${ARTEMIS_VERSION:-"2.6.4"}
- cat >> ${DATADIR}/qdrouterd.conf <<EOF
-listener {
- ${field_name}: 0.0.0.0
- port: 65123
- role: normal
- authenticatePeer: yes
-}
+if [[ -z "$(which artemis)" ]]; then
+ DATADIR=$(mktemp -d /tmp/OSLOMSG-ARTEMIS.XXXXX)
+ trap "clean_exit $DATADIR" EXIT
-EOF
- # create fixed address prefixes
- cat >> ${DATADIR}/qdrouterd.conf <<EOF
-address {
- prefix: unicast
- distribution: closest
-}
+ tarball=apache-artemis-${ARTEMIS_VERSION}-bin.tar.gz
-address {
- prefix: exclusive
- distribution: closest
-}
-
-address {
- prefix: broadcast
- distribution: multicast
-}
-
-address {
- prefix: openstack.org/om/rpc/multicast
- distribution: multicast
-}
-
-address {
- prefix: openstack.org/om/rpc/unicast
- distribution: closest
-}
-
-address {
- prefix: openstack.org/om/rpc/anycast
- distribution: balanced
-}
-
-address {
- prefix: openstack.org/om/notify/multicast
- distribution: multicast
-}
-
-address {
- prefix: openstack.org/om/notify/unicast
- distribution: closest
-}
-
-address {
- prefix: openstack.org/om/notify/anycast
- distribution: balanced
-}
-
-EOF
-
- # create log file configuration
- cat >> ${DATADIR}/qdrouterd.conf <<EOF
-log {
- module: DEFAULT
- enable: trace+
- output: ${DATADIR}/out
-}
-
-EOF
- # sasl2 config
- mkdir -p ${DATADIR}/sasl2
- cat > ${DATADIR}/sasl2/qdrouterd.conf <<EOF
-pwcheck_method: auxprop
-auxprop_plugin: sasldb
-sasldb_path: ${DATADIR}/qdrouterd.sasldb
-mech_list: PLAIN ANONYMOUS
-EOF
-
-}
-
-function _configure_qpidd {
-
- QPIDD=$(which qpidd 2>/dev/null)
- if [[ ! -x "$QPIDD" ]]; then
- echo "FAILURE: qpidd broker not installed"
- 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
-sasl-config=${DATADIR}/sasl2
-${LIBACL}
-mgmt-enable=yes
-log-to-stderr=no
-data-dir=${DATADIR}/.qpidd
-pid-dir=${DATADIR}/.qpidd
-EOF
-
-if ! `$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
-acl-file=${DATADIR}/qpidd.acl
-sasl-service-name=amqp
-EOF
+ wget http://archive.apache.org/dist/activemq/activemq-artemis/${ARTEMIS_VERSION}/$tarball -O $DATADIR/$tarball
+ tar -xzf $DATADIR/$tarball -C $DATADIR
+ export PATH=$DATADIR/apache-artemis-${ARTEMIS_VERSION}/bin:$PATH
fi
- cat >> ${DATADIR}/qpidd.conf <<EOF
-queue-patterns=exclusive
-queue-patterns=unicast
-topic-patterns=broadcast
-EOF
-
- 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 ANONYMOUS
-sql_select: dummy select
-EOF
-
-}
-
-function _start_qdrouterd {
+# TODO(ansmith) look to move this to pifpaf driver
+function _setup_global_site_package_path {
MAJOR=$(python -c 'import sys; print(sys.version_info.major)')
MINOR=$(python -c 'import sys; print(sys.version_info.minor)')
+ if [ -f "/etc/debian_version" ]; then
+ PRE="dist"
+ else
+ PRE="site"
+ fi
# qdrouterd needs access to global site packages
# create path file and place in virtual env working directory
SITEDIR=${WORKDIR}/${ENVNAME}/lib/python${MAJOR}.${MINOR}/site-packages
cat > ${SITEDIR}/dispatch.pth <<EOF
-/usr/lib/python${MAJOR}.${MINOR}/site-packages
+/usr/lib/python${MAJOR}.${MINOR}/${PRE}-packages
EOF
- QDR=$(which qdrouterd 2>/dev/null)
- mkfifo ${DATADIR}/out
- $QDR --config ${DATADIR}/qdrouterd.conf &
- wait_for_line "Router .*started" "error" ${DATADIR}/out
- rm ${SITEDIR}/dispatch.pth
}
-function _start_qpidd {
- chmod -R a+r ${DATADIR}
- QPIDD=$(which qpidd 2>/dev/null)
- mkfifo ${DATADIR}/out
- $QPIDD --log-enable trace+ --log-to-file ${DATADIR}/out --config ${DATADIR}/qpidd.conf &
- wait_for_line "Broker .*running" "error" ${DATADIR}/out
-}
-
-_configure_${AMQP1_BACKEND}
-_setup_${AMQP1_BACKEND}_user
-_start_${AMQP1_BACKEND}
-
-$*
+_setup_global_site_package_path
+pifpaf --env-prefix ARTEMIS run artemis -- pifpaf --debug --env-prefix QDR run qdrouterd --username stackqpid --password secretqpid -- $*