Skip to content

Commit

Permalink
qa: test_rbdmap_RBDMAPFILE.sh workunit
Browse files Browse the repository at this point in the history
Before a7a3658 the rbdmap script was logging bogus messages and not working
on systemd platforms because the unit file was not defining the RBDMAPFILE
environment variable.

This workunit asserts that the bug has been fixed.

http://tracker.ceph.com/issues/14984 References: #14984

Signed-off-by: Nathan Cutler <ncutler@suse.com>
  • Loading branch information
smithfarm committed Mar 20, 2016
1 parent c3adc90 commit 3fdf1f7
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
37 changes: 37 additions & 0 deletions qa/workunits/rbd/test_rbdmap_RBDMAPFILE.sh
@@ -0,0 +1,37 @@
#!/bin/sh
#
# Regression test for http://tracker.ceph.com/issues/14984
#
# When the bug is present, starting the rbdmap service causes
# a bogus log message to be emitted to the log because the RBDMAPFILE
# environment variable is not set.
#
# When the bug is not present, starting the rbdmap service will
# not show up in the log, because /etc/ceph/rbdmap does not contain
# any lines that require processing.
#
set -ex

which ceph-detect-init >/dev/null || exit 1
[ "$(ceph-detect-init)" = "systemd" ] || exit 0

echo "TEST: save timestamp for use later with journalctl --since"
TIMESTAMP=$(date +%Y-%m-%d\ %H:%M:%S)

echo "TEST: assert that rbdmap has not logged anything since boot"
journalctl -b 0 -t rbdmap | grep 'rbdmap\[[[:digit:]]' && exit 1
journalctl -b 0 -t init-rbdmap | grep 'rbdmap\[[[:digit:]]' && exit 1

echo "TEST: restart the rbdmap.service"
sudo systemctl restart rbdmap.service

echo "TEST: ensure that /usr/bin/rbdmap runs to completion"
until sudo systemctl status rbdmap.service | grep 'active (exited)' ; do
sleep 0.5
done

echo "TEST: assert that rbdmap has not logged anything since TIMESTAMP"
journalctl --since "$TIMESTAMP" -t rbdmap | grep 'rbdmap\[[[:digit:]]' && exit 1
journalctl --since "$TIMESTAMP" -t init-rbdmap | grep 'rbdmap\[[[:digit:]]' && exit 1

exit 0
3 changes: 3 additions & 0 deletions src/rbdmap
@@ -1,5 +1,8 @@
#!/bin/sh

# save PID in temporary file (used by regression test)
echo $$ > /tmp/rbdmap.pid

do_map() {

# default to reasonable value if RBDMAPFILE not set in environment
Expand Down

0 comments on commit 3fdf1f7

Please sign in to comment.