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

feature #1223: Use XPATH to parse the drv_message in the attach_disk scripts, to extract DISK attributes like BUS, DRIVER, CACHE.

This commit is contained in:
Jaime Melis 2012-06-19 15:27:59 +02:00
parent 3790a90c0c
commit b4bd1956aa

View File

@ -19,12 +19,34 @@
source $(dirname $0)/kvmrc
source $(dirname $0)/../../scripts_common.sh
DRIVER_PATH=$(dirname $0)
DOMAIN="$1"
SOURCE="$2"
TARGET="$3"
TARGET_INDEX="$4"
DRV_ACTION="$5"
XPATH="${DRIVER_PATH}/../../datastore/xpath.rb -b $DRV_ACTION"
unset i XPATH_ELEMENTS
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 \
$DISK_XPATH/BUS \
$DISK_XPATH/CACHE)
DRIVER="${XPATH_ELEMENTS[0]}"
BUS="${XPATH_ELEMENTS[1]}" # TODO: unused
CACHE="${XPATH_ELEMENTS[2]}"
ATTACH_PARAMS="--domain $DOMAIN --source $SOURCE --target $TARGET"
[ -n "$CACHE" ] && ATTACH_PARAMS="$ATTACH_PARAMS --cache $CACHE"
[ -n "$DRIVER" ] && ATTACH_PARAMS="$ATTACH_PARAMS --type $DRIVER"
exec_and_log "virsh --connect $LIBVIRT_URI attach-disk $ATTACH_PARAMS" \
"Could not attach $SOURCE ($TARGET) to $DOMAIN"