$(srcdir)/upstart/ceph-mds.conf \
$(srcdir)/upstart/ceph-mds-all.conf \
$(srcdir)/upstart/ceph-mds-all-starter.conf \
+ $(srcdir)/upstart/ceph-rbd-mirror.conf \
+ $(srcdir)/upstart/ceph-rbd-mirror-all.conf \
+ $(srcdir)/upstart/ceph-rbd-mirror-all-starter.conf \
$(srcdir)/upstart/radosgw.conf \
$(srcdir)/upstart/radosgw-all.conf \
$(srcdir)/upstart/radosgw-all-starter.conf \
--- /dev/null
+description "Ceph rbd-mirror (task to start all instances)"
+
+start on starting ceph-rbd-mirror-all
+
+task
+
+script
+ set -e
+ # TODO what's the valid charset for cluster names and daemon ids?
+ find -L /var/lib/ceph/rbd-mirror/ -mindepth 1 -maxdepth 1 -regextype posix-egrep -regex '.*/[A-Za-z0-9]+-[A-Za-z0-9._-]+' -printf '%P\n' \
+ | while read f; do
+ if [ -e "/var/lib/ceph/rbd-mirror/$f/done" ]; then
+ cluster="${f%%-*}"
+ id="${f#*-}"
+ initctl emit ceph-rbd-mirror cluster="$cluster" id="$id"
+ fi
+ done
+end script
--- /dev/null
+description "Ceph rbd mirror (all instances)"
+
+start on starting ceph-all
+stop on runlevel [!2345] or stopping ceph-all
--- /dev/null
+description "Ceph rbd mirror"
+
+start on ceph-rbd-mirror
+stop on runlevel [!2345] or stopping ceph-rbd-mirror-all
+
+respawn
+respawn limit 3 1800
+
+limit nofile 8096 65536
+
+pre-start script
+ set -e
+ test -x /usr/bin/rbd-mirror || { stop; exit 0; }
+ test -d "/var/lib/ceph/rbd-mirror/${cluster:-ceph}-$id" || { stop; exit 0; }
+
+ install -d -m0770 -o ceph -g ceph /var/run/ceph
+end script
+
+instance ${cluster:-ceph}/$id
+export cluster
+export id
+
+# this breaks oneiric
+#usage "cluster = name of cluster (defaults to 'ceph'); id = instance id"
+
+exec /usr/bin/rbd-mirror --cluster="${cluster:-ceph}" --id "$id" -f --setuser ceph --setgroup ceph