+++ /dev/null
-#!/bin/bash
-
-eval set -- "$(getopt -o n: --long name:,cluster: -- $@)"
-
-while true ; do
- case "$1" in
- -n|--name) name=$2; shift 2 ;;
- --cluster) cluster=$2; shift 2 ;;
- --) shift ; break ;;
- esac
-done
-
-CEPHCONF=`which ceph-conf`
-RADOSGW=`which radosgw`
-
-if [ -z "${CEPHCONF}" ]; then
- CEPHCONF=/usr/bin/${CEPHCONF}
-fi
-
-if [ ! -x "${CEPHCONF}" ]; then
- echo "${CEPHCONF} could not start, it is not executable."
- exit 1
-fi
-
-if [ -z "$RADOSGW" ]; then
- RADOSGW=/usr/bin/radosgw
-fi
-
-if [ ! -x "$RADOSGW" ]; then
- echo "$RADOSGW could not start, it is not executable."
- exit 1
-fi
-
-# prefix for radosgw instances in ceph.conf
-PREFIX='client.radosgw.'
-
-if [ -z "$name" ]; then
- echo "no name paramter"
- exit 1
-fi
-
-if [ -z "$cluster" ]; then
- cluster="ceph"
-fi
-
-ceph_conf_file="/etc/ceph/${cluster}.conf"
-
-if [ ! -f "${ceph_conf_file}" ] ; then
- echo "ceph config file not found: $ceph_conf_file"
- exit 1
-fi
-
-longname=${PREFIX}${name}
-testname=$(${CEPHCONF} -c ${ceph_conf_file} --list-sections $PREFIX | grep $longname )
-
-if [ -z "$testname" ]; then
- echo "error parsing '$name' : valid types are: $(echo $(${CEPHCONF} -c ${ceph_conf_file} --list-sections $PREFIX | sed s/$PREFIX//))"
- exit 1
-fi
-
-auto_start=`${CEPHCONF} -c ${ceph_conf_file} -n $longname 'auto start'`
-if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then
- echo "ceph.conf:[$longname], says not to start."
- exit 1
-fi
-
-# is the socket defined? if it's not, this instance shouldn't run as a daemon.
-rgw_socket=`$RADOSGW -c ${ceph_conf_file} -n $longname --show-config-value rgw_socket_path`
-if [ -z "$rgw_socket" ]; then
- echo "socket $rgw_socket could not be found in ceph.conf:[$longname], not starting."
- exit 1
-fi
-
-# mapped to this host?
-host=`${CEPHCONF} -c ${ceph_conf_file} -n $longname host`
-hostname=`hostname -s`
-if [ "$host" != "$hostname" ]; then
- echo "hostname $hostname could not be found in ceph.conf:[$longname], not starting."
- exit 1
-fi
-
-user=`${CEPHCONF} -c ${ceph_conf_file} -n $longname user`
-if [ -n "$user" ]; then
- if [ "$USER" != "$user" ]; then
- echo "enviroment \$USER '$USER' does not match '$longname' user '$user'"
- exit 1
- fi
-fi
-
-
-log_file=`$RADOSGW -c ${ceph_conf_file} -n $longname --show-config-value log_file`
-if [ -n "$log_file" ]; then
- if [ ! -f "$log_file" ]; then
- touch "$log_file"
- touchrc=$?
- if [ 0 != $touchrc ] ; then
- exit $touchrc
- fi
- fi
-fi