From b4bd1956aa266f3c8ad21cc03ee9d049cd03feb6 Mon Sep 17 00:00:00 2001 From: Jaime Melis Date: Tue, 19 Jun 2012 15:27:59 +0200 Subject: [PATCH] feature #1223: Use XPATH to parse the drv_message in the attach_disk scripts, to extract DISK attributes like BUS, DRIVER, CACHE. --- src/vmm_mad/remotes/kvm/attach_disk | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/vmm_mad/remotes/kvm/attach_disk b/src/vmm_mad/remotes/kvm/attach_disk index 99f63f8709..defa015c42 100755 --- a/src/vmm_mad/remotes/kvm/attach_disk +++ b/src/vmm_mad/remotes/kvm/attach_disk @@ -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"