diff --git a/src/datastore_mad/remotes/vmfs/clone b/src/datastore_mad/remotes/vmfs/clone index 0efbe96a18..6036573148 100755 --- a/src/datastore_mad/remotes/vmfs/clone +++ b/src/datastore_mad/remotes/vmfs/clone @@ -35,7 +35,7 @@ fi DRIVER_PATH=$(dirname $0) source ${DRIVER_PATH}/../libfs.sh -source $(dirname $0)/vmfsrc +source ${DRIVER_PATH}/vmfs.conf # -------- Get cp and datastore arguments from OpenNebula core ------------ @@ -50,7 +50,8 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/UMASK \ - /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/DS_USE_SSH \ /DS_DRIVER_ACTION_DATA/DATASTORE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/ID) @@ -58,9 +59,10 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ BASE_PATH="${XPATH_ELEMENTS[0]}" UMASK="${XPATH_ELEMENTS[1]}" BRIDGE_LIST="${XPATH_ELEMENTS[2]}" -DS_ID="${XPATH_ELEMENTS[3]}" -SRC="${XPATH_ELEMENTS[4]}" -IMAGE_ID="${XPATH_ELEMENTS[5]}" +USE_SSH="${XPATH_ELEMENTS[3]:-$DS_USE_SSH}" +DS_ID="${XPATH_ELEMENTS[4]}" +SRC="${XPATH_ELEMENTS[5]}" +IMAGE_ID="${XPATH_ELEMENTS[6]}" SRC_FOLDER=`basename $SRC` diff --git a/src/datastore_mad/remotes/vmfs/cp b/src/datastore_mad/remotes/vmfs/cp index 5a01beb49f..6ad7615778 100755 --- a/src/datastore_mad/remotes/vmfs/cp +++ b/src/datastore_mad/remotes/vmfs/cp @@ -35,7 +35,7 @@ fi DRIVER_PATH=$(dirname $0) source ${DRIVER_PATH}/../libfs.sh -source $(dirname $0)/vmfsrc +source ${DRIVER_PATH}/vmfs.conf # -------- Get cp and datastore arguments from OpenNebula core ------------ @@ -55,6 +55,8 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/RESTRICTED_DIRS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/SAFE_DIRS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/DS_USE_SSH \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/DS_TMP_DIR \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/UMASK \ /DS_DRIVER_ACTION_DATA/IMAGE/PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/TEMPLATE/MD5 \ @@ -66,11 +68,13 @@ DS_ID="${XPATH_ELEMENTS[1]}" RESTRICTED_DIRS="${XPATH_ELEMENTS[2]}" SAFE_DIRS="${XPATH_ELEMENTS[3]}" BRIDGE_LIST="${XPATH_ELEMENTS[4]}" -UMASK="${XPATH_ELEMENTS[5]}" -SRC="${XPATH_ELEMENTS[6]}" -MD5="${XPATH_ELEMENTS[7]}" -SHA1="${XPATH_ELEMENTS[8]}" -IMAGE_ID="${XPATH_ELEMENTS[9]}" +USE_SSH="${XPATH_ELEMENTS[5]:-$DS_USE_SSH}" +TMP_DIR="${XPATH_ELEMENTS[6]:-$DS_TMP_DIR}" +UMASK="${XPATH_ELEMENTS[7]}" +SRC="${XPATH_ELEMENTS[8]}" +MD5="${XPATH_ELEMENTS[9]}" +SHA1="${XPATH_ELEMENTS[10]}" +IMAGE_ID="${XPATH_ELEMENTS[11]}" # Set up the datastore set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" "$UMASK" diff --git a/src/datastore_mad/remotes/vmfs/mkfs b/src/datastore_mad/remotes/vmfs/mkfs index e4c460be17..31ec0a922e 100755 --- a/src/datastore_mad/remotes/vmfs/mkfs +++ b/src/datastore_mad/remotes/vmfs/mkfs @@ -35,7 +35,7 @@ fi DRIVER_PATH=$(dirname $0) source ${DRIVER_PATH}/../libfs.sh -source $(dirname $0)/vmfsrc +source ${DRIVER_PATH}/vmfs.conf # -------- Get mkfs and datastore arguments from OpenNebula core ------------ @@ -52,6 +52,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/RESTRICTED_DIRS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/SAFE_DIRS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/UMASK \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/DS_USE_SSH \ /DS_DRIVER_ACTION_DATA/DATASTORE/ID \ /DS_DRIVER_ACTION_DATA/IMAGE/FSTYPE \ /DS_DRIVER_ACTION_DATA/IMAGE/SIZE \ @@ -61,10 +62,11 @@ BASE_PATH="${XPATH_ELEMENTS[0]}" RESTRICTED_DIRS="${XPATH_ELEMENTS[1]}" SAFE_DIRS="${XPATH_ELEMENTS[2]}" UMASK="${XPATH_ELEMENTS[3]}" -IMAGE_DS_ID="${XPATH_ELEMENTS[4]}" -FSTYPE="${XPATH_ELEMENTS[5]}" -SIZE="${XPATH_ELEMENTS[6]}" -IMAGE_ID="${XPATH_ELEMENTS[7]}" +USE_SSH="${XPATH_ELEMENTS[4]:-$DS_USE_SSH}" +IMAGE_DS_ID="${XPATH_ELEMENTS[5]}" +FSTYPE="${XPATH_ELEMENTS[6]}" +SIZE="${XPATH_ELEMENTS[7]}" +IMAGE_ID="${XPATH_ELEMENTS[8]}" set_up_datastore "$BASE_PATH" "$RESTRICTED_DIRS" "$SAFE_DIRS" "$UMASK" diff --git a/src/datastore_mad/remotes/vmfs/rm b/src/datastore_mad/remotes/vmfs/rm index 9f5da78d6b..9f38fc8286 100755 --- a/src/datastore_mad/remotes/vmfs/rm +++ b/src/datastore_mad/remotes/vmfs/rm @@ -34,7 +34,7 @@ fi DRIVER_PATH=$(dirname $0) source ${DRIVER_PATH}/../libfs.sh -source $(dirname $0)/vmfsrc +source ${DRIVER_PATH}/vmfs.conf # -------- Get rm and datastore arguments from OpenNebula core ------------ @@ -49,10 +49,12 @@ 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/DS_USE_SSH \ /DS_DRIVER_ACTION_DATA/IMAGE/ID) SRC="${XPATH_ELEMENTS[0]}" DS_NAME="${XPATH_ELEMENTS[1]}" +USE_SSH="${XPATH_ELEMENTS[4]:-$DS_USE_SSH}" IMAGE_ID="${XPATH_ELEMENTS[2]}" DST_HOST=`get_destination_host $IMAGE_ID` diff --git a/src/datastore_mad/remotes/vmfs/vmfs.conf b/src/datastore_mad/remotes/vmfs/vmfs.conf new file mode 100644 index 0000000000..34add2dd41 --- /dev/null +++ b/src/datastore_mad/remotes/vmfs/vmfs.conf @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------- # +# Copyright 2002-2012, OpenNebula Project Leads (OpenNebula.org) # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +#--------------------------------------------------------------------------- # + +# Default values in case they are not defined in the Datastore template + +DS_TMP_DIR=/var/lib/one/tmp + +# Whether the VMFS Datastore driver should use to invoke the VMFS native commands +# * remote API calls (value set to "no") +# * ssh connection (value set to "yes") + +DS_USE_SSH=no