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:
parent
bbb3466b44
commit
3ebdc8d8f4
@ -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
|
||||
|
54
src/vmm_mad/remotes/kvm/resize_disk
Executable file
54
src/vmm_mad/remotes/kvm/resize_disk
Executable 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"
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user