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

F #6333: Fix ssh-replica issues

- Remove self-link when saving persistent images
- Adjust migrate to new structure (>6.8) that not use symlinks
This commit is contained in:
Ruben S. Montero 2023-11-13 12:15:37 +01:00
parent 90b7aeb1f5
commit 118e305973
No known key found for this signature in database
GPG Key ID: A0CEA6FA880A1D87
2 changed files with 21 additions and 12 deletions

View File

@ -65,6 +65,11 @@ CONVERT_CMD=$(cat <<EOF
if [ -e $SRC_PATH_SNAP/base ]; then
rm -f $SRC_PATH_SNAP/base $SRC_PATH_SNAP/base.1 $SRC_PATH_SNAP/rs_tmp
if [ "\$(ls $SRC_PATH_SNAP)" = "${SRC_FILE}.snap" ]; then
rm -f $SRC_PATH_SNAP/${SRC_FILE}.snap
fi
rmdir $SRC_PATH_SNAP
elif [ -d $SRC_PATH_SNAP ]; then
rm -rf $SRC_PATH_SNAP

View File

@ -41,15 +41,12 @@ get_size_and_format_of_disk_img() {
local QEMU_IMG_PATH="$1"
local PARAM="$2"
if [ -L "$QEMU_IMG_PATH" ]; then
TARGET=$(readlink "$QEMU_IMG_PATH")A
# symlink to disk.X.snap/base.1
if [[ "$TARGET" =~ disk.[0-9]*.snap/base.1 ]]; then
echo unknown qcow2-symlink
return
fi
# symlink, assume network disk
if [[ "$TARGET" =~ disk.[0-9]*.snap/ ]]; then
#Disk lives in snap dir it is a link (includes replica)
echo unknown qcow2-symlink
return
elif [ -L "$QEMU_IMG_PATH" ]; then
#Disk is a synlink, assume network-disk
echo unknown network-disk
return
fi
@ -175,10 +172,17 @@ else
# recreate symlinks
if [ -L "$DISK_PATH" ]; then
LINK_TARGET=$(readlink $DISK_PATH)
ssh_exec_and_log "$DEST_HOST" "[ -L \"$DISK_PATH\" ] || ln -s \"$LINK_TARGET\" \"$DISK_PATH\""
"Failed to create symlink $DISK_PATH -> $LINK_TARGET on $DEST_HOST"
TARGET=$(readlink $DISK_PATH)
LNAME=$DISK_PATH
elif [[ "$DISK_PATH" =~ (disk.([0-9]*).snap/[0-9]*) ]]; then
TARGET=${BASH_REMATCH[1]}
LNAME="disk.${BASH_REMATCH[2]}"
else
continue
fi
ssh_exec_and_log "$DEST_HOST" "[ -L \"$LNAME\" ] || ln -s \"$TARGET\" \"$LNAME\""
"Failed to create symlink $TARGET -> $LNAME on $DEST_HOST"
done
# copy vm.xml and ds.xml from the $VM_DIR