CC=gcc
CXX=gcc
-VPATH:=${top_srcdir}/src:${top_srcdir}/interface:${top_srcdir}/test:${top_srcdir}/doc:${top_srcdir}/examples
+VPATH:=${top_srcdir}/src:${top_srcdir}/interface:${top_srcdir}/test:${top_srcdir}/doc:${top_srcdir}/examples:${top_srcdir}/config
VERSION=-DVERSION=\"GLite-${version}\"
EXAMPLES=glite-lb-cmsclient
+SCRIPTS_SRC=msg.cron.in msg-config.in
+SCRIPTS=${SCRIPTS_SRC:.in=.new}
+
ifeq (${thrflavour},)
default_flavour=
else
default: all
-all compile: ${PLUGIN_LIB} ${EXAMPLES}
+all compile: ${PLUGIN_LIB} ${EXAMPLES} ${SCRIPTS}
${PLUGIN_LIB}: ${PLUGIN_LOBJS}
${SOLINK} -o $@ ${PLUGIN_LOBJS} ${EXT_LIB} -lglite_lb_common${default_flavour} -lglite_jobid -lglite_lbu_log
install:
-mkdir -p ${DESTDIR}${PREFIX}${prefix}/${libdir}/glite-lb/examples
-mkdir -p ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version}
- -mkdir -p ${DESTDIR}${PREFIX}${prefix}/share/glite-lb
+ -mkdir -p ${DESTDIR}${PREFIX}${prefix}/sbin
-mkdir -p ${DESTDIR}${PREFIX}${sysconfdir}/glite-lb
+ -mkdir -p ${DESTDIR}${PREFIX}${sysconfdir}/cron.d
${INSTALL} -m 644 ${top_srcdir}/LICENSE ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version}
${INSTALL} -m 755 ${PLUGIN_LIB} ${DESTDIR}${PREFIX}${prefix}/${libdir}
${INSTALL} -m 755 ${EXAMPLES} ${DESTDIR}${PREFIX}${prefix}/${libdir}/glite-lb/examples
( cd ${top_srcdir}/project && ${INSTALL} -m 644 ChangeLog package.description package.summary ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version} )
${INSTALL} -m 644 ${top_srcdir}/config/msg.conf.example ${DESTDIR}${PREFIX}${sysconfdir}/glite-lb
- ${INSTALL} -m 755 ${top_srcdir}/src/msg-brokers ${DESTDIR}${PREFIX}${prefix}/share/glite-lb
+ ${INSTALL} -m 755 ${top_srcdir}/src/msg-brokers ${DESTDIR}${PREFIX}${prefix}/sbin/glite-lb-msg-brokers
+ ${INSTALL} -m 755 msg-config.new ${DESTDIR}${PREFIX}${prefix}/sbin/glite-lb-msg-config
+ ${INSTALL} -m 644 msg.cron.new ${DESTDIR}${PREFIX}${sysconfdir}/cron.d/glite-lb-logger-msg.cron
%.lo %.o: %.cpp
${COMPILEXX} -c $< -o $@
+%.new: %.in
+ sed -e 's:@glite_prefix@:${sysroot}${prefix}:' -e 's:@glite_etc@:${sysconfdir}:' $< > $@
clean:
rm -rvf .libs/ *.o *.lo ${PLUGIN_LIB} ${MAN_GZ} ${EXAMPLES}
--- /dev/null
+50 */4 * * * root @glite_prefix@/sbin/glite-lb-msg-config @glite_etc@/glite-lb/msg.conf >/tmp/msg-config.log.$$ 2>&1; if test $? -eq 0; then pri=user.notice; else pri=user.error; fi; logger -t glite-lb-msg-config -f /tmp/msg-config.log.$$ -p $pri; rm -f /tmp/msg-config.log.$$
etc/glite-lb
usr/lib/glite-lb
usr/lib/glite-lb/examples
+usr/sbin
usr/share/doc/glite-lb-logger-msg
usr/share/glite-lb
etc/glite-lb/*
usr/lib/activemq_cpp_plugin.so*
usr/lib/glite-lb/examples/*
+usr/sbin/glite-lb-msg-*
usr/share/doc/glite-lb-logger-msg/*
usr/share/glite-lb/*
%dir /usr/%{_lib}/glite-lb/
%dir /usr/%{_lib}/glite-lb/examples/
%dir /usr/share/doc/%{name}-%{version}/
-%dir /usr/share/glite-lb/
%config(missingok) /etc/glite-lb/msg.conf.example
/usr/%{_lib}/activemq_cpp_plugin.so
/usr/%{_lib}/activemq_cpp_plugin.so.0
/usr/share/doc/%{name}-%{version}/LICENSE
/usr/share/doc/%{name}-%{version}/package.summary
/usr/share/doc/%{name}-%{version}/package.description
-/usr/share/glite-lb/*
+/usr/sbin/glite-lb-msg-*
%changelog
--- /dev/null
+#! /bin/bash
+
+test -f /etc/profile.d/grid-env.sh && . /etc/profile.d/grid-env.sh
+
+GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'}
+LCG_GFAL_INFOSYS=${LCG_GFAL_INFOSYS:-'lcg-bdii.cern.ch:2170'}
+GLITE_LB_MSG_NETWORK=${GLITE_LB_MSG_NETWORK:-'PROD'}
+
+CONF=/tmp/msg.$$
+TEMPLATE=$1
+TARGET=$2
+
+if [ -z "$TEMPLATE" ]; then
+ echo "Usage: $0 TEMPLATE [TARGET]"
+ exit 1
+fi
+if [ -z "$TARGET" ]; then
+ TARGET=$TEMPLATE
+fi
+
+# removing and resurrecting
+if [ "$GLITE_LB_MSG_BROKER" = 'false' ]; then
+ if [ -f "$TARGET" ]; then
+ mv $TARGET $TARGET.disabled
+ echo "disabled, configuration removed"
+ fi
+ exit 0
+fi
+if [ ! -s "$TEMPLATE" ]; then
+ if [ -f "$TEMPLATE.disabled" ]; then
+ mv $TEMPLATE.disabled $TEMPLATE
+ else
+ cat <<EOF >$TEMPLATE
+# automatically generated by glite-lb-msg-config
+
+[interlogd]
+plugin = activemq_cpp_plugin.so
+
+[msg]
+EOF
+ fi
+fi
+
+HEADER="`cat $TEMPLATE | grep -B 1000 '^\[msg\]'`"
+PREFIX="`cat $TEMPLATE | grep -A 1000 '^\[msg\]' | grep prefix | head -n -1`"
+
+if [ "$GLITE_LB_MSG_BROKER" = 'true' -o "$GLITE_LB_MSG_BROKER" = 'auto' -o -z "$GLITE_LB_MSG_BROKER" ]; then
+ GLITE_LB_MSG_BROKER="`$GLITE_LOCATION/sbin/glite-lb-msg-brokers --bdii $LCG_GFAL_INFOSYS --network $GLITE_LB_MSG_NETWORK --sort find`" || exit $?
+ # bend for using in L&B configuration:
+ # 1) stomp not supported
+ # 2) translate openwire -> tcp, openwire+ssl -> ssl
+ # 3) temporary disable the ssl
+ GLITE_LB_MSG_BROKER=`echo "$GLITE_LB_MSG_BROKER" | grep -v ^stomp | sed -e 's,openwire://,tcp://,' -e 's,openwire+ssl://,ssl://,g' | grep -v ^ssl`
+ GLITE_LB_MSG_BROKER=`echo $GLITE_LB_MSG_BROKER`
+fi
+
+if [ -z "$GLITE_LB_MSG_BROKER" ]; then
+ exit 2
+fi
+
+[ -z "$HEADER" ] || echo "$HEADER" > $CONF
+[ -z "$PREFIX" ] || echo "$PREFIX" >> $CONF
+[ -z "$GLITE_LB_MSG_BROKER" ] || echo 'broker =' $GLITE_LB_MSG_BROKER >> $CONF
+
+if [ ! -f $TARGET ]; then touch $TARGET; fi
+diff -b $TARGET $CONF >/dev/null
+case $? in
+ 0) ;;
+ 1) mv $CONF $TARGET; echo "new brokers '$GLITE_LB_MSG_BROKER'" ;;
+ 2) rm -f $CONF; exit 2 ;;
+esac
+rm -f $CONF
lcas_plugin="$GLITE_LB_LOCATION/$lcas_libarch/modules/lcas_lb.mod"
echo "pluginname=\"$lcas_plugin\"" > ${GLITE_LB_LOCATION_ETC}/glite-lb/lcas.db
- # MSG publish
- if [ "$GLITE_LB_MSG_BROKER" = 'false' ]; then
- rm -f "$GLITE_LB_LOCATION_ETC/glite-lb/msg.conf"
- else
- if [ "$GLITE_LB_MSG_BROKER" = 'true' -o "$GLITE_LB_MSG_BROKER" = 'auto' -o -z "$GLITE_LB_MSG_BROKER" ]; then
- GLITE_LB_MSG_BROKER="`${GLITE_LB_LOCATION}/share/glite-lb/msg-brokers --bdii $LCG_GFAL_INFOSYS --network $GLITE_LB_MSG_NETWORK --sort find | head -n 1 | sed 's,openwire://,tcp://,'`";
- fi
- if [ ! -z "$GLITE_LB_MSG_BROKER" ]; then
- cat > "$GLITE_LB_LOCATION_ETC/glite-lb/msg.conf" <<EOF
-# automatically generated by yaim
-[interlogd]
-plugin = activemq_cpp_plugin.so
-
-[msg]
-broker = $GLITE_LB_MSG_BROKER
-EOF
- fi
+ out="`$GLITE_LB_LOCATION/sbin/glite-lb-msg-config $GLITE_LB_LOCATION_ETC/glite-lb/msg.conf 2>&1`"
+ ret=$?
+ if [ $ret -eq 0 ]; then level=INFO; else level=WARNING; fi
+ if [ -n "$out" -o $ret -ne 0 ]; then
+ yaimlog $level "$out"
fi
# upgrade from L&B <= 3.1.1