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

Bug #3332: Attach non-persistent disks does not work for ceph

This commit is contained in:
Jaime Melis 2014-11-17 15:57:17 +01:00
parent 88235fe9d7
commit dd3c9ad8d2

View File

@ -29,6 +29,8 @@ TARGET="$3"
TARGET_INDEX="$4"
DRV_ACTION="$5"
ATTACH_FILE="$SOURCE.attach"
XPATH="${DRIVER_PATH}/../../datastore/xpath.rb -b $DRV_ACTION"
unset i j XPATH_ELEMENTS
@ -37,20 +39,26 @@ DISK_XPATH="/VMM_DRIVER_ACTION_DATA/VM/TEMPLATE/DISK[ATTACH='YES']"
while IFS= read -r -d '' element; do
XPATH_ELEMENTS[i++]="$element"
done < <($XPATH $DISK_XPATH/DRIVER \
done < <($XPATH /VMM_DRIVER_ACTION_DATA/VM/ID \
$DISK_XPATH/DRIVER \
$DISK_XPATH/TYPE \
$DISK_XPATH/READONLY \
$DISK_XPATH/CACHE \
$DISK_XPATH/SOURCE \
$DISK_XPATH/DISK_ID \
$DISK_XPATH/CLONE \
$DISK_XPATH/CEPH_HOST \
$DISK_XPATH/CEPH_SECRET \
$DISK_XPATH/CEPH_USER)
VMID="${XPATH_ELEMENTS[j++]}"
DRIVER="${XPATH_ELEMENTS[j++]:-$DEFAULT_TYPE}"
TYPE="${XPATH_ELEMENTS[j++]}"
READONLY="${XPATH_ELEMENTS[j++]}"
CACHE="${XPATH_ELEMENTS[j++]}"
IMG_SRC="${XPATH_ELEMENTS[j++]}"
DISK_ID="${XPATH_ELEMENTS[j++]}"
CLONE="${XPATH_ELEMENTS[j++]}"
CEPH_HOST="${XPATH_ELEMENTS[j++]}"
CEPH_SECRET="${XPATH_ELEMENTS[j++]}"
CEPH_USER="${XPATH_ELEMENTS[j++]}"
@ -72,9 +80,14 @@ rbd)
TYPE_SOURCE="protocol"
TYPE_XML="network"
SOURCE="rbd"
SOURCE_ARGS="name='$IMG_SRC'"
DEVICE="disk"
if [ "$CLONE" = "YES" ]; then
SOURCE_ARGS="name='${IMG_SRC}-${VMID}-${DISK_ID}'"
else
SOURCE_ARGS="name='${IMG_SRC}'"
fi
for host in $CEPH_HOST ; do
BCK_IFS=$IFS
IFS=':'
@ -120,8 +133,6 @@ else
READONLY=""
fi
ATTACH_FILE="$SOURCE.attach"
cat <<EOF > $ATTACH_FILE
<disk type='$TYPE_XML' device='$DEVICE'>
<driver name='qemu' type='$DRIVER' $CACHE/>