From 82eb4db59360b15aa0db7c3fb8701a5432b37812 Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Tue, 4 Sep 2012 19:15:50 +0200 Subject: [PATCH] Add a pure VMFS TM VMware, with ssh or remote API mode --- install.sh | 3 ++- src/tm_mad/vmware/clone | 29 ++++++++++++++++++++++++++--- src/tm_mad/vmware/tm_vmwarerc | 20 ++++++++++++++++++++ 3 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 src/tm_mad/vmware/tm_vmwarerc 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 <