diff --git a/src/datastore_mad/remotes/fs/rm b/src/datastore_mad/remotes/fs/rm index 30a79d80fa..4bedba1d15 100755 --- a/src/datastore_mad/remotes/fs/rm +++ b/src/datastore_mad/remotes/fs/rm @@ -50,9 +50,11 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ SRC="${XPATH_ELEMENTS[0]}" BASE_PATH="${XPATH_ELEMENTS[1]}" +BASENAME_SRC=`basename "${SRC##$BASE_PATH}"` + # ------------ Remove the image from the repository ------------ -if [ -f "$SRC" -a `dirname "$SRC"` = "$BASE_PATH" -a -n `basename "$SRC"` ] +if [ -f "$SRC" -a `dirname "$SRC"` = "$BASE_PATH" -a -n "$BASENAME_SRC" ] then log "Removing $SRC from the image repository" diff --git a/src/datastore_mad/remotes/libfs.sh b/src/datastore_mad/remotes/libfs.sh index 498e9b830a..199ba2244f 100644 --- a/src/datastore_mad/remotes/libfs.sh +++ b/src/datastore_mad/remotes/libfs.sh @@ -75,7 +75,7 @@ EOF IMAGE_HASH=$(echo $CANONICAL_MD5 | cut -d ' ' -f1) IMAGE_HASH=$(basename "$IMAGE_HASH") - if [ -z "$IMAGE_HASH" ]; then + if [ -z "$IMAGE_HASH" -o -z "$BASE_PATH" ]; then log_error "Error generating the path in generate_image_path." exit 1 fi diff --git a/src/datastore_mad/remotes/vmware/rm b/src/datastore_mad/remotes/vmware/rm index 201c08786b..bb3ac1601f 100755 --- a/src/datastore_mad/remotes/vmware/rm +++ b/src/datastore_mad/remotes/vmware/rm @@ -50,9 +50,11 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ SRC="${XPATH_ELEMENTS[0]}" BASE_PATH="${XPATH_ELEMENTS[1]}" +BASENAME_SRC=`basename "${SRC##$BASE_PATH}"` + # ------------ Remove the image from the repository ------------ -if [ -d "$SRC" -a `dirname "$SRC"` = "$BASE_PATH" -a -n `basename "$SRC"` ] +if [ -d "$SRC" -a `dirname "$SRC"` = "$BASE_PATH" -a -n "$BASENAME_SRC" ] then log "Removing $SRC from the image repository"