diff --git a/src/datastore_mad/remotes/ceph/clone b/src/datastore_mad/remotes/ceph/clone index 5d91b387ac..884d4b06b1 100755 --- a/src/datastore_mad/remotes/ceph/clone +++ b/src/datastore_mad/remotes/ceph/clone @@ -58,7 +58,7 @@ POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" SRC="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/ceph/cp b/src/datastore_mad/remotes/ceph/cp index 5d81aa186a..158d1422fe 100755 --- a/src/datastore_mad/remotes/ceph/cp +++ b/src/datastore_mad/remotes/ceph/cp @@ -76,7 +76,7 @@ SHA1="${XPATH_ELEMENTS[i++]}" NO_DECOMPRESS="${XPATH_ELEMENTS[i++]}" LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[i++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/ceph/mkfs b/src/datastore_mad/remotes/ceph/mkfs index 7dd3018a8c..84efb3e305 100755 --- a/src/datastore_mad/remotes/ceph/mkfs +++ b/src/datastore_mad/remotes/ceph/mkfs @@ -66,7 +66,7 @@ STAGING_DIR="${XPATH_ELEMENTS[i++]:-$STAGING_DIR}" FSTYPE="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/ceph/rm b/src/datastore_mad/remotes/ceph/rm index 51e519c2f4..6d243633fb 100755 --- a/src/datastore_mad/remotes/ceph/rm +++ b/src/datastore_mad/remotes/ceph/rm @@ -40,19 +40,17 @@ 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/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST) -unset i +SRC="${XPATH_ELEMENTS[j++]}" +BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" -SRC="${XPATH_ELEMENTS[i++]}" -BRIDGE_LIST="${XPATH_ELEMENTS[i++]}" - -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/iscsi/clone b/src/datastore_mad/remotes/iscsi/clone index 96fe43b2ff..f0bbabf70b 100755 --- a/src/datastore_mad/remotes/iscsi/clone +++ b/src/datastore_mad/remotes/iscsi/clone @@ -62,7 +62,7 @@ BASE_IQN="${XPATH_ELEMENTS[j++]:-$BASE_IQN}" SRC="${XPATH_ELEMENTS[j++]}" SIZE="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/iscsi/cp b/src/datastore_mad/remotes/iscsi/cp index 9f8587abc6..f7e9344738 100755 --- a/src/datastore_mad/remotes/iscsi/cp +++ b/src/datastore_mad/remotes/iscsi/cp @@ -74,7 +74,7 @@ SHA1="${XPATH_ELEMENTS[j++]}" NO_DECOMPRESS="${XPATH_ELEMENTS[j++]}" LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/iscsi/mkfs b/src/datastore_mad/remotes/iscsi/mkfs index f205c592a6..a004a9b0bd 100755 --- a/src/datastore_mad/remotes/iscsi/mkfs +++ b/src/datastore_mad/remotes/iscsi/mkfs @@ -64,7 +64,7 @@ BASE_IQN="${XPATH_ELEMENTS[j++]:-$BASE_IQN}" FSTYPE="${XPATH_ELEMENTS[j++]}" SIZE="${XPATH_ELEMENTS[j++]:-0}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/iscsi/rm b/src/datastore_mad/remotes/iscsi/rm index 8ac1bb4ff0..ff244fa94c 100755 --- a/src/datastore_mad/remotes/iscsi/rm +++ b/src/datastore_mad/remotes/iscsi/rm @@ -50,7 +50,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ SRC="${XPATH_ELEMENTS[j++]}" BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/lvm/clone b/src/datastore_mad/remotes/lvm/clone index 388370700d..545b74eb6e 100755 --- a/src/datastore_mad/remotes/lvm/clone +++ b/src/datastore_mad/remotes/lvm/clone @@ -56,7 +56,7 @@ VG_NAME="${XPATH_ELEMENTS[j++]:-$VG_NAME}" SRC="${XPATH_ELEMENTS[j++]}" SIZE="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/lvm/cp b/src/datastore_mad/remotes/lvm/cp index 5ed8ab9561..3e4b5ed059 100755 --- a/src/datastore_mad/remotes/lvm/cp +++ b/src/datastore_mad/remotes/lvm/cp @@ -72,7 +72,7 @@ SHA1="${XPATH_ELEMENTS[j++]}" NO_DECOMPRESS="${XPATH_ELEMENTS[j++]}" LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/lvm/mkfs b/src/datastore_mad/remotes/lvm/mkfs index 42a4a43a05..b73db0ba2b 100755 --- a/src/datastore_mad/remotes/lvm/mkfs +++ b/src/datastore_mad/remotes/lvm/mkfs @@ -62,7 +62,7 @@ VG_NAME="${XPATH_ELEMENTS[j++]:-$VG_NAME}" FSTYPE="${XPATH_ELEMENTS[j++]}" SIZE="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/lvm/rm b/src/datastore_mad/remotes/lvm/rm index c59df21dda..95d3ed0798 100755 --- a/src/datastore_mad/remotes/lvm/rm +++ b/src/datastore_mad/remotes/lvm/rm @@ -50,7 +50,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ SRC="${XPATH_ELEMENTS[j++]}" BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` if [ -z "$DST_HOST" ]; then error_message "Datastore template missing 'BRIDGE_LIST' attribute." diff --git a/src/datastore_mad/remotes/vmfs/clone b/src/datastore_mad/remotes/vmfs/clone index 030db731b9..33ce380dbd 100755 --- a/src/datastore_mad/remotes/vmfs/clone +++ b/src/datastore_mad/remotes/vmfs/clone @@ -50,7 +50,7 @@ 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" @@ -58,15 +58,13 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/PATH \ - /DS_DRIVER_ACTION_DATA/IMAGE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/TYPE) -BASE_PATH="${XPATH_ELEMENTS[0]}" -BRIDGE_LIST="${XPATH_ELEMENTS[1]}" -DS_ID="${XPATH_ELEMENTS[2]}" -SRC="${XPATH_ELEMENTS[3]}" -IMAGE_ID="${XPATH_ELEMENTS[4]}" -IMAGE_TYPE="${XPATH_ELEMENTS[5]}" +BASE_PATH="${XPATH_ELEMENTS[j++]}" +BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" +DS_ID="${XPATH_ELEMENTS[j++]}" +SRC="${XPATH_ELEMENTS[j++]}" +IMAGE_TYPE="${XPATH_ELEMENTS[j++]}" # ------------------------------------------------------------------------------ @@ -83,7 +81,12 @@ DST=`generate_image_path` SRC_FOLDER=`basename $SRC` DST_FOLDER=`basename $DST` -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` + +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'BRIDGE_LIST' attribute." + exit -1 +fi set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" diff --git a/src/datastore_mad/remotes/vmfs/cp b/src/datastore_mad/remotes/vmfs/cp index 6bfd79ccaa..59209e1adc 100755 --- a/src/datastore_mad/remotes/vmfs/cp +++ b/src/datastore_mad/remotes/vmfs/cp @@ -47,7 +47,7 @@ UTILS_PATH="${DRIVER_PATH}/.." XPATH="$UTILS_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" @@ -60,24 +60,22 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/TEMPLATE/MD5 \ /DS_DRIVER_ACTION_DATA/IMAGE/TEMPLATE/SHA1 \ - /DS_DRIVER_ACTION_DATA/IMAGE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/TYPE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/NO_DECOMPRESS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/LIMIT_TRANSFER_BW) -BASE_PATH="${XPATH_ELEMENTS[0]}" -DS_ID="${XPATH_ELEMENTS[1]}" -RESTRICTED_DIRS="${XPATH_ELEMENTS[2]}" -SAFE_DIRS="${XPATH_ELEMENTS[3]}" -BRIDGE_LIST="${XPATH_ELEMENTS[4]}" -TMP_DIR="${XPATH_ELEMENTS[5]:-$DS_TMP_DIR}" -SRC="${XPATH_ELEMENTS[6]}" -MD5="${XPATH_ELEMENTS[7]}" -SHA1="${XPATH_ELEMENTS[8]}" -IMAGE_ID="${XPATH_ELEMENTS[9]}" -IMAGE_TYPE="${XPATH_ELEMENTS[10]}" -NO_DECOMPRESS="${XPATH_ELEMENTS[11]}" -LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[12]}" +BASE_PATH="${XPATH_ELEMENTS[j++]}" +DS_ID="${XPATH_ELEMENTS[j++]}" +RESTRICTED_DIRS="${XPATH_ELEMENTS[j++]}" +SAFE_DIRS="${XPATH_ELEMENTS[j++]}" +BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" +TMP_DIR="${XPATH_ELEMENTS[j++]:-$DS_TMP_DIR}" +SRC="${XPATH_ELEMENTS[j++]}" +MD5="${XPATH_ELEMENTS[j++]}" +SHA1="${XPATH_ELEMENTS[j++]}" +IMAGE_TYPE="${XPATH_ELEMENTS[j++]}" +NO_DECOMPRESS="${XPATH_ELEMENTS[j++]}" +LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[j++]}" # ------------------------------------------------------------------------------ # Set up datastore & transfer folder @@ -92,7 +90,12 @@ LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[12]}" DST=`generate_image_path` DST_FOLDER=`basename $DST` -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` + +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'BRIDGE_LIST' attribute." + exit -1 +fi set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" diff --git a/src/datastore_mad/remotes/vmfs/mkfs b/src/datastore_mad/remotes/vmfs/mkfs index 5697461183..054c203d8d 100755 --- a/src/datastore_mad/remotes/vmfs/mkfs +++ b/src/datastore_mad/remotes/vmfs/mkfs @@ -45,7 +45,7 @@ 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" @@ -55,17 +55,15 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/FSTYPE \ - /DS_DRIVER_ACTION_DATA/IMAGE/SIZE \ - /DS_DRIVER_ACTION_DATA/IMAGE/ID) + /DS_DRIVER_ACTION_DATA/IMAGE/SIZE) -BASE_PATH="${XPATH_ELEMENTS[0]}" -RESTRICTED_DIRS="${XPATH_ELEMENTS[1]}" -SAFE_DIRS="${XPATH_ELEMENTS[2]}" -BRIDGE_LIST="${XPATH_ELEMENTS[3]}" -DS_ID="${XPATH_ELEMENTS[4]}" -FSTYPE="${XPATH_ELEMENTS[5]}" -SIZE="${XPATH_ELEMENTS[6]}" -IMAGE_ID="${XPATH_ELEMENTS[7]}" +BASE_PATH="${XPATH_ELEMENTS[j++]}" +RESTRICTED_DIRS="${XPATH_ELEMENTS[j++]}" +SAFE_DIRS="${XPATH_ELEMENTS[j++]}" +BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" +DS_ID="${XPATH_ELEMENTS[j++]}" +FSTYPE="${XPATH_ELEMENTS[j++]}" +SIZE="${XPATH_ELEMENTS[j++]}" # ------------------------------------------------------------------------------ # Set up datastore @@ -78,7 +76,12 @@ IMAGE_ID="${XPATH_ELEMENTS[7]}" DST=`generate_image_path` DST_FOLDER=`basename $DST` -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` + +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'BRIDGE_LIST' attribute." + exit -1 +fi set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" diff --git a/src/datastore_mad/remotes/vmfs/rm b/src/datastore_mad/remotes/vmfs/rm index 2749f73bfd..c353211ab6 100755 --- a/src/datastore_mad/remotes/vmfs/rm +++ b/src/datastore_mad/remotes/vmfs/rm @@ -44,19 +44,17 @@ 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/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/DATASTORE/ID \ - /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ - /DS_DRIVER_ACTION_DATA/IMAGE/ID) + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST) -SRC="${XPATH_ELEMENTS[0]}" -DS_ID="${XPATH_ELEMENTS[1]}" -BRIDGE_LIST="${XPATH_ELEMENTS[2]}" -IMAGE_ID="${XPATH_ELEMENTS[3]}" +SRC="${XPATH_ELEMENTS[j++]}" +DS_ID="${XPATH_ELEMENTS[j++]}" +BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" # ------------------------------------------------------------------------------ # Set up datastore @@ -67,7 +65,13 @@ IMAGE_ID="${XPATH_ELEMENTS[3]}" # DST_HOST is the host to make the transfers (from BRIDGE_LIST) # ------------------------------------------------------------------------------ -DST_HOST=`get_destination_host $IMAGE_ID` +DST_HOST=`get_destination_host $ID` + +if [ -z "$DST_HOST" ]; then + error_message "Datastore template missing 'BRIDGE_LIST' attribute." + exit -1 +fi + SRC_FOLDER=`basename $SRC` # ------------------------------------------------------------------------------