-EXTRA_DIST = ceph.in Makefile.in
+EXTRA_DIST = Makefile.in
if WITH_OCF
# The root of the OCF resource agent hierarchy
# The ceph provider directory
radir = $(ocfdir)/resource.d/$(PACKAGE_NAME)
-ra_SCRIPTS = ceph rbd
-
-install-data-hook:
- $(LN_S) ceph $(DESTDIR)$(radir)/osd
- $(LN_S) ceph $(DESTDIR)$(radir)/mds
- $(LN_S) ceph $(DESTDIR)$(radir)/mon
-
-uninstall-hook:
- rm -f $(DESTDIR)$(radir)/osd
- rm -f $(DESTDIR)$(radir)/mds
- rm -f $(DESTDIR)$(radir)/mon
+ra_SCRIPTS = rbd
endif
+++ /dev/null
-#!/bin/sh
-
-# Initialization:
-: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
-. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
-
-# Convenience variables
-# When sysconfdir isn't passed in as a configure flag,
-# it's defined in terms of prefix
-prefix=@prefix@
-CEPH_INIT=@sysconfdir@/init.d/ceph
-
-ceph_meta_data() {
- local longdesc
- local shortdesc
- case $__SCRIPT_NAME in
- "osd")
- longdesc="Wraps the ceph init script to provide an OCF resource agent that manages and monitors the Ceph OSD service."
- shortdesc="Manages a Ceph OSD instance."
- ;;
- "mds")
- longdesc="Wraps the ceph init script to provide an OCF resource agent that manages and monitors the Ceph MDS service."
- shortdesc="Manages a Ceph MDS instance."
- ;;
- "mon")
- longdesc="Wraps the ceph init script to provide an OCF resource agent that manages and monitors the Ceph MON service."
- shortdesc="Manages a Ceph MON instance."
- ;;
- esac
-
-cat <<EOF
-<?xml version="1.0"?>
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
-<resource-agent name="${__SCRIPT_NAME}" version="0.1">
- <version>0.1</version>
- <longdesc lang="en">${longdesc}</longdesc>
- <shortdesc lang="en">${shortdesc}</shortdesc>
- <parameters/>
- <actions>
- <action name="start" timeout="20" />
- <action name="stop" timeout="20" />
- <action name="monitor" timeout="20"
- interval="10"/>
- <action name="meta-data" timeout="5" />
- <action name="validate-all" timeout="20" />
- </actions>
-</resource-agent>
-EOF
-}
-
-ceph_action() {
- local init_action
- init_action="$1"
-
- case ${__SCRIPT_NAME} in
- osd|mds|mon)
- ocf_run $CEPH_INIT $init_action ${__SCRIPT_NAME}
- ;;
- *)
- ocf_run $CEPH_INIT $init_action
- ;;
- esac
-}
-
-ceph_validate_all() {
- # Do we have the ceph init script?
- check_binary @sysconfdir@/init.d/ceph
-
- # Do we have a configuration file?
- [ -e @sysconfdir@/ceph/ceph.conf ] || exit $OCF_ERR_INSTALLED
-}
-
-ceph_monitor() {
- local rc
-
- ceph_action status
-
- # 0: running, and fully caught up with master
- # 3: gracefully stopped
- # any other: error
- case "$?" in
- 0)
- rc=$OCF_SUCCESS
- ocf_log debug "Resource is running"
- ;;
- 3)
- rc=$OCF_NOT_RUNNING
- ocf_log debug "Resource is not running"
- ;;
- *)
- ocf_log err "Resource has failed"
- rc=$OCF_ERR_GENERIC
- esac
-
- return $rc
-}
-
-ceph_start() {
- # if resource is already running, bail out early
- if ceph_monitor; then
- ocf_log info "Resource is already running"
- return $OCF_SUCCESS
- fi
-
- ceph_action start
-
- while ! ceph_monitor; do
- ocf_log debug "Resource has not started yet, waiting"
- sleep 1
- done
-
- return $OCF_SUCCESS
-}
-
-ceph_stop() {
- local rc
-
- # exit immediately if configuration is not valid
- ceph_validate_all || exit $?
-
- ceph_monitor
- rc=$?
- case "$rc" in
- "$OCF_SUCCESS")
- # Currently running. Normal, expected behavior.
- ocf_log debug "Resource is currently running"
- ;;
- "$OCF_NOT_RUNNING")
- # Currently not running. Nothing to do.
- ocf_log info "Resource is already stopped"
- return $OCF_SUCCESS
- ;;
- esac
-
- ceph_action stop
-
- while ceph_monitor; do
- ocf_log debug "Resource has not stopped yet, waiting"
- sleep 1
- done
-
- # only return $OCF_SUCCESS if _everything_ succeeded as expected
- return $OCF_SUCCESS
-
-}
-
-
-
-# Make sure meta-data and usage always succeed
-case $__OCF_ACTION in
-meta-data) ceph_meta_data
- exit $OCF_SUCCESS
- ;;
-usage|help) ceph_usage
- exit $OCF_SUCCESS
- ;;
-esac
-
-# Anything other than meta-data and usage must pass validation
-ceph_validate_all || exit $?
-
-# Translate each action into the appropriate function call
-case $__OCF_ACTION in
-start) ceph_start;;
-stop) ceph_stop;;
-status|monitor) ceph_monitor;;
-reload) ocf_log info "Reloading..."
- ceph_start
- ;;
-validate-all) ;;
-*) ceph_usage
- exit $OCF_ERR_UNIMPLEMENTED
- ;;
-esac
-rc=$?
-
-exit $rc