vagrant-disksize 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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