diff --git a/install.sh b/install.sh index 1f11ba740f..db3f962ef7 100755 --- a/install.sh +++ b/install.sh @@ -876,7 +876,8 @@ TM_VMWARE_FILES="src/tm_mad/vmware/clone \ src/tm_mad/vmware/mkimage \ src/tm_mad/vmware/mv \ src/tm_mad/vmware/context \ - src/tm_mad/vmware/mvds" + src/tm_mad/vmware/mvds \ + src/tm_mad/vmware/tm_vmwarerc" TM_ISCSI_FILES="src/tm_mad/iscsi/clone \ src/tm_mad/iscsi/ln \ diff --git a/src/tm_mad/vmware/clone b/src/tm_mad/vmware/clone index 39360e3324..c5a33e933e 100755 --- a/src/tm_mad/vmware/clone +++ b/src/tm_mad/vmware/clone @@ -32,12 +32,16 @@ DSID=$4 if [ -z "${ONE_LOCATION}" ]; then TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh + VMWARERC=/etc/one/vmwarerc else TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh + VMWARERC=$ONE_LOCATION/etc/vmwarerc fi . $TMCOMMON +source $(dirname $0)/tm_vmwarerc + #------------------------------------------------------------------------------- # Set dst path and dir #------------------------------------------------------------------------------- @@ -49,13 +53,30 @@ DST_HOST=`arg_host $DST` DST_DIR=`dirname $DST_PATH` -ssh_make_path $DST_HOST $DST_PATH +IMAGE_DS_NAME=`basename $(dirname $SRC_PATH)` +SYSTEM_DS_NAME=`basename $(dirname $(dirname $DST_PATH))` +USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3)` +PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3)` + + +DST_DIR_WITHOUT_DS_PATH="[$SYSTEM_DS_NAME] ${DST_PATH##"$DS_DIR/$SYSTEM_DS_NAME/"}" + + +if [ "$SSH" == "yes" ]; then + ssh_make_path $DST_HOST $DST_PATH +else + # Two calls needed since vifs cannot do a mkdir -p + vifs --server $DST_HOST --username $USERNAME --password $PASSWORD --mkdir "[$SYSTEM_DS_NAME] $VMID" + vifs --server $DST_HOST --username $USERNAME --password $PASSWORD --mkdir "$DST_DIR_WITHOUT_DS_PATH" +fi #------------------------------------------------------------------------------- # Clone (cp) SRC into DST #------------------------------------------------------------------------------- log "Cloning $SRC_PATH in $DST" +if [ "$SSH" == "yes" ]; then + CLONESCRIPT=$(cat <