From: Loic Dachary Date: Sun, 2 Mar 2014 16:48:25 +0000 (+0100) Subject: osd: helper to create an OSD for functional tests X-Git-Tag: v0.78~105^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eb21bc805d02ad4d24121f459c68da56742ae850;p=ceph.git osd: helper to create an OSD for functional tests Signed-off-by: Loic Dachary --- diff --git a/src/test/Makefile.am b/src/test/Makefile.am index 083a8ffc0ba0..7d2b4eb4e38f 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -242,7 +242,8 @@ check_SCRIPTS += \ test/vstart_wrapped_tests.sh EXTRA_DIST += \ - $(srcdir)/test/mon/mon-test-helpers.sh + $(srcdir)/test/mon/mon-test-helpers.sh \ + $(srcdir)/test/osd/osd-test-helpers.sh # target to build but not run the unit tests unittests:: $(check_PROGRAMS) diff --git a/src/test/osd/osd-test-helpers.sh b/src/test/osd/osd-test-helpers.sh new file mode 100644 index 000000000000..341c17199a6a --- /dev/null +++ b/src/test/osd/osd-test-helpers.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# +# Copyright (C) 2014 Cloudwatt +# +# Author: Loic Dachary +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library Public License for more details. +# + +function run_osd() { + local dir=$1 + shift + local id=$1 + shift + local osd_data=$dir/$id + + local ceph_disk_args + ceph_disk_args+=" --statedir=$dir" + ceph_disk_args+=" --sysconfdir=$dir" + ceph_disk_args+=" --prepend-to-path=" + ceph_disk_args+=" --verbose" + + touch $dir/ceph.conf + + ./ceph-disk $ceph_disk_args \ + prepare $osd_data || return 1 + + local ceph_args="$CEPH_ARGS" + ceph_args+=" --osd-journal-size=100" + ceph_args+=" --osd-data=$osd_data" + ceph_args+=" --chdir=" + ceph_args+=" --run-dir=$dir" + ceph_args+=" --log-file=$dir/osd-\$id.log" + ceph_args+=" --pid-file=$dir/osd-\$id.pidfile" + ceph_args+=" " + ceph_args+="$@" + CEPH_ARGS="$ceph_args" ./ceph-disk $ceph_disk_args \ + activate \ + --mark-init=none \ + $osd_data || return 1 + + [ "$id" = "$(cat $osd_data/whoami)" ] || return 1 + + ./ceph osd crush create-or-move "$id" 1 root=default host=localhost +}