diff --git a/src/tm_mad/ceph/cpds b/src/tm_mad/ceph/cpds index b4deda72b9..c194032aec 100755 --- a/src/tm_mad/ceph/cpds +++ b/src/tm_mad/ceph/cpds @@ -17,15 +17,18 @@ #--------------------------------------------------------------------------- # # mvds host:remote_system_ds/disk.i fe:SOURCE +# cpds host:remote_system_ds/disk.i fe:SOURCE snapid vmid dsid # - fe is the front-end hostname # - SOURCE is the path of the disk image in the form DS_BASE_PATH/disk # - host is the target host to deploy the VM # - remote_system_ds is the path for the system datastore in the host +# - snapid is the snapshot id. "-1" for none SRC=$1 DST=$2 -VM_ID=$3 -DS_ID=$4 +SNAP_ID=$3 +VM_ID=$4 +DS_ID=$5 if [ -z "${ONE_LOCATION}" ]; then TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh @@ -43,13 +46,13 @@ source ${DRIVER_PATH}/../../datastore/ceph/ceph.conf #------------------------------------------------------------------------------- SRC_HOST=`arg_host $SRC` -SRC_PATH=`arg_path $SRC` +RBD_SRC=`arg_path $SRC` #------------------------------------------------------------------------------- # Get Image information #------------------------------------------------------------------------------- -DISK_ID=$(echo "$SRC_PATH" | $AWK -F. '{print $NF}') +DISK_ID=$(echo "$RBD_SRC" | $AWK -F. '{print $NF}') XPATH="${DRIVER_PATH}/../../datastore/xpath.rb --stdin" @@ -76,7 +79,7 @@ else RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" fi -if [ -n "$SNAP_ID" ]; then +if [ "$SNAP_ID" != "-1" ]; then RBD_DST="${RBD_DST}-${SNAP_ID}@${SNAP_ID}" fi @@ -84,6 +87,7 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +echo "$RBD copy $RBD_DST $DST" > /tmp/k ssh_exec_and_log "$SRC_HOST" "$RBD copy $RBD_DST $DST" \ "Error cloning $RBD_DST to $DST in $SRC_HOST" diff --git a/src/tm_mad/ceph/mvds b/src/tm_mad/ceph/mvds index f64234933d..55e35ec3a4 100755 --- a/src/tm_mad/ceph/mvds +++ b/src/tm_mad/ceph/mvds @@ -22,85 +22,4 @@ # - host is the target host to deploy the VM # - remote_system_ds is the path for the system datastore in the host -SRC=$1 -DST=$2 -VM_ID=$3 -DS_ID=$4 - -if [ -z "${ONE_LOCATION}" ]; then - TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh -else - TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh -fi - -DRIVER_PATH=$(dirname $0) - -source $TMCOMMON -source ${DRIVER_PATH}/../../datastore/ceph/ceph.conf - -#------------------------------------------------------------------------------- -# Set dst path and dir -#------------------------------------------------------------------------------- - -SRC_HOST=`arg_host $SRC` -SRC_PATH=`arg_path $SRC` - -#------------------------------------------------------------------------------- -# Get Image information -#------------------------------------------------------------------------------- - -DISK_ID=$(echo "$SRC_PATH" | $AWK -F. '{print $NF}') - -XPATH="${DRIVER_PATH}/../../datastore/xpath.rb --stdin" - -unset i j XPATH_ELEMENTS - -while IFS= read -r -d '' element; do - XPATH_ELEMENTS[i++]="$element" -done < <(onevm show -x $VM_ID| $XPATH \ - /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SOURCE \ - /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CLONE \ - /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER) - -RBD_SRC="${XPATH_ELEMENTS[j++]}" -CLONE="${XPATH_ELEMENTS[j++]}" -CEPH_USER="${XPATH_ELEMENTS[j++]}" - -# No need to copy back to datastore no cloned images -if [ "$CLONE" = "NO" ]; then - exit 0 -fi - -if [ -n "$CEPH_USER" ]; then - RBD="$RBD --id ${CEPH_USER}" -fi - -# cloned, so the name will be "/one---" -RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" -RBD_SNAP="${VM_ID}-${DISK_ID}" - -#------------------------------------------------------------------------------- -# Move the image back to the datastore -#------------------------------------------------------------------------------- - -log "Dumping $RBD_DST to $DST" - -DUMP_CMD=$(cat <