Merge branch 'master' of github.com:vagrant-libvirt/vagrant-libvirt

This commit is contained in:
dima 2017-03-21 10:41:31 +01:00
commit 43bd92670d
3 changed files with 9 additions and 5 deletions

View File

@ -67,8 +67,11 @@ module VagrantPlugins
Vagrant::Action::Builder.new.tap do |b|
b.use ConfigValidate
b.use Call, IsRunning do |env, b2|
# If the VM is running, then our work here is done, exit
next if env[:result]
# If the VM is running, run the necessary provisioners
if env[:result]
b2.use action_provision
next
end
b2.use Call, IsSuspended do |env2, b3|
# if vm is suspended resume it then exit

View File

@ -40,7 +40,8 @@ module VagrantPlugins
# working for centos with lvs default disks
`virt-sysprep --no-logfile --operations defaults,-ssh-userdir -a #{@tmp_img}`
Dir.chdir(@tmp_dir)
img_size = `qemu-img info #{@tmp_img} | grep 'virtual size' | awk '{print $3;}' | tr -d 'G'`.chomp
info = JSON.parse(`qemu-img info --output=json #{@tmp_img}`)
img_size = (Float(info['virtual-size'])/(1024**3)).ceil
File.write(@tmp_dir + '/metadata.json', metadata_content(img_size))
File.write(@tmp_dir + '/Vagrantfile', vagrantfile_content)
assebmle_box(boxname)

View File

@ -88,7 +88,7 @@ cd "$TMP_DIR"
#Using the awk int function here to truncate the virtual image size to an
#integer since the fog-libvirt library does not seem to properly handle
#floating point.
IMG_SIZE=$(qemu-img info "$TMP_IMG" | awk '/virtual size/{print int($3)+1;}' | tr -d 'G')
IMG_SIZE=$(qemu-img info --output=json "$TMP_IMG" | awk '/virtual-size/{s=int($2)/(1024^3); print (s == int(s)) ? s : int(s)+1 }')
echo "{$IMG_SIZE}"
@ -118,7 +118,7 @@ EOF
echo "==> Creating box, tarring and gzipping"
tar cvzf "$BOX" --totals ./metadata.json ./Vagrantfile ./box.img
tar cvzf "$BOX" -S --totals ./metadata.json ./Vagrantfile ./box.img
# if box is in tmpdir move it to CWD before removing tmpdir
if ! isabspath "$BOX"; then