[repo] Add a publish/subscribe mechanism for inter-instance communication using zmq
Each repo can have a publishing and any number of subscribing sockets
whose addresses are specified in the instance's configuration. An
application or cube can subscribe to some 'topics', and give a callback
that gets called when a message matching that topic is received.
As a proof of concept, this introduces a hook to clean up the caches
associated with the repository when an entity is deleted.
A subscription is added using Repository::zmq::add_subscription;
the callback receives a list representing the received multi-part
message as argument (the first element of the message is its topic).
#! /bin/sh -e
case "$1" in
configure|abort-upgrade|abort-remove|abort-deconfigure)
update-rc.d cubicweb defaults 99 >/dev/null
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
if [ "$1" = configure ]; then
# XXX bw compat: erudi -> cubicweb migration
if [ -e "/etc/erudi.d/" ]; then
mv /etc/erudi.d/* /etc/cubicweb.d/ && (
echo 'moved /etc/erudi.d/* to /etc/cubicweb.d/'
sed -i s/ginco/cubicweb/g /etc/*/*.py
sed -i s/erudi/cubicweb/ */*.conf
) || true # empty dir
fi
if [ -e "/var/log/erudi/" ]; then
mv /var/log/erudi/* /var/log/cubicweb/ && (
echo 'moved /var/log/erudi/* to /var/log/cubicweb/'
) || true # empty dir
fi
if [ -e "/var/lib/erudi/backup" ]; then
mv /var/lib/erudi/backup/* /var/lib/cubicweb/backup/ && (
echo 'moved /var/lib/erudi/backup/* to /var/lib/cubicweb/backup/'
) || true # empty dir
fi
if [ -e "/var/lib/erudi/instances" ]; then
mv /var/lib/erudi/instances/* /var/lib/cubicweb/instances/ && (
echo 'moved /var/lib/erudi/instances/* to /var/lib/cubicweb/instances/'
) || true # empty dir
fi
fi
#DEBHELPER#
exit 0