diff --git a/src/tm_mad/qcow2/clone b/src/tm_mad/qcow2/clone index 4a4037da74..807b9a8899 100755 --- a/src/tm_mad/qcow2/clone +++ b/src/tm_mad/qcow2/clone @@ -70,13 +70,24 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VMID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SIZE \ - /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/ORIGINAL_SIZE) + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/ORIGINAL_SIZE \ + /VM/HISTORY_RECORDS/HISTORY[last\(\)]/TM_MAD) SIZE="${XPATH_ELEMENTS[j++]}" ORIGINAL_SIZE="${XPATH_ELEMENTS[j++]}" +TM_MAD="${XPATH_ELEMENTS[j++]}" +if [ "$TM_MAD" = "ssh" ]; then + MONITOR="monitor" +else + MONITOR="" +fi -ssh_make_path $DST_HOST $DST_DIR +#------------------------------------------------------------------------------- +# Create DST path +#------------------------------------------------------------------------------- + +ssh_make_path $DST_HOST $DST_DIR $MONITOR #------------------------------------------------------------------------------- # Clone (cp) SRC into DST diff --git a/src/tm_mad/qcow2/ln b/src/tm_mad/qcow2/ln index 972710eada..c764e71825 100755 --- a/src/tm_mad/qcow2/ln +++ b/src/tm_mad/qcow2/ln @@ -38,6 +38,7 @@ fi . $TMCOMMON +DRIVER_PATH=$(dirname $0) #------------------------------------------------------------------------------- # Set dst path and dir @@ -55,10 +56,32 @@ SRC_PATH="${DST_DS_PATH}${SRC_ARG_PATH##$SRC_DS_PATH}" SNAP_DIR="${SRC_PATH}.snap" SNAP_NAME="$(basename $SNAP_DIR)" +#------------------------------------------------------------------------------- +# Get Image information +#------------------------------------------------------------------------------- + +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 $VMID| $XPATH \ + /VM/HISTORY_RECORDS/HISTORY[last\(\)]/TM_MAD) + +TM_MAD="${XPATH_ELEMENTS[j++]}" + +if [ "$TM_MAD" = "ssh" ]; then + MONITOR="monitor" +else + MONITOR="" +fi + #------------------------------------------------------------------------------- # Create DST path #------------------------------------------------------------------------------- -ssh_make_path $DST_HOST $DST_DIR + +ssh_make_path $DST_HOST $DST_DIR $MONITOR #------------------------------------------------------------------------------- # Link (ln) SRC into DST diff --git a/src/tm_mad/shared/clone b/src/tm_mad/shared/clone index 7acf612396..b6d4ac0d7d 100755 --- a/src/tm_mad/shared/clone +++ b/src/tm_mad/shared/clone @@ -68,17 +68,24 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VMID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SIZE \ - /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/ORIGINAL_SIZE) + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/ORIGINAL_SIZE \ + /VM/HISTORY_RECORDS/HISTORY[last\(\)]/TM_MAD) SIZE="${XPATH_ELEMENTS[j++]}" ORIGINAL_SIZE="${XPATH_ELEMENTS[j++]}" +TM_MAD="${XPATH_ELEMENTS[j++]}" +if [ "$TM_MAD" = "ssh" ]; then + MONITOR="monitor" +else + MONITOR="" +fi #------------------------------------------------------------------------------- # Create DST path #------------------------------------------------------------------------------- -ssh_make_path $DST_HOST $DST_DIR +ssh_make_path $DST_HOST $DST_DIR $MONITOR #------------------------------------------------------------------------------- # Clone (cp) SRC into DST diff --git a/src/tm_mad/shared/ln b/src/tm_mad/shared/ln index e068f5e1f9..f5511b9d36 100755 --- a/src/tm_mad/shared/ln +++ b/src/tm_mad/shared/ln @@ -38,6 +38,7 @@ fi . $TMCOMMON +DRIVER_PATH=$(dirname $0) #------------------------------------------------------------------------------- # Set dst path and dir @@ -53,10 +54,34 @@ SRC_DS_PATH="$(dirname $(dirname $SRC_ARG_PATH))" SRC_PATH="${DST_DS_PATH}${SRC_ARG_PATH##$SRC_DS_PATH}" +#------------------------------------------------------------------------------- +# Get Image information +#------------------------------------------------------------------------------- + +DISK_ID=$(basename ${DST_PATH} | cut -d. -f2) + +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 $VMID| $XPATH \ + /VM/HISTORY_RECORDS/HISTORY[last\(\)]/TM_MAD) + +TM_MAD="${XPATH_ELEMENTS[j++]}" + +if [ "$TM_MAD" = "ssh" ]; then + MONITOR="monitor" +else + MONITOR="" +fi + #------------------------------------------------------------------------------- # Create DST path #------------------------------------------------------------------------------- -ssh_make_path $DST_HOST $DST_DIR + +ssh_make_path $DST_HOST $DST_DIR $MONITOR #------------------------------------------------------------------------------- # Link (ln) SRC into DST