From 5e8f9f050cac3817421ef0c0b7b0b3714e4ff647 Mon Sep 17 00:00:00 2001 From: Jaime Melis Date: Fri, 9 Aug 2013 11:53:37 -0400 Subject: [PATCH] feature-2262: Remove HOST default attribute from ceph.conf and ceph drivers --- src/datastore_mad/remotes/ceph/ceph.conf | 3 --- src/datastore_mad/remotes/ceph/clone | 7 ++++++- src/datastore_mad/remotes/ceph/cp | 7 ++++++- src/datastore_mad/remotes/ceph/mkfs | 7 ++++++- src/datastore_mad/remotes/ceph/monitor | 11 ++++++++--- src/datastore_mad/remotes/ceph/rm | 7 ++++++- src/tm_mad/ceph/clone | 5 +++++ 7 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/datastore_mad/remotes/ceph/ceph.conf b/src/datastore_mad/remotes/ceph/ceph.conf index 36d4df0058..729d45c550 100644 --- a/src/datastore_mad/remotes/ceph/ceph.conf +++ b/src/datastore_mad/remotes/ceph/ceph.conf @@ -17,9 +17,6 @@ # Default POOL_NAME POOL_NAME=one -# Default Ceph server host. Storage operations will be performed in this host. -HOST=localhost - # Staging directory # A directory in the Ceph server host where image will be transferred to # temporarily during the create/mkfs processes. This directoy MUST exist, diff --git a/src/datastore_mad/remotes/ceph/clone b/src/datastore_mad/remotes/ceph/clone index a1d6b729f3..112f32cd24 100755 --- a/src/datastore_mad/remotes/ceph/clone +++ b/src/datastore_mad/remotes/ceph/clone @@ -53,11 +53,16 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ unset i BASE_PATH="${XPATH_ELEMENTS[i++]}" -DST_HOST="${XPATH_ELEMENTS[i++]:-$HOST}" +DST_HOST="${XPATH_ELEMENTS[i++]}" POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" SRC="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi + SAFE_DIRS="" IMAGE_NAME="one-${ID}" diff --git a/src/datastore_mad/remotes/ceph/cp b/src/datastore_mad/remotes/ceph/cp index 82a295138f..08afb8dae4 100755 --- a/src/datastore_mad/remotes/ceph/cp +++ b/src/datastore_mad/remotes/ceph/cp @@ -66,7 +66,7 @@ unset i BASE_PATH="${XPATH_ELEMENTS[i++]}" RESTRICTED_DIRS="${XPATH_ELEMENTS[i++]}" SAFE_DIRS="${XPATH_ELEMENTS[i++]}" -DST_HOST="${XPATH_ELEMENTS[i++]:-$HOST}" +DST_HOST="${XPATH_ELEMENTS[i++]}" POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" STAGING_DIR="${XPATH_ELEMENTS[i++]:-$STAGING_DIR}" SRC="${XPATH_ELEMENTS[i++]}" @@ -76,6 +76,11 @@ SHA1="${XPATH_ELEMENTS[i++]}" NO_DECOMPRESS="${XPATH_ELEMENTS[i++]}" LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[i++]}" +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi + set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" IMAGE_HASH=`generate_image_hash` diff --git a/src/datastore_mad/remotes/ceph/mkfs b/src/datastore_mad/remotes/ceph/mkfs index e14404bf77..d86c563eb5 100755 --- a/src/datastore_mad/remotes/ceph/mkfs +++ b/src/datastore_mad/remotes/ceph/mkfs @@ -60,12 +60,17 @@ unset i BASE_PATH="${XPATH_ELEMENTS[i++]}" RESTRICTED_DIRS="${XPATH_ELEMENTS[i++]}" SAFE_DIRS="${XPATH_ELEMENTS[i++]}" -DST_HOST="${XPATH_ELEMENTS[i++]:-$HOST}" +DST_HOST="${XPATH_ELEMENTS[i++]}" POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" STAGING_DIR="${XPATH_ELEMENTS[i++]:-$STAGING_DIR}" FSTYPE="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi + set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" IMAGE_HASH=`generate_image_hash` diff --git a/src/datastore_mad/remotes/ceph/monitor b/src/datastore_mad/remotes/ceph/monitor index 6ba8e9daad..9af2359033 100755 --- a/src/datastore_mad/remotes/ceph/monitor +++ b/src/datastore_mad/remotes/ceph/monitor @@ -41,15 +41,20 @@ ID=$2 XPATH="${DRIVER_PATH}/../xpath.rb -b $DRV_ACTION" -unset i XPATH_ELEMENTS +unset i j XPATH_ELEMENTS while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/HOST \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/POOL_NAME) -HOST="${XPATH_ELEMENTS[0]:-$HOST}" -POOL_NAME="${XPATH_ELEMENTS[1]:-$POOL_NAME}" +HOST="${XPATH_ELEMENTS[j++]}" +POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}" + +if [ -z "$HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi # ------------ Compute datastore usage ------------- diff --git a/src/datastore_mad/remotes/ceph/rm b/src/datastore_mad/remotes/ceph/rm index dbdd5cdc97..f52c06868b 100755 --- a/src/datastore_mad/remotes/ceph/rm +++ b/src/datastore_mad/remotes/ceph/rm @@ -50,7 +50,12 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ unset i SRC="${XPATH_ELEMENTS[i++]}" -DST_HOST="${XPATH_ELEMENTS[i++]:-$HOST}" +DST_HOST="${XPATH_ELEMENTS[i++]}" + +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi log "Removing $SRC from the rbd image repository in $DST_HOST" diff --git a/src/tm_mad/ceph/clone b/src/tm_mad/ceph/clone index 25a8d96401..995f541744 100755 --- a/src/tm_mad/ceph/clone +++ b/src/tm_mad/ceph/clone @@ -57,6 +57,11 @@ unset i CEPH_HOST="${XPATH_ELEMENTS[i++]}" +if [ -z "$CEPH_HOST" ]; then + error_message "Datastore template missing 'HOST' attribute." + exit -1 +fi + #------------------------------------------------------------------------------- # Compute the destination image name #-------------------------------------------------------------------------------