vagrant-disksize 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2ed50257fa9beb3cf82e819f7c9cda72de170a1a
4
- data.tar.gz: 2ea55ad19b783a25fbb442fd3947b7e13284f027
3
+ metadata.gz: ac665634b597c5fe88877fbeebbfb288035c407f
4
+ data.tar.gz: 6085074186b37a0354c7a468a77e93cd992a3cae
5
5
  SHA512:
6
- metadata.gz: abee2553e9b3c3c981b76c3f39f652af94e94f5d859c74fd4c5b59fd8d50ef7d8fd076d11a2c9a7590af7ef4882ea75670f5a999ba86b9034f5116462ff852de
7
- data.tar.gz: 22a95dd79e18d89e3115795d801168ac5b0367ce730901e6ceaf427c08779cbdfcdb828949c14497d845ffd6f1e2bae82053d6de927b2e02334c6db0dbf3b520
6
+ metadata.gz: c00a4c6edfec35b9af9197c191810ad3b8d79a07ffaaefea2a4fa06ff817dd16704aa7e88364948c2b87f37478e1edf7de9ac5194a5885584992838f552bcbae
7
+ data.tar.gz: e5f0bc360eda8fb227738768b8cfe55b8b1ccee26a765026681cad37ec2ed550860fb9452287ac891a6f794fe1622f92570ed278efabfe7c7a8756dc3546d7e7
@@ -6,6 +6,15 @@ module Vagrant
6
6
 
7
7
  # NOTE - size is represented in MB throughout this class, for ease of using with VirtualBox
8
8
 
9
+ # Creates infix for VBoxManage commands (driver.execute)
10
+ # according to VirtualBox version
11
+ VB_Meta = VagrantPlugins::ProviderVirtualBox::Driver::Meta.new()
12
+ if VB_Meta.version >= '5.0'
13
+ MEDIUM = 'medium'
14
+ else
15
+ MEDIUM = 'hd'
16
+ end
17
+
9
18
  def initialize(app, env)
10
19
  @app = app
11
20
  @machine = env[:machine]
@@ -44,7 +53,7 @@ module Vagrant
44
53
  unless File.exist? new_disk[:file]
45
54
  clone_as_vdi(driver, old_disk, new_disk)
46
55
  attach_disk(driver, new_disk)
47
- File.delete(old_disk[:file])
56
+ remove_disk(driver, old_disk)
48
57
  end
49
58
  end
50
59
  end
@@ -66,11 +75,11 @@ module Vagrant
66
75
  end
67
76
 
68
77
  def clone_as_vdi(driver, src, dst)
69
- driver.execute('clonemedium', src[:file], dst[:file], '--format', 'VDI')
78
+ driver.execute("clone#{MEDIUM}", src[:file], dst[:file], '--format', 'VDI')
70
79
  end
71
80
 
72
81
  def grow_vdi(driver, disk, size)
73
- driver.execute('modifymedium', disk[:file], '--resize', size.to_s)
82
+ driver.execute("modify#{MEDIUM}", disk[:file], '--resize', size.to_s)
74
83
  end
75
84
 
76
85
  def attach_disk(driver, disk)
@@ -81,9 +90,13 @@ module Vagrant
81
90
  driver.execute('storageattach', @machine.id, '--storagectl', controller, '--port', port, '--device', device, '--type', 'hdd', '--medium', disk[:file])
82
91
  end
83
92
 
93
+ def remove_disk(driver, disk)
94
+ driver.execute("closemedium", disk[:file], '--delete')
95
+ end
96
+
84
97
  def get_disk_size(driver, disk)
85
98
  size = nil
86
- driver.execute('showmediuminfo', disk[:file]).each_line do |line|
99
+ driver.execute("show#{MEDIUM}info", disk[:file]).each_line do |line|
87
100
  if line =~ /Capacity:\s+([0-9]+)\s+MB/
88
101
  size = $1.to_i
89
102
  end
@@ -97,13 +110,15 @@ module Vagrant
97
110
  disk_keys = vminfo.keys.select { |k| k =~ /-ImageUUID-/ }
98
111
  disk_keys.each do |key|
99
112
  uuid = vminfo[key]
100
- disk_name = key.gsub(/-ImageUUID-/,'-')
101
- disk_file = vminfo[disk_name]
102
- disks << {
103
- uuid: uuid,
104
- name: disk_name,
105
- file: disk_file
106
- }
113
+ if is_disk(driver, uuid)
114
+ disk_name = key.gsub(/-ImageUUID-/,'-')
115
+ disk_file = vminfo[disk_name]
116
+ disks << {
117
+ uuid: uuid,
118
+ name: disk_name,
119
+ file: disk_file
120
+ }
121
+ end
107
122
  end
108
123
  disks
109
124
  end
@@ -119,6 +134,15 @@ module Vagrant
119
134
  vminfo
120
135
  end
121
136
 
137
+ def is_disk(driver, uuid)
138
+ begin
139
+ driver.execute("showmediuminfo", 'disk', uuid)
140
+ true
141
+ rescue
142
+ false
143
+ end
144
+ end
145
+
122
146
  def generate_resizable_disk(disk)
123
147
  src = disk[:file]
124
148
  src_extn = File.extname(src)
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Disksize
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-disksize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Protheroe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-06 00:00:00.000000000 Z
11
+ date: 2018-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  version: '0'
80
80
  requirements: []
81
81
  rubyforge_project:
82
- rubygems_version: 2.6.7
82
+ rubygems_version: 2.6.14.1
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: Vagrant plugin to resize VirtualBox disks