1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

Feature #1254: Enhance TM MV action

This commit is contained in:
Jaime Melis 2012-06-29 10:52:23 +02:00
parent 666c0eef53
commit 7bdc2ab16c

View File

@ -71,32 +71,43 @@ if [ "$SRC" == "$DST" ]; then
exit 0
fi
#-------------------------------------------------------------------------------
# Get image information
#-------------------------------------------------------------------------------
XPATH="${DRIVER_PATH}/../../datastore/xpath.rb --stdin"
unset i XPATH_ELEMENTS
while IFS= read -r -d '' element; do
XPATH_ELEMENTS[i++]="$element"
done < <(onevm show -x $VMID| $XPATH \
/VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/PERSISTENT)
PERSISTENT="${XPATH_ELEMENTS[0]}"
if [ -z "$PERSISTENT" ]; then
IQN=$IQN-$VMID
fi
#-------------------------------------------------------------------------------
# Start actions
#-------------------------------------------------------------------------------
if is_iscsi "$SRC_HOST"; then
log "Logging out of $IQN in $SRC_HOST"
LOGOUT_CMD=$(cat <<EOF
set -e
IQN=\$(readlink $SRC_PATH |grep -o 'iqn.*$')
IQN=\${IQN%-lun-1}
$SUDO $(iscsiadm_logout "\$IQN")
$SUDO $(iscsiadm_logout "$IQN")
EOF
)
ssh_exec_and_log "$SRC_HOST" "$LOGOUT_CMD" \
"Error logging out $SRC_HOST:$SRC_PATH (IQN)"
"Error logging out $SRC_HOST:$SRC_PATH ($IQN)"
fi
if is_iscsi "$DST_HOST"; then
log "Logging in to IQN in $SRC_HOST"
log "Getting IQN from $SRC_HOST:$SRC_PATH"
IQN=$($SSH "$SRC_HOST" "readlink $SRC_PATH |grep -o 'iqn.*$'" )
IQN=${IQN%-lun-1}
if [ -z "$IQN" ]; then
log_error "Error getting IQN"
exit 1
fi
log "Logging in to $IQN in $SRC_HOST"
TARGET_HOST=$(iqn_get_host "$IQN")