vagrant-parallels 2.1.0 → 2.2.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
  SHA256:
3
- metadata.gz: 5fdb9ca9fa5d338982ac6541f4f5678e0ef2dee8c59702db2e306db6b78e680b
4
- data.tar.gz: aa9b5f1f0e36c1738f110f398625a06966c1000372709f7f1c0b66a3ff8464cc
3
+ metadata.gz: f4af52807cb579f4b1f18957178a8230186a4c0305bef6777879a05f48a4e26b
4
+ data.tar.gz: 130d7a27229008dbb74188269acb846199fe8001f0cb6e7694a954dc10316ddc
5
5
  SHA512:
6
- metadata.gz: fcad3b44951d96a81e85a70de8eced5a79cc345927233de61cd0dae7cfc04793a6f5259d92f420accb1663563d285454435848c569b3de67e3df01bec90934ce
7
- data.tar.gz: e3d94acb423edbe4222ad979717a7379780b4be870fc33c793f0c09f64fa48721086d3ef03d14b08e560ead90d44ed183a8a37035b7a043379d9148548bb13eb
6
+ metadata.gz: 61c6ff36e06913bdca908f225357c3f250b8f27c06659145c6f8285d4a836e673d2f4b8ebc9aed62929ca34de1564a73992e1e6b5e3b9754c4f8c42cfabf8649
7
+ data.tar.gz: 619bbae811769347eef8580f2ef1781e708eeb5a5c59a429d0a509ba09aa37ab1bc584837ca97e7ddad8550ec35c766a1a242a7187ecdf89b5b2990f799821a8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ ## 2.2.3 (July 14, 2021)
2
+ BUG FIXES:
3
+ - Fixed the compatibility with Vagrant 2.2.17
4
+ [[GH-399](https://github.com/Parallels/vagrant-parallels/pull/399)]
5
+
6
+ ## 2.2.2 (June 23, 2021)
7
+ BUG FIXES:
8
+ - Fixed shared folder mount on the VM reboot
9
+ [[GH-391](https://github.com/Parallels/vagrant-parallels/pull/391)]
10
+
11
+ ## 2.2.1 (April 14, 2021)
12
+ BUG FIXES:
13
+ - Fixed the compatibility with Vagrant 2.2.15
14
+ [[GH-386](https://github.com/Parallels/vagrant-parallels/pull/386)]
15
+
16
+ ## 2.2.0 (March 3, 2021)
17
+ IMPROVEMENTS:
18
+ - Mount shared folders after manual VM reboot
19
+ [[GH-377](https://github.com/Parallels/vagrant-parallels/pull/377)]
20
+
21
+ BUG FIXES:
22
+ - Fixed mount of shared folders with non-ASCII symbols in the name
23
+ [[GH-290](https://github.com/Parallels/vagrant-parallels/issues/290)]
24
+
1
25
  ## 2.1.0 (November 25, 2020)
2
26
  BUG FIXES:
3
27
  - Fixed the private network adapter workflow on macOS 11.0 Big Sur
data/README.md CHANGED
@@ -8,10 +8,7 @@ allowing to manage [Parallels Desktop](https://www.parallels.com/products/deskto
8
8
  virtual machines on macOS hosts.
9
9
 
10
10
  ### Requirements
11
- - [Vagrant v1.8](https://www.vagrantup.com) or higher
12
- (_there are known issues with Vagrant v1.9.5
13
- [[GH-297](https://github.com/Parallels/vagrant-parallels/issues/297#issuecomment-304458691)]
14
- and v1.9.6 [[GH-301]](https://github.com/Parallels/vagrant-parallels/issues/301)_)
11
+ - [Vagrant v1.9.7](https://www.vagrantup.com) or higher
15
12
  - [Parallels Desktop 11 for Mac](https://www.parallels.com/products/desktop/) or higher
16
13
 
17
14
  *Note:* Only **Pro** and **Business** editions of **Parallels Desktop for Mac**
@@ -5,7 +5,7 @@ module VagrantPlugins
5
5
  include VagrantPlugins::Parallels::Util::CompileForwardedPorts
6
6
  @@lock = Mutex.new
7
7
 
8
- def initialize(app, env)
8
+ def initialize(app, _env)
9
9
  @app = app
10
10
  end
11
11
 
@@ -22,17 +22,15 @@ module VagrantPlugins
22
22
  return @app.call(env) if env[:forwarded_ports].empty?
23
23
 
24
24
  # Acquire both of class- and process-level locks so that we don't
25
- # forward ports simultaneousely with someone else.
25
+ # forward ports simultaneously with someone else.
26
26
  @@lock.synchronize do
27
- begin
28
- env[:machine].env.lock('forward_ports') do
29
- env[:ui].output(I18n.t('vagrant.actions.vm.forward_ports.forwarding'))
30
- forward_ports
31
- end
32
- rescue Errors::EnvironmentLockedError
33
- sleep 1
34
- retry
27
+ env[:machine].env.lock('forward_ports') do
28
+ env[:ui].output(I18n.t('vagrant.actions.vm.forward_ports.forwarding'))
29
+ forward_ports
35
30
  end
31
+ rescue Vagrant::Errors::EnvironmentLockedError
32
+ sleep 1
33
+ retry
36
34
  end
37
35
 
38
36
  @app.call(env)
@@ -46,7 +44,9 @@ module VagrantPlugins
46
44
  @env[:forwarded_ports].each do |fp|
47
45
  message_attributes = {
48
46
  guest_port: fp.guest_port,
49
- host_port: fp.host_port
47
+ guest_ip: fp.guest_ip,
48
+ host_port: fp.host_port,
49
+ host_ip: fp.host_ip
50
50
  }
51
51
 
52
52
  # Assuming the only reason to establish port forwarding is
@@ -54,7 +54,7 @@ module VagrantPlugins
54
54
  # bridged networking don't require port-forwarding and establishing
55
55
  # forwarded ports on these attachment types has uncertain behaviour.
56
56
  @env[:ui].detail(I18n.t('vagrant_parallels.actions.vm.forward_ports.forwarding_entry',
57
- message_attributes))
57
+ **message_attributes))
58
58
 
59
59
  # In Parallels Desktop the scope port forwarding rules is global,
60
60
  # so we have to keep their names unique.
@@ -69,14 +69,16 @@ module VagrantPlugins
69
69
 
70
70
  # Add the options to the ports array to send to the driver later
71
71
  ports << {
72
- guestport: fp.guest_port,
73
- hostport: fp.host_port,
74
- name: unique_id,
75
- protocol: fp.protocol
72
+ guest_port: fp.guest_port,
73
+ guest_ip: fp.guest_ip,
74
+ host_port: fp.host_port,
75
+ host_ip: fp.host_ip,
76
+ name: unique_id,
77
+ protocol: fp.protocol
76
78
  }
77
79
  end
78
80
 
79
- if !ports.empty?
81
+ unless ports.empty?
80
82
  # We only need to forward ports if there are any to forward
81
83
  @env[:machine].provider.driver.forward_ports(ports)
82
84
  end
@@ -16,7 +16,7 @@ module VagrantPlugins
16
16
  include Vagrant::Util::ScopedHashOverride
17
17
  @@lock = Mutex.new
18
18
 
19
- def initialize(app, env)
19
+ def initialize(app, _env)
20
20
  @app = app
21
21
  @logger = Log4r::Logger.new('vagrant_parallels::action::network')
22
22
  end
@@ -44,20 +44,20 @@ module VagrantPlugins
44
44
 
45
45
  # Figure out the slot that this adapter will go into
46
46
  slot = options[:adapter]
47
- if !slot
48
- if available_slots.empty?
49
- raise VagrantPlugins::Parallels::Errors::ParallelsNoRoomForHighLevelNetwork
50
- end
47
+ unless slot
48
+ raise VagrantPlugins::Parallels::Errors::ParallelsNoRoomForHighLevelNetwork if available_slots.empty?
51
49
 
52
50
  slot = available_slots.shift
53
51
  end
54
52
 
55
53
  # Configure it
56
54
  data = nil
57
- if type == :private_network
55
+ #noinspection RubyCaseWithoutElseBlockInspection
56
+ case type
57
+ when :private_network
58
58
  # private_network = hostonly
59
59
  data = [:hostonly, options]
60
- elsif type == :public_network
60
+ when :public_network
61
61
  # public_network = bridged
62
62
  data = [:bridged, options]
63
63
  end
@@ -103,16 +103,15 @@ module VagrantPlugins
103
103
  networks << network
104
104
  end
105
105
 
106
- if !adapters.empty?
106
+ unless adapters.empty?
107
107
  # Enable the adapters
108
108
  @logger.info('Enabling adapters...')
109
109
  env[:ui].output(I18n.t('vagrant.actions.vm.network.preparing'))
110
110
  adapters.each do |adapter|
111
- env[:ui].detail(I18n.t(
112
- 'vagrant_parallels.parallels.network_adapter',
113
- adapter: adapter[:adapter].to_s,
114
- type: adapter[:type].to_s,
115
- extra: '',
111
+ env[:ui].detail(I18n.t('vagrant_parallels.parallels.network_adapter',
112
+ adapter: adapter[:adapter].to_s,
113
+ type: adapter[:type].to_s,
114
+ extra: '',
116
115
  ))
117
116
  end
118
117
 
@@ -124,12 +123,12 @@ module VagrantPlugins
124
123
 
125
124
  # If we have networks to configure, then we configure it now, since
126
125
  # that requires the machine to be up and running.
127
- if !adapters.empty? && !networks.empty?
126
+ unless adapters.empty? && networks.empty?
128
127
  assign_interface_numbers(networks, adapters)
129
128
 
130
129
  # Only configure the networks the user requested us to configure
131
130
  networks_to_configure = networks.select { |n| n[:auto_config] }
132
- if !networks_to_configure.empty?
131
+ unless networks_to_configure.empty?
133
132
  env[:ui].info I18n.t('vagrant.actions.vm.network.configuring')
134
133
  env[:machine].guest.capability(:configure_networks, networks_to_configure)
135
134
  end
@@ -138,10 +137,10 @@ module VagrantPlugins
138
137
 
139
138
  def bridged_config(options)
140
139
  {
141
- auto_config: true,
142
- bridge: nil,
143
- mac: nil,
144
- nic_type: nil,
140
+ auto_config: true,
141
+ bridge: nil,
142
+ mac: nil,
143
+ nic_type: nil,
145
144
  use_dhcp_assigned_default_route: false
146
145
  }.merge(options || {})
147
146
  end
@@ -162,17 +161,17 @@ module VagrantPlugins
162
161
  Array(config[:bridge]).each do |bridge|
163
162
  bridge = bridge.downcase if bridge.respond_to?(:downcase)
164
163
  bridgedifs.each do |interface|
165
- if bridge === interface[:name].downcase
166
- @logger.debug('Specific bridge found as configured in the Vagrantfile. Using it.')
167
- chosen_bridge = interface[:name]
168
- break
169
- end
164
+ next unless bridge === interface[:name].downcase
165
+
166
+ @logger.debug('Specific bridge found as configured in the Vagrantfile. Using it.')
167
+ chosen_bridge = interface[:name]
168
+ break
170
169
  end
171
170
  break if chosen_bridge
172
171
  end
173
172
 
174
173
  # If one wasn't found, then we notify the user here.
175
- if !chosen_bridge
174
+ unless chosen_bridge
176
175
  @env[:ui].info I18n.t(
177
176
  'vagrant.actions.vm.bridged_networking.specific_not_found',
178
177
  bridge: config[:bridge])
@@ -183,7 +182,7 @@ module VagrantPlugins
183
182
  # specified in the Vagrantfile, or the bridge specified in the Vagrantfile
184
183
  # wasn't found), then we fall back to the normal means of searching for a
185
184
  # bridged network.
186
- if !chosen_bridge
185
+ unless chosen_bridge
187
186
  if bridgedifs.length == 1
188
187
  # One bridgable interface? Just use it.
189
188
  chosen_bridge = bridgedifs[0][:name]
@@ -197,15 +196,14 @@ module VagrantPlugins
197
196
  interface = bridgedifs[index]
198
197
  @env[:ui].info("#{index + 1}) #{interface[:name]}", prefix: false)
199
198
  end
200
- @env[:ui].info(I18n.t(
201
- 'vagrant.actions.vm.bridged_networking.choice_help')+"\n")
199
+ @env[:ui].info("#{I18n.t('vagrant.actions.vm.bridged_networking.choice_help')}\n")
202
200
 
203
201
  # The range of valid choices
204
202
  valid = Range.new(1, bridgedifs.length)
205
203
 
206
204
  # The choice that the user has chosen as the bridging interface
207
205
  choice = nil
208
- while !valid.include?(choice)
206
+ until valid.include?(choice)
209
207
  choice = @env[:ui].ask(
210
208
  'Which interface should the network bridge to? Enter a number: ')
211
209
  choice = choice.to_i
@@ -219,11 +217,11 @@ module VagrantPlugins
219
217
 
220
218
  # Given the choice we can now define the adapter we're using
221
219
  {
222
- adapter: config[:adapter],
223
- type: :bridged,
224
- bridge: chosen_bridge,
220
+ adapter: config[:adapter],
221
+ type: :bridged,
222
+ bridge: chosen_bridge,
225
223
  mac_address: config[:mac],
226
- nic_type: config[:nic_type]
224
+ nic_type: config[:nic_type]
227
225
  }
228
226
  end
229
227
 
@@ -231,16 +229,16 @@ module VagrantPlugins
231
229
  if config[:ip]
232
230
  options = {
233
231
  auto_config: true,
234
- mac: nil,
235
- netmask: '255.255.255.0',
236
- type: :static
232
+ mac: nil,
233
+ netmask: '255.255.255.0',
234
+ type: :static
237
235
  }.merge(config)
238
236
  options[:type] = options[:type].to_sym
239
237
  return options
240
238
  end
241
239
 
242
240
  {
243
- type: :dhcp,
241
+ type: :dhcp,
244
242
  use_dhcp_assigned_default_route: config[:use_dhcp_assigned_default_route]
245
243
  }
246
244
  end
@@ -248,10 +246,10 @@ module VagrantPlugins
248
246
  def hostonly_config(options)
249
247
  options = {
250
248
  auto_config: true,
251
- mac: nil,
252
- name: nil,
253
- nic_type: nil,
254
- type: :static
249
+ mac: nil,
250
+ name: nil,
251
+ nic_type: nil,
252
+ type: :static
255
253
  }.merge(options)
256
254
 
257
255
  # Make sure the type is a symbol
@@ -290,13 +288,14 @@ module VagrantPlugins
290
288
  # network interface.
291
289
  @env[:machine].provider.driver.read_bridged_interfaces.each do |interface|
292
290
  next if interface[:status] == 'Down'
291
+
293
292
  that_netaddr = IPAddr.new("#{interface[:ip]}/#{interface[:netmask]}")
294
- if netaddr.include? that_netaddr
295
- raise VagrantPlugins::Parallels::Errors::NetworkCollision,
296
- hostonly_netaddr: netaddr,
297
- bridge_netaddr: that_netaddr,
298
- bridge_interface: interface[:name]
299
- end
293
+ next unless netaddr.include? that_netaddr
294
+
295
+ raise VagrantPlugins::Parallels::Errors::NetworkCollision,
296
+ hostonly_netaddr: netaddr,
297
+ bridge_netaddr: that_netaddr,
298
+ bridge_interface: interface[:name]
300
299
  end
301
300
  end
302
301
 
@@ -319,14 +318,14 @@ module VagrantPlugins
319
318
  end
320
319
 
321
320
  {
322
- adapter_ip: options[:adapter_ip],
321
+ adapter_ip: options[:adapter_ip],
323
322
  auto_config: options[:auto_config],
324
- ip: options[:ip],
325
- mac: options[:mac],
326
- name: options[:name],
327
- netmask: options[:netmask],
328
- nic_type: options[:nic_type],
329
- type: options[:type]
323
+ ip: options[:ip],
324
+ mac: options[:mac],
325
+ name: options[:name],
326
+ netmask: options[:netmask],
327
+ nic_type: options[:nic_type],
328
+ type: options[:type]
330
329
  }.merge(dhcp_options)
331
330
  end
332
331
 
@@ -334,7 +333,7 @@ module VagrantPlugins
334
333
  @logger.info("Searching for matching hostonly network: #{config[:ip]}")
335
334
  interface = hostonly_find_matching_network(config)
336
335
 
337
- if !interface
336
+ unless interface
338
337
  @logger.info('Network not found. Creating if we can.')
339
338
 
340
339
  # Create a new network
@@ -343,25 +342,25 @@ module VagrantPlugins
343
342
  end
344
343
 
345
344
  {
346
- adapter: config[:adapter],
347
- hostonly: interface[:name],
345
+ adapter: config[:adapter],
346
+ hostonly: interface[:name],
348
347
  mac_address: config[:mac],
349
- nic_type: config[:nic_type],
350
- type: :hostonly
348
+ nic_type: config[:nic_type],
349
+ type: :hostonly
351
350
  }
352
351
  end
353
352
 
354
353
  def hostonly_network_config(config)
355
354
  {
356
- type: config[:type],
355
+ type: config[:type],
357
356
  adapter_ip: config[:adapter_ip],
358
- ip: config[:ip],
359
- netmask: config[:netmask]
357
+ ip: config[:ip],
358
+ netmask: config[:netmask]
360
359
  }
361
360
  end
362
361
 
363
362
 
364
- def shared_config(options)
363
+ def shared_config(_options)
365
364
  {
366
365
  auto_config: false
367
366
  }
@@ -370,11 +369,11 @@ module VagrantPlugins
370
369
  def shared_adapter(config)
371
370
  {
372
371
  adapter: config[:adapter],
373
- type: :shared
372
+ type: :shared
374
373
  }
375
374
  end
376
375
 
377
- def shared_network_config(config)
376
+ def shared_network_config(_config)
378
377
  {}
379
378
  end
380
379
 
@@ -396,11 +395,11 @@ module VagrantPlugins
396
395
  # Make a first pass to assign interface numbers by adapter location
397
396
  vm_adapters = @env[:machine].provider.driver.read_network_interfaces
398
397
  vm_adapters.sort.each do |number, adapter|
399
- if adapter[:type] != :none
400
- # Not used, so assign the interface number and increment
401
- adapter_to_interface[number] = current
402
- current += 1
403
- end
398
+ next unless adapter[:type] != :none
399
+
400
+ # Not used, so assign the interface number and increment
401
+ adapter_to_interface[number] = current
402
+ current += 1
404
403
  end
405
404
 
406
405
  # Make a pass through the adapters to assign the :interface
@@ -419,9 +418,7 @@ module VagrantPlugins
419
418
  # Get the list of numbers
420
419
  net_nums = []
421
420
  @env[:machine].provider.driver.read_virtual_networks.each do |net|
422
- if net['Network ID'] =~ /^vagrant-vnet(\d+)$/
423
- net_nums << $1.to_i
424
- end
421
+ net_nums << $1.to_i if net['Network ID'] =~ /^vagrant-vnet(\d+)$/
425
422
  end
426
423
 
427
424
  if net_nums.empty?
@@ -440,12 +437,12 @@ module VagrantPlugins
440
437
  options = {
441
438
  network_id: config[:name] || next_network_id,
442
439
  adapter_ip: config[:adapter_ip],
443
- netmask: config[:netmask],
440
+ netmask: config[:netmask],
444
441
  }
445
442
 
446
443
  if config[:type] == :dhcp
447
444
  options[:dhcp] = {
448
- ip: config[:dhcp_ip],
445
+ ip: config[:dhcp_ip],
449
446
  lower: config[:dhcp_lower],
450
447
  upper: config[:dhcp_upper]
451
448
  }