# # Copyright (C) SUSE LINUX GmbH 2016-2017, all rights reserved. # # This library is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2.1 of the License, or # (at your option) version 3. # # This library 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 Lesser General Public # License for more details. function _fail() { echo "error: $*" exit 1 } function _warn() { echo "warning: $*" } # process user defined configuration . ${RAPIDO_DIR}/rapido.conf \ || _fail "rapido.conf missing - see rapido.conf.example" function _rt_ceph_src_globals_set { if [ -f "${CEPH_SRC}/../build/CMakeCache.txt" ]; then # cmake build, compiled binaries and configs are in build subdir CEPH_BIN="${CEPH_SRC}/../build/bin/ceph" CEPH_RBD_BIN="${CEPH_SRC}/../build/bin/rbd" CEPH_MOUNT_BIN="${CEPH_SRC}/../build/bin/mount.ceph" CEPH_RADOS_BIN="${CEPH_SRC}/../build/bin/rados" CEPH_FUSE_BIN="${CEPH_SRC}/../build/bin/ceph-fuse" CEPH_RADOS_LIB="${CEPH_SRC}/../build/lib/librados.so" CEPH_RBD_LIB="${CEPH_SRC}/../build/lib/librbd.so" CEPH_CONF="${CEPH_SRC}/../build/ceph.conf" CEPH_KEYRING="${CEPH_SRC}/../build/keyring" else # autotools build CEPH_BIN="${CEPH_SRC}/ceph" CEPH_RBD_BIN="${CEPH_SRC}/rbd" CEPH_MOUNT_BIN="${CEPH_SRC}/mount.ceph" CEPH_RADOS_BIN="${CEPH_SRC}/rados" CEPH_FUSE_BIN="${CEPH_SRC}/ceph-fuse" CEPH_RADOS_LIB="${CEPH_SRC}/.libs/librados.so" CEPH_RBD_LIB="${CEPH_SRC}/.libs/librbd.so" CEPH_CONF="${CEPH_SRC}/ceph.conf" CEPH_KEYRING="${CEPH_SRC}/keyring" fi RBD_NAMER_BIN="${CEPH_SRC}/ceph-rbdnamer" RBD_UDEV_RULES="${CEPH_SRC}/../udev/50-rbd.rules" CEPH_UDEV_RULES="${CEPH_SRC}/../udev/95-ceph-osd.rules" CEPH_DISK_SYSTEMD_SVC="${CEPH_SRC}/../systemd/ceph-disk@.service" CEPH_OSD_SYSTEMD_SVC="${CEPH_SRC}/../systemd/ceph-osd@.service" } function _rt_ceph_installed_globals_set { # use installed Ceph binaries and configs RBD_NAMER_BIN="/usr/bin/ceph-rbdnamer" RBD_UDEV_RULES="/usr/lib/udev/rules.d/50-rbd.rules" CEPH_UDEV_RULES="/usr/lib/udev/rules.d/95-ceph-osd.rules" CEPH_DISK_SYSTEMD_SVC="/usr/lib/systemd/system/ceph-disk@.service" CEPH_OSD_SYSTEMD_SVC="/usr/lib/systemd/system/ceph-osd@.service" CEPH_BIN="/usr/bin/ceph" CEPH_RBD_BIN="/usr/bin/rbd" CEPH_MOUNT_BIN="/usr/sbin/mount.ceph" CEPH_RADOS_BIN="/usr/bin/rados" CEPH_FUSE_BIN="/usr/bin/ceph-fuse" CEPH_RADOS_LIB="/usr/lib64/librados.so" CEPH_RBD_LIB="/usr/lib64/librbd.so" CEPH_CONF="/etc/ceph/ceph.conf" CEPH_KEYRING="/etc/ceph/ceph.client.${CEPH_USER}.keyring" } function _rt_require_ceph { if [ -n "$CEPH_SRC" ]; then _rt_ceph_src_globals_set else _rt_ceph_installed_globals_set fi [ -f "$RBD_NAMER_BIN" ] || _fail "missing $RBD_NAMER_BIN" [ -f "$RBD_UDEV_RULES" ] || _fail "missing $RBD_UDEV_RULES" [ -f "$CEPH_UDEV_RULES" ] || _fail "missing $CEPH_UDEV_RULES" [ -f "$CEPH_DISK_SYSTEMD_SVC" ] \ || _fail "missing $CEPH_DISK_SYSTEMD_SVC" [ -f "$CEPH_OSD_SYSTEMD_SVC" ] || _fail "missing $CEPH_OSD_SYSTEMD_SVC" [ -f "$CEPH_BIN" ] || _fail "missing $CEPH_BIN" [ -f "$CEPH_RBD_BIN" ] || _fail "missing $CEPH_RBD_BIN" [ -f "$CEPH_MOUNT_BIN" ] || _fail "missing $CEPH_MOUNT_BIN" [ -f "$CEPH_RADOS_BIN" ] || _fail "missing $CEPH_RADOS_BIN" [ -f "$CEPH_FUSE_BIN" ] || _fail "missing $CEPH_FUSE_BIN" [ -f "$CEPH_RADOS_LIB" ] || _fail "missing $CEPH_RADOS_LIB" [ -f "$CEPH_RBD_LIB" ] || _fail "missing $CEPH_RBD_LIB" [ -f "$CEPH_CONF" ] || _fail "missing $CEPH_CONF" [ -f "$CEPH_KEYRING" ] || _fail "missing $CEPH_KEYRING" } function _rt_require_fstests() { if [ -n "$FSTESTS_DIR" ]; then # FSTESTS_DIR is an old config parameter which was used when # Dracut didn't correctly install files directly nested under # "--include