1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-04-01 06:50:25 +03:00

F #4393: add vmm/kvm/resize_disk

This commit is contained in:
Javi Fontan 2016-11-23 19:36:36 +01:00
parent bbb3466b44
commit 3ebdc8d8f4
2 changed files with 56 additions and 1 deletions

View File

@ -667,7 +667,8 @@ VMM_EXEC_KVM_SCRIPTS="src/vmm_mad/remotes/kvm/cancel \
src/vmm_mad/remotes/kvm/snapshot_delete \
src/vmm_mad/remotes/kvm/shutdown \
src/vmm_mad/remotes/kvm/reconfigure \
src/vmm_mad/remotes/kvm/prereconfigure"
src/vmm_mad/remotes/kvm/prereconfigure \
src/vmm_mad/remotes/kvm/resize_disk"
#-------------------------------------------------------------------------------
# VMM Driver vCenter scripts, installed under $REMOTES_LOCATION/vmm/vcenter

View File

@ -0,0 +1,54 @@
#!/bin/bash -x
# -------------------------------------------------------------------------- #
# Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. You may obtain #
# a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
#--------------------------------------------------------------------------- #
DOMAIN=$1
DISK_ID=$2
DISK_SIZE=$3
DRV_ACTION=$4
source $(dirname $0)/kvmrc
source $(dirname $0)/../../scripts_common.sh
get_disk_information "DISK_ID=$DISK_ID"
regexp="/domain/devices/disk[target/@dev='${DISK_TARGET}']/alias/@name"
drives="virsh --connect $LIBVIRT_URI dumpxml $DOMAIN"
alias=$($drives | $XPATH --stdin "$regexp")
if [ -n "$alias" ]; then
drive="drive-$alias"
else
error_message "Drive $DISK_TARGET not found"
exit -1
fi
log_info "Resizing $DISK_TARGET to $DISK_SIZE"
resize_cmd=$(cat <<EOF
virsh --connect $LIBVIRT_URI qemu-monitor-command $DOMAIN --hmp "block_resize $drive ${DISK_SIZE}M"
EOF
)
multiline_exec_and_log "$resize_cmd" \
"Error notifying the VM the new disk size"