mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-20 10:50:08 +03:00
Add a pure VMFS TM VMware, with ssh or remote API mode
This commit is contained in:
parent
a76982070a
commit
82eb4db593
@ -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 \
|
||||
|
@ -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 <<EOF
|
||||
cd $DST_DIR
|
||||
|
||||
@ -69,7 +90,9 @@ fi
|
||||
\$SUDO_CMD $VMKFSTOOLS -i $SRC_PATH/disk.vmdk -d thin $DST_PATH/disk.vmdk
|
||||
EOF
|
||||
)
|
||||
|
||||
ssh_exec_and_log $DST_HOST "$CLONESCRIPT" "Error cloning $SRC to $DST"
|
||||
ssh_exec_and_log $DST_HOST "$CLONESCRIPT" "Error cloning $SRC to $DST"
|
||||
else
|
||||
$VMKFSTOOLS --server $DST_HOST --username $USERNAME --password $PASSWORD -i "$SRC_DIR_WITHOUT_DS_PATH/disk.vmdk" -d thin "$DST_DIR_WITHOUT_DS_PATH/disk.vmdk"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
20
src/tm_mad/vmware/tm_vmwarerc
Normal file
20
src/tm_mad/vmware/tm_vmwarerc
Normal file
@ -0,0 +1,20 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
# 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. #
|
||||
#--------------------------------------------------------------------------- #
|
||||
|
||||
# Whether the TM VMware driver should use to invoke the VMFS native commands
|
||||
# * remote API calls (value set to "no")
|
||||
# * ssh connection (value set to "yes")
|
||||
SSH=no
|
Loading…
x
Reference in New Issue
Block a user