vagrant-parallels 1.7.6 → 2.1.0

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
- SHA1:
3
- metadata.gz: 2d0f47ab44bd976497251832fedd70f1e8f3e4d5
4
- data.tar.gz: 381682bc47c1d69d63414ea5c0cf6518f9863213
2
+ SHA256:
3
+ metadata.gz: 5fdb9ca9fa5d338982ac6541f4f5678e0ef2dee8c59702db2e306db6b78e680b
4
+ data.tar.gz: aa9b5f1f0e36c1738f110f398625a06966c1000372709f7f1c0b66a3ff8464cc
5
5
  SHA512:
6
- metadata.gz: e4954c172515c7d8cced0919280c6133d45cbebdf6561cb7df581efd05a608a3ba3ca079fe0a95b3e7430dfe6aca66736bf3daae723680917e8e18c2be57f689
7
- data.tar.gz: d6427e9b410806a7de7f31d6aaa9bf71d9247b70adafb27e85767613ba4c30caf745ce88619f1174838ad9d1f920ceb1e7f0eca6e9cb79114a39204313cc2e41
6
+ metadata.gz: fcad3b44951d96a81e85a70de8eced5a79cc345927233de61cd0dae7cfc04793a6f5259d92f420accb1663563d285454435848c569b3de67e3df01bec90934ce
7
+ data.tar.gz: e3d94acb423edbe4222ad979717a7379780b4be870fc33c793f0c09f64fa48721086d3ef03d14b08e560ead90d44ed183a8a37035b7a043379d9148548bb13eb
@@ -1,33 +1,75 @@
1
+ ## 2.1.0 (November 25, 2020)
2
+ BUG FIXES:
3
+ - Fixed the private network adapter workflow on macOS 11.0 Big Sur
4
+ [[GH-371](https://github.com/Parallels/vagrant-parallels/pull/371)]
5
+ - Fixed the concurrency issue with box unregister in multi-vm environment
6
+ [[GH-370](https://github.com/Parallels/vagrant-parallels/pull/370)]
7
+ - Fixed the `vagrant package` with custom `Vagrantfile`
8
+ [[GH-368](https://github.com/Parallels/vagrant-parallels/pull/368)]
9
+
10
+ ## 2.0.1 (April 23, 2019)
11
+ BUG FIXES:
12
+ - Fixed the error message for host-only network collision
13
+ [[GH-340](https://github.com/Parallels/vagrant-parallels/issues/340)]
14
+
15
+ ## 2.0.0 (November 19, 2018)
16
+ BREAKING CHANGES:
17
+ - **Linked Clone feature is enabled by default.**
18
+ Now each time when you create a new virtual machine with `vagrant up` it is
19
+ created as a linked clone of the box image (instead of the full clone, as it
20
+ was before). Read more about it:
21
+ [Full Clone vs Linked Clone](https://parallels.github.io/vagrant-parallels/docs/configuration.html#linked_clone).
22
+ - **Dropped support of Parallels Desktop 10**. It reached
23
+ [End-of-Life and End-of-Support](https://kb.parallels.com/eu/122533).
24
+
25
+ ## 1.7.8 (November 18, 2017)
26
+ BUG FIXES:
27
+ - Fixed warning messages with Vagrant v2.0.1
28
+ [[GH-311](https://github.com/Parallels/vagrant-parallels/issues/311)]
29
+
30
+ ## 1.7.7 (October 15, 2017)
31
+ BUG FIXES:
32
+ - Fixed synced folder mounting on guests with Upstart (Ubuntu 14.*)
33
+ [[GH-307](https://github.com/Parallels/vagrant-parallels/issues/307)]
34
+
35
+
36
+ ## 1.7.6 (July 31, 2017)
37
+ BUG FIXES:
38
+ - Fixed `vagrant up` failure if the box image was automatically renamed due
39
+ to the name conflict.
40
+ [[GH-303](https://github.com/Parallels/vagrant-parallels/issues/303)]
41
+
42
+
1
43
  ## 1.7.5 (May 27, 2017)
2
44
  BUG FIXES:
3
- - Fixed compatibility with Vagrant v1.9.5+. `nokogiri` gem is defined as
4
- a plugin runtime dependency.
5
- [[GH-297](https://github.com/Parallels/vagrant-parallels/issues/297)],
6
- [[GH-298](https://github.com/Parallels/vagrant-parallels/pull/298)]
7
-
8
- **NB!** To use the plugin with Vagrant v1.9.5 you should (re)install it with
9
- `NOKOGIRI_USE_SYSTEM_LIBRARIES` enabled:
10
- ```bash
11
- $ vagrant plugin uninstall vagrant-parallels
12
- $ NOKOGIRI_USE_SYSTEM_LIBRARIES=true vagrant plugin install vagrant-parallels
13
- ```
14
-
45
+ - Fixed compatibility with Vagrant v1.9.5+. `nokogiri` gem is defined as
46
+ a plugin runtime dependency.
47
+ [[GH-297](https://github.com/Parallels/vagrant-parallels/issues/297)],
48
+ [[GH-298](https://github.com/Parallels/vagrant-parallels/pull/298)]
49
+
50
+ **NB!** To use the plugin with Vagrant v1.9.5 you should (re)install it with
51
+ `NOKOGIRI_USE_SYSTEM_LIBRARIES` enabled:
52
+ ```bash
53
+ $ vagrant plugin uninstall vagrant-parallels
54
+ $ NOKOGIRI_USE_SYSTEM_LIBRARIES=true vagrant plugin install vagrant-parallels
55
+ ```
56
+
15
57
 
16
58
  ## 1.7.4 (April 20, 2017)
17
59
  IMPROVEMENTS:
18
- - Make start action (`"vagrant up"`) run provisioners if VM is running.
60
+ - Make start action (`"vagrant up"`) run provisioners if VM is running.
19
61
  [[GH-294](https://github.com/Parallels/vagrant-parallels/pull/294)]
20
62
 
21
63
  BUG FIXES:
22
- - Properly handle `"paused"` VM state for up and halt actions.
64
+ - Properly handle `"paused"` VM state for up and halt actions.
23
65
  [[GH-295](https://github.com/Parallels/vagrant-parallels/pull/295)]
24
66
  - synced_folder: Escape special characters in Windows-specific guest paths.
25
- [[GH-296](https://github.com/Parallels/vagrant-parallels/pull/296)]
26
-
67
+ [[GH-296](https://github.com/Parallels/vagrant-parallels/pull/296)]
68
+
27
69
 
28
70
  ## 1.7.3 (February 28, 2017)
29
71
  BUG FIXES:
30
- - Fix exceptions related to `nokogiri` gem.
72
+ - Fix exceptions related to `nokogiri` gem.
31
73
  [[GH-291](https://github.com/Parallels/vagrant-parallels/issues/291)],
32
74
  [[GH-292](https://github.com/Parallels/vagrant-parallels/issues/292)]
33
75
 
@@ -40,28 +82,28 @@ BUG FIXES:
40
82
 
41
83
  ## 1.7.1 (December 7, 2016)
42
84
  FEATURES:
43
- - **Guest capability for installing Parallels Tools in Windows.** Now it is
85
+ - **Guest capability for installing Parallels Tools in Windows.** Now it is
44
86
  possible to install/upgrade Parallels Tools in Windows guests using
45
87
  the provider option `update_guest_tools`. [[GH-284](https://github.com/Parallels/vagrant-parallels/pull/284)]
46
-
88
+
47
89
  BUG FIXES:
48
90
  - Fix issues of auto-updating Parallels Tools in Linux guests with Parallels Desktop 12+.
49
91
  [[GH-283](https://github.com/Parallels/vagrant-parallels/pull/283)],
50
92
  [[GH-282](https://github.com/Parallels/vagrant-parallels/pull/282)],
51
93
  [[GH-281](https://github.com/Parallels/vagrant-parallels/pull/281)]
52
-
94
+
53
95
 
54
96
  ## 1.7.0 (November 15, 2016)
55
97
  BREAKING CHANGES:
56
- - **Dropped support of Parallels Desktop 8 and 9**. These versions have
57
- reached their [End-of-Life and End-of-Support](http://kb.parallels.com/eu/122533).
98
+ - **Dropped support of Parallels Desktop 8 and 9**. These versions have
99
+ reached their [End-of-Life and End-of-Support](https://kb.parallels.com/eu/122533).
58
100
  - **Removed customization options, which were previously deprecated:** [[GH-271](https://github.com/Parallels/vagrant-parallels/pull/271)]
59
101
  - "use_linked_clone" - use `linked_clone` instead.
60
102
  - "regen_box_uuid" - use `regen_src_uuid` instead.
61
- - "optimize_power_consumption".
62
-
103
+ - "optimize_power_consumption".
104
+
63
105
  FEATURES:
64
- - **IPv6 Private Networks:** Private networking now supports IPv6.
106
+ - **IPv6 Private Networks:** Private networking now supports IPv6.
65
107
  This only works with Parallels Desktop 12 and higher.
66
108
  [[GH-273](https://github.com/Parallels/vagrant-parallels/pull/273)]
67
109
 
@@ -76,23 +118,23 @@ DEPRECATIONS:
76
118
  [[GH-260](https://github.com/Parallels/vagrant-parallels/pull/260)]
77
119
 
78
120
  IMPROVEMENTS:
79
- - Allow to package linked clones with `vagrant package`. External disk images
80
- will be automatically copied, so the resulted box become a full-sized
121
+ - Allow to package linked clones with `vagrant package`. External disk images
122
+ will be automatically copied, so the resulted box become a full-sized
81
123
  standalone VM. [[GH-262](https://github.com/Parallels/vagrant-parallels/pull/262)]
82
124
  - Handle the situation when host machine is not connected to Shared network.
83
125
  With Parallels Desktop 11.2.1+ Vagrant will connect it automatically. With earlier
84
- versions, the human-readable error message will be displayed.
126
+ versions, the human-readable error message will be displayed.
85
127
  [[GH-266](https://github.com/Parallels/vagrant-parallels/pull/266)]
86
- - Disable home folder sharing by default (Parallels Desktop 11+).
128
+ - Disable home folder sharing by default (Parallels Desktop 11+).
87
129
  [[GH-257](https://github.com/Parallels/vagrant-parallels/pull/257)]
88
130
 
89
131
  BUG FIXES:
90
132
  - action/box_unregister: Fix `#recover` method for layered environments.
91
133
  [[GH-261](https://github.com/Parallels/vagrant-parallels/pull/261)]
92
- - action/network: Fix an exception when option "Connect Mac to
134
+ - action/network: Fix an exception when option "Connect Mac to
93
135
  this network" is disabled. [[GH-268](https://github.com/Parallels/vagrant-parallels/pull/268)]
94
- - commands/snapshot: Add retries for snapshot commands to avoid `prlctl`
95
- failures. [[GH-259](https://github.com/Parallels/vagrant-parallels/pull/259)]
136
+ - commands/snapshot: Add retries for snapshot commands to avoid `prlctl`
137
+ failures. [[GH-259](https://github.com/Parallels/vagrant-parallels/pull/259)]
96
138
 
97
139
 
98
140
  ## 1.6.2 (March 23, 2016)
@@ -101,28 +143,28 @@ BUG FIXES:
101
143
 
102
144
  IMPROVEMENTS:
103
145
  - action/destroy: Destroy suspended VMs without resuming
104
-
146
+
105
147
  ## 1.6.1 (January 13, 2016)
106
148
 
107
149
  BUG FIXES:
108
- - action/import: Fix `regenerate_src_uuid` option behavior in parallel run
150
+ - action/import: Fix `regenerate_src_uuid` option behavior in parallel run
109
151
  [[GH-241](https://github.com/Parallels/vagrant-parallels/pull/241)]
110
- - action/box_unregister: Use temporary lock file to prevent early unregister
152
+ - action/box_unregister: Use temporary lock file to prevent early unregister
111
153
  in parallel run [[GH-244](https://github.com/Parallels/vagrant-parallels/pull/244)]
112
154
  - action/network: Fix detection of the next virtual network ID [[GH-245](https://github.com/Parallels/vagrant-parallels/pull/245)]
113
155
 
114
156
 
115
157
  ## 1.6.0 (December 24, 2015)
116
158
  BREAKING CHANGES:
117
-
118
- - The required Vagrant version is **1.8** or higher. It is caused by changes
159
+
160
+ - The required Vagrant version is **1.8** or higher. It is caused by changes
119
161
  in Vagrant plugin model.
120
-
162
+
121
163
  SUPPORT FOR VAGRANT FEATURES:
122
164
 
123
- - `vagrant port`: This command displays the list of forwarded ports from the
165
+ - `vagrant port`: This command displays the list of forwarded ports from the
124
166
  guest to the host
125
- - `vagrant snapshot`: This command can be used to checkpoint and restore
167
+ - `vagrant snapshot`: This command can be used to checkpoint and restore
126
168
  point-in-time snapshots [[GH-228](https://github.com/Parallels/vagrant-parallels/pull/228)]
127
169
 
128
170
  IMPROVEMENTS:
@@ -137,10 +179,10 @@ IMPROVEMENTS:
137
179
 
138
180
  BUG FIXES:
139
181
 
140
- - action/forward_ports: Add parallel-safe lock to avoid collisions of
182
+ - action/forward_ports: Add parallel-safe lock to avoid collisions of
141
183
  forwarded ports in multi-machine env [[GH-226](https://github.com/Parallels/vagrant-parallels/pull/226)]
142
184
 
143
185
  ## Previous Versions
144
186
 
145
187
  Please, refer to [Releases](https://github.com/Parallels/vagrant-parallels/releases)
146
- page on GitHub.
188
+ page on GitHub.
data/README.md CHANGED
@@ -1,37 +1,37 @@
1
1
  # Vagrant Parallels Provider
2
- [![Gem Version](https://badge.fury.io/rb/vagrant-parallels.png)](http://badge.fury.io/rb/vagrant-parallels)
3
- [![Build Status](https://travis-ci.org/Parallels/vagrant-parallels.png?branch=master)](https://travis-ci.org/Parallels/vagrant-parallels)
4
- [![Code Climate](https://codeclimate.com/github/Parallels/vagrant-parallels.png)](https://codeclimate.com/github/Parallels/vagrant-parallels)
5
-
6
- This is a plugin for [Vagrant](http://www.vagrantup.com),
7
- allowing to manage [Parallels Desktop](http://www.parallels.com/products/desktop/)
8
- virtual machines on OS X hosts.
9
-
10
- ### Requirements
11
- - [Vagrant v1.8](http://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)]
2
+ [![Gem Version](https://badge.fury.io/rb/vagrant-parallels.svg)](https://badge.fury.io/rb/vagrant-parallels)
3
+ [![Build Status](https://travis-ci.org/Parallels/vagrant-parallels.svg?branch=master)](https://travis-ci.org/Parallels/vagrant-parallels)
4
+ [![Code Climate](https://codeclimate.com/github/Parallels/vagrant-parallels.svg)](https://codeclimate.com/github/Parallels/vagrant-parallels)
5
+
6
+ _Vagrant Parallels Provider_ is a plugin for [Vagrant](https://www.vagrantup.com),
7
+ allowing to manage [Parallels Desktop](https://www.parallels.com/products/desktop/)
8
+ virtual machines on macOS hosts.
9
+
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
14
  and v1.9.6 [[GH-301]](https://github.com/Parallels/vagrant-parallels/issues/301)_)
15
- - [Parallels Desktop 10 for Mac](http://www.parallels.com/products/desktop/) or higher
15
+ - [Parallels Desktop 11 for Mac](https://www.parallels.com/products/desktop/) or higher
16
16
 
17
- *Note:* Only **Pro** and **Business** editions of **Parallels Desktop for Mac**
18
- are compatible with this Vagrant provider.
19
- Standard edition doesn't have a command line functionality and can not be used
17
+ *Note:* Only **Pro** and **Business** editions of **Parallels Desktop for Mac**
18
+ are compatible with this Vagrant provider.
19
+ Standard edition doesn't have a full command line functionality and can not be used
20
20
  with Vagrant.
21
21
 
22
22
  ## Features
23
- The Parallels provider supports all basic Vagrant features, including shared folders,
24
- private and public networks, forwarded ports and so on.
23
+ The Parallels provider supports all basic Vagrant features, including Shared Folders,
24
+ Private and Public Networking, Forwarded ports and Vagrant Share.
25
25
 
26
26
  If you're just getting started with Vagrant, it is highly recommended that you
27
- read the official [Vagrant documentation](http://docs.vagrantup.com/v2/) first.
27
+ read the official [Vagrant documentation](https://docs.vagrantup.com/v2/) first.
28
28
 
29
29
  ## Installation
30
- First, make sure that you have [Parallels Desktop for Mac](http://www.parallels.com/products/desktop/)
31
- and [Vagrant](http://www.vagrantup.com/downloads) properly installed.
30
+ Make sure that you have [Parallels Desktop for Mac](https://www.parallels.com/products/desktop/)
31
+ and [Vagrant](https://www.vagrantup.com/downloads.html) properly installed.
32
32
  We recommend that you use the latest versions of these products.
33
33
 
34
- Since the Parallels provider is a Vagrant plugin, installing it is easy:
34
+ Parallels provider is a plugin for Vagrant. Run this command to install it:
35
35
 
36
36
  ```
37
37
  $ vagrant plugin install vagrant-parallels
@@ -40,24 +40,22 @@ $ vagrant plugin install vagrant-parallels
40
40
  ## Provider Documentation
41
41
 
42
42
  More information about the Parallels provider is available in
43
- [Vagrant Parallels Documentation](http://parallels.github.io/vagrant-parallels/docs/)
43
+ [Vagrant Parallels Documentation](https://parallels.github.io/vagrant-parallels/docs/)
44
44
 
45
45
  We recommend you to start from these pages:
46
- * [Usage](http://parallels.github.io/vagrant-parallels/docs/usage.html)
47
- * [Getting Started](http://parallels.github.io/vagrant-parallels/docs/getting-started.html)
48
- * [Boxes](http://parallels.github.io/vagrant-parallels/docs/boxes/index.html)
46
+ * [Usage](https://parallels.github.io/vagrant-parallels/docs/usage.html)
47
+ * [Getting Started](https://parallels.github.io/vagrant-parallels/docs/getting-started.html)
48
+ * [Boxes](https://parallels.github.io/vagrant-parallels/docs/boxes/index.html)
49
49
 
50
50
  ## Getting Help
51
- Having problems while using the provider? Ask your question on the official forum:
52
- ["Parallels Provider for Vagrant" forum branch](http://forum.parallels.com/forumdisplay.php?737-Parallels-Provider-for-Vagrant)
53
51
 
54
- If you get an error while using the Parallels provider or discover a bug,
52
+ If you have an issue with the Parallels provider or discover a bug,
55
53
  please report it on the [Issue Tracker](https://github.com/Parallels/vagrant-parallels/issues).
56
54
 
57
55
  ## License and Authors
58
56
 
59
57
  * Author: Youssef Shahin <yshahin@gmail.com>
60
58
  * Author: Mikhail Zholobov <legal90@gmail.com>
61
- * Copyright 2013-2017, Parallels International GmbH.
59
+ * Copyright 2013-2020, Parallels International GmbH.
62
60
 
63
- Vagrant Parallels Provider is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).
61
+ Vagrant Parallels Provider is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
@@ -113,6 +113,7 @@ module VagrantPlugins
113
113
  b1.use Package
114
114
  b1.use Export
115
115
  b1.use PackageConfigFiles
116
+ b1.use PackageVagrantfile
116
117
  end
117
118
  end
118
119
  end
@@ -413,6 +414,7 @@ module VagrantPlugins
413
414
  autoload :Network, File.expand_path('../action/network', __FILE__)
414
415
  autoload :Package, File.expand_path('../action/package', __FILE__)
415
416
  autoload :PackageConfigFiles, File.expand_path('../action/package_config_files', __FILE__)
417
+ autoload :PackageVagrantfile, File.expand_path('../action/package_vagrantfile', __FILE__)
416
418
  autoload :PrepareCloneSnapshot, File.expand_path('../action/prepare_clone_snapshot', __FILE__)
417
419
  autoload :PrepareForwardedPortCollisionParams, File.expand_path('../action/prepare_forwarded_port_collision_params', __FILE__)
418
420
  autoload :PrepareNFSSettings, File.expand_path('../action/prepare_nfs_settings', __FILE__)
@@ -53,9 +53,9 @@ module VagrantPlugins
53
53
  file.flush
54
54
  end
55
55
 
56
- # Delete the lease file if we are the last who need this box.
56
+ # Delete the lease file if we were the last who needed this box.
57
57
  # Then the box image will be unregistered.
58
- lease_file.delete if lease_file.read.chomp.to_i <= 1
58
+ lease_file.delete if lease_file.read.chomp.to_i <= 0
59
59
  end
60
60
 
61
61
  def unregister_box(env)
@@ -1,5 +1,3 @@
1
- require 'nokogiri'
2
-
3
1
  require 'digest/md5'
4
2
 
5
3
  module VagrantPlugins
@@ -21,14 +19,12 @@ module VagrantPlugins
21
19
  @logger.info("Disabling password restrictions: #{acts.join(', ')}")
22
20
  env[:machine].provider.driver.disable_password_restrictions(acts)
23
21
 
24
- if env[:machine].provider_config.regen_src_uuid \
25
- && env[:machine].provider.pd_version_satisfies?('>= 10.1.2')
22
+ if env[:machine].provider_config.regen_src_uuid
26
23
  options[:regenerate_src_uuid] = true
27
24
  end
28
25
 
29
26
  # Linked clones are supported only for PD 11 and higher
30
- if env[:machine].provider_config.linked_clone \
31
- && env[:machine].provider.pd_version_satisfies?('>= 11')
27
+ if env[:machine].provider_config.linked_clone
32
28
  # Linked clone creation should not be concurrent [GH-206]
33
29
  options[:snapshot_id] = env[:clone_snapshot_id]
34
30
  options[:linked] = true
@@ -51,12 +47,6 @@ module VagrantPlugins
51
47
  # Flag as erroneous and return if import failed
52
48
  raise Errors::VMCloneFailure if !env[:machine].id
53
49
 
54
- if env[:machine].provider_config.regen_src_uuid \
55
- && env[:machine].provider.pd_version_satisfies?('< 10.1.2')
56
- @logger.info('Regenerate SourceVmUuid by editing config.pvs file')
57
- env[:machine].provider.driver.regenerate_src_uuid
58
- end
59
-
60
50
  # Remove 'Icon\r' file from VM home (bug in PD 11.0.0)
61
51
  if env[:machine].provider.pd_version_satisfies?('= 11.0.0')
62
52
  vm_home = env[:machine].provider.driver.read_settings.fetch('Home')
@@ -291,7 +291,12 @@ module VagrantPlugins
291
291
  @env[:machine].provider.driver.read_bridged_interfaces.each do |interface|
292
292
  next if interface[:status] == 'Down'
293
293
  that_netaddr = IPAddr.new("#{interface[:ip]}/#{interface[:netmask]}")
294
- raise Vagrant::Errors::NetworkCollision if netaddr.include? that_netaddr
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
295
300
  end
296
301
  end
297
302
 
@@ -0,0 +1,33 @@
1
+ require 'vagrant/util/template_renderer'
2
+
3
+ module VagrantPlugins
4
+ module Parallels
5
+ module Action
6
+ class PackageVagrantfile
7
+ # For TemplateRenderer
8
+ include Vagrant::Util
9
+
10
+ def initialize(app, env)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ @env = env
16
+ create_vagrantfile
17
+ @app.call(env)
18
+ end
19
+
20
+ # This method creates the auto-generated Vagrantfile at the root of the
21
+ # box. This Vagrantfile contains the MAC address so that the user doesn't
22
+ # have to worry about it.
23
+ def create_vagrantfile
24
+ File.open(File.join(@env["export.temp_dir"], "Vagrantfile"), "w") do |f|
25
+ f.write(TemplateRenderer.render("package_Vagrantfile", {
26
+ base_mac: @env[:machine].provider.driver.read_mac_address
27
+ }))
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -20,8 +20,7 @@ module VagrantPlugins
20
20
  end
21
21
 
22
22
  # If we're not doing a linked clone, snapshots don't matter
23
- if !env[:machine].provider_config.linked_clone \
24
- || env[:machine].provider.pd_version_satisfies?('< 11')
23
+ if !env[:machine].provider_config.linked_clone
25
24
  return @app.call(env)
26
25
  end
27
26
 
@@ -14,9 +14,6 @@ module VagrantPlugins
14
14
  # helpers.
15
15
  @env = env
16
16
 
17
- settings = default_settings
18
-
19
- @app.call(env) if settings.empty?
20
17
  @env[:ui].info I18n.t('vagrant_parallels.actions.vm.sane_defaults.setting')
21
18
 
22
19
  default_settings.each do |setting, value|
@@ -30,35 +27,23 @@ module VagrantPlugins
30
27
  private
31
28
 
32
29
  def default_settings
33
- settings = {
30
+ {
34
31
  tools_autoupdate: 'no',
35
- startup_view: 'same',
36
32
  on_shutdown: 'close',
37
33
  on_window_close: 'keep-running',
38
34
  auto_share_camera: 'off',
39
35
  smart_guard: 'off',
40
- longer_battery_life: 'on'
41
- }
42
-
43
- return settings if @env[:machine].provider.pd_version_satisfies?('< 10.1.2')
44
- settings.merge!(
36
+ longer_battery_life: 'on',
45
37
  shared_cloud: 'off',
46
38
  shared_profile: 'off',
47
39
  smart_mount: 'off',
48
40
  sh_app_guest_to_host: 'off',
49
41
  sh_app_host_to_guest: 'off',
50
- time_sync: 'off'
51
- )
52
-
53
- return settings if @env[:machine].provider.pd_version_satisfies?('< 11')
54
- settings.merge!(
55
42
  startup_view: 'headless',
56
43
  time_sync: 'on',
57
44
  disable_timezone_sync: 'on',
58
45
  shf_host_defined: 'off'
59
- )
60
-
61
- settings
46
+ }
62
47
  end
63
48
  end
64
49
  end
@@ -71,7 +71,7 @@ module VagrantPlugins
71
71
  @functional_psf = true
72
72
  end
73
73
 
74
- @linked_clone = false if @linked_clone == UNSET_VALUE
74
+ @linked_clone = true if @linked_clone == UNSET_VALUE
75
75
  @linked_clone_snapshot = nil if @linked_clone_snapshot == UNSET_VALUE
76
76
 
77
77
  @name = nil if @name == UNSET_VALUE
@@ -193,14 +193,13 @@ module VagrantPlugins
193
193
  end
194
194
  end
195
195
 
196
- # Deletes any host only networks that aren't being used for anything.
196
+ # Deletes host-only networks that aren't being used by any virtual machine.
197
197
  def delete_unused_host_only_networks
198
198
  networks = read_virtual_networks
199
- # 'Shared'(vnic0) and 'Host-Only'(vnic1) are default in Parallels Desktop
200
- # They should not be deleted anyway.
199
+
200
+ # Exclude all host-only network interfaces which were not created by vagrant provider.
201
201
  networks.keep_if do |net|
202
- net['Type'] == 'host-only' && net['Bound To'] &&
203
- net['Bound To'].match(/^(?>vnic|Parallels Host-Only #)(\d+)$/)[1].to_i >= 2
202
+ net['Type'] == 'host-only' && net['Network ID'] =~ /^vagrant-vnet(\d+)$/
204
203
  end
205
204
 
206
205
  read_vms_info.each do |vm|
@@ -210,8 +209,8 @@ module VagrantPlugins
210
209
  end
211
210
  end
212
211
 
212
+ # Delete all unused network interfaces.
213
213
  networks.each do |net|
214
- # Delete the actual host only network interface.
215
214
  execute_prlsrvctl('net', 'del', net['Network ID'])
216
215
  end
217
216
  end
@@ -496,7 +495,6 @@ module VagrantPlugins
496
495
  #
497
496
  # {
498
497
  # name: 'Host-Only', # Parallels Network ID
499
- # bound_to: 'vnic1', # interface name
500
498
  # ip: '10.37.129.2', # IP address of the interface
501
499
  # netmask: '255.255.255.0', # netmask associated with the interface
502
500
  # status: 'Up' # status of the interface
@@ -519,11 +517,9 @@ module VagrantPlugins
519
517
  }
520
518
 
521
519
  adapter = net_info['Parallels adapter']
522
- if adapter && net_info['Bound To']
523
- # In PD >= 10.1.2 there are new field names for an IP/Subnet
524
- iface[:ip] = adapter['IP address'] || adapter['IPv4 address']
525
- iface[:netmask] = adapter['Subnet mask'] || adapter['IPv4 subnet mask']
526
- iface[:bound_to] = net_info['Bound To']
520
+ if adapter
521
+ iface[:ip] = adapter['IPv4 address']
522
+ iface[:netmask] = adapter['IPv4 subnet mask']
527
523
  iface[:status] = 'Up'
528
524
 
529
525
  if adapter['IPv6 address'] && adapter['IPv6 subnet mask']
@@ -618,11 +614,9 @@ module VagrantPlugins
618
614
  }
619
615
  adapter = net_info['Parallels adapter']
620
616
 
621
- if adapter && net_info['Bound To']
622
- # In PD >= 10.1.2 there are new field names for an IP/Subnet
623
- iface[:ip] = adapter['IP address'] || adapter['IPv4 address']
624
- iface[:netmask] = adapter['Subnet mask'] || adapter['IPv4 subnet mask']
625
- iface[:bound_to] = net_info['Bound To']
617
+ if adapter
618
+ iface[:ip] = adapter['IPv4 address']
619
+ iface[:netmask] = adapter['IPv4 subnet mask']
626
620
  iface[:status] = 'Up'
627
621
  end
628
622
 
@@ -724,22 +718,6 @@ module VagrantPlugins
724
718
  vms_arr | templates_arr
725
719
  end
726
720
 
727
- # Regenerates 'SourceVmUuid' to avoid SMBIOS UUID collision [GH-113]
728
- #
729
- def regenerate_src_uuid
730
- settings = read_settings
731
- vm_config = File.join(settings.fetch('Home'), 'config.pvs')
732
-
733
- # Generate and put new SourceVmUuid
734
- xml = Nokogiri::XML(File.open(vm_config))
735
- p = '//ParallelsVirtualMachine/Identification/SourceVmUuid'
736
- xml.xpath(p).first.content = "{#{SecureRandom.uuid}}"
737
-
738
- File.open(vm_config, 'w') do |f|
739
- f.write xml.to_xml
740
- end
741
- end
742
-
743
721
  # Registers the virtual machine
744
722
  #
745
723
  # @param [String] pvm_file Path to the machine image (*.pvm)
@@ -858,14 +836,14 @@ module VagrantPlugins
858
836
  true
859
837
  end
860
838
 
861
- private
862
-
863
839
  # Wraps 'execute' and returns the output of given 'prlctl' subcommand.
864
840
  def execute_prlctl(*command, &block)
865
841
  execute(@prlctl_path, *command, &block)
866
842
  end
867
843
 
868
- #Wraps 'execute' and returns the output of given 'prlsrvctl' subcommand.
844
+ private
845
+
846
+ # Wraps 'execute' and returns the output of given 'prlsrvctl' subcommand.
869
847
  def execute_prlsrvctl(*command, &block)
870
848
  execute(@prlsrvctl_path, *command, &block)
871
849
  end
@@ -37,26 +37,23 @@ module VagrantPlugins
37
37
  @@version_lock.synchronize do
38
38
  @@version = read_version
39
39
  end
40
-
40
+
41
41
  # Instantiate the proper version driver for Parallels Desktop
42
42
  @logger.debug("Finding driver for Parallels Desktop version: #{@@version}")
43
43
 
44
44
  major_ver = @@version.split('.').first.to_i
45
45
  driver_klass =
46
46
  case major_ver
47
- when 1..9 then raise Errors::ParallelsUnsupportedVersion
48
- when 10 then PD_10
47
+ when 1..10 then raise Errors::ParallelsUnsupportedVersion
49
48
  when 11 then PD_11
50
49
  else PD_12
51
50
  end
52
51
 
53
52
  # Starting since PD 11 only Pro and Business editions have CLI
54
53
  # functionality and can be used with Vagrant.
55
- if major_ver >= 11
56
- edition = read_edition
57
- if !edition || !%w(any pro business).include?(edition)
58
- raise Errors::ParallelsUnsupportedEdition
59
- end
54
+ edition = read_edition
55
+ if !edition || !%w(any pro business).include?(edition)
56
+ raise Errors::ParallelsUnsupportedEdition
60
57
  end
61
58
 
62
59
  @logger.info("Using Parallels driver: #{driver_klass}")
@@ -143,6 +140,7 @@ module VagrantPlugins
143
140
  # * prlctl version 8.0.12345.123456
144
141
  # * prlctl version 9.0.12345.123456
145
142
  # * prlctl version 10.0.0 (12345) rev 123456
143
+ # * prlctl version 14.0.1 (45154)
146
144
  #
147
145
  # But we need exactly the first 3 numbers: "x.x.x"
148
146
  output = execute(@prlctl_path, '--version')
@@ -2,13 +2,13 @@ require 'log4r'
2
2
 
3
3
  require 'vagrant/util/platform'
4
4
 
5
- require_relative 'pd_10'
5
+ require_relative 'base'
6
6
 
7
7
  module VagrantPlugins
8
8
  module Parallels
9
9
  module Driver
10
10
  # Driver for Parallels Desktop 11.
11
- class PD_11 < PD_10
11
+ class PD_11 < Base
12
12
  def initialize(uuid)
13
13
  super(uuid)
14
14
 
@@ -7,7 +7,7 @@ require_relative 'pd_11'
7
7
  module VagrantPlugins
8
8
  module Parallels
9
9
  module Driver
10
- # Driver for Parallels Desktop 12.
10
+ # Driver for Parallels Desktop 12 and later.
11
11
  class PD_12 < PD_11
12
12
  def initialize(uuid)
13
13
  super(uuid)
@@ -39,6 +39,10 @@ module VagrantPlugins
39
39
  error_key(:mac_os_x_required)
40
40
  end
41
41
 
42
+ class NetworkCollision < VagrantParallelsError
43
+ error_key(:network_collision)
44
+ end
45
+
42
46
  class NetworkInvalidAddress < VagrantParallelsError
43
47
  error_key(:network_invalid_address)
44
48
  end
@@ -104,4 +108,4 @@ module VagrantPlugins
104
108
  end
105
109
  end
106
110
  end
107
- end
111
+ end
@@ -80,10 +80,11 @@ module VagrantPlugins
80
80
  end
81
81
 
82
82
  # Emit an upstart event if we can
83
- if machine.communicate.test('test -x /sbin/initctl')
84
- machine.communicate.sudo(
85
- "/sbin/initctl emit --no-wait vagrant-mounted MOUNTPOINT=#{expanded_guest_path}")
86
- end
83
+ machine.communicate.sudo <<-EOH.gsub(/^ {10}/, "")
84
+ if command -v /sbin/init && /sbin/init 2>/dev/null --version | grep upstart; then
85
+ /sbin/initctl emit --no-wait vagrant-mounted MOUNTPOINT=#{expanded_guest_path}
86
+ fi
87
+ EOH
87
88
  end
88
89
 
89
90
  def self.unmount_parallels_shared_folder(machine, guestpath, options)
@@ -143,7 +143,6 @@ module VagrantPlugins
143
143
  # our drivers only when they are needed.
144
144
  module Driver
145
145
  autoload :Meta, File.expand_path('../driver/meta', __FILE__)
146
- autoload :PD_10, File.expand_path('../driver/pd_10', __FILE__)
147
146
  autoload :PD_11, File.expand_path('../driver/pd_11', __FILE__)
148
147
  autoload :PD_12, File.expand_path('../driver/pd_12', __FILE__)
149
148
  end
@@ -19,8 +19,8 @@ module VagrantPlugins
19
19
  end
20
20
 
21
21
  defs << {
22
- name: os_friendly_id(id),
23
- hostpath: hostpath.to_s,
22
+ name: os_friendly_id(id),
23
+ hostpath: hostpath.to_s,
24
24
  }
25
25
  end
26
26
 
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Parallels
3
- VERSION = '1.7.6'
3
+ VERSION = '2.1.0'
4
4
  end
5
5
  end
@@ -58,13 +58,21 @@ en:
58
58
  which are not supported by "prl_fs" file system.
59
59
 
60
60
  Invalid mount options: %{options}
61
+ network_collision: |-
62
+ The specified host network collides with a non-hostonly network!
63
+ This will cause your specified IP to be inaccessible. Please change
64
+ the IP or name of your host only network so that it no longer matches that of
65
+ a bridged or non-hostonly network.
66
+
67
+ Host-only Network Address: '%{hostonly_netaddr}'
68
+ Bridged Network '%{bridge_interface}': '%{bridge_netaddr}'
61
69
  network_invalid_address: |-
62
70
  Network settings specified in your Vagrantfile are invalid:
63
71
 
64
72
  Network settings: %{options}
65
73
  Error: %{error}
66
74
  mac_os_x_required: |-
67
- Parallels provider works only on OS X (Mac OS X) systems.
75
+ Parallels provider works only on macOS (Mac OS X) systems.
68
76
  parallels_install_incomplete: |-
69
77
  Parallels Desktop is complaining that the installation is incomplete.
70
78
  Try to reinstall Parallels Desktop or contact Parallels support.
@@ -101,12 +109,12 @@ en:
101
109
  only with Pro and Business editions of Parallels Desktop. Other editions
102
110
  do not have command line functionality and can not be used with Vagrant.
103
111
 
104
- Please upgrade your installation: http://parallels.com/desktop
112
+ Please upgrade your installation: https://parallels.com/desktop
105
113
  parallels_unsupported_version: |-
106
114
  Vagrant has detected that you have a version of Parallels Desktop for Mac
107
115
  installed that is not supported. Vagrant Parallels provider is compatible
108
- only with Parallels Desktop 10 or later.
109
- Please upgrade your installation: http://parallels.com/desktop
116
+ only with Parallels Desktop 11 or later.
117
+ Please upgrade your installation: https://parallels.com/desktop
110
118
 
111
119
  Note: Starting since Parallels Desktop 11 for Mac, Vagrant Parallels
112
120
  provider can be only used with Pro or Business edition of Parallels
@@ -205,8 +213,8 @@ en:
205
213
  check_shared_interface:
206
214
  connecting: Connecting host to Shared network...
207
215
  clone:
208
- full: Cloning new virtual machine...
209
- linked: Creating new virtual machine as a linked clone...
216
+ full: Creating new virtual machine as a full clone of the box image...
217
+ linked: Creating new virtual machine as a linked clone of the box image...
210
218
  handle_guest_tools:
211
219
  cant_install: |-
212
220
  Vagrant doesn't support installing Parallels Tools for the guest OS
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-parallels
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.6
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikhail Zholobov
8
8
  - Youssef Shahin
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-31 00:00:00.000000000 Z
12
+ date: 2020-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -31,28 +31,42 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 11.3.0
34
+ version: 12.3.3
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 11.3.0
41
+ version: 12.3.3
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 2.14.0
48
+ version: 3.5.0
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 2.14.0
55
+ version: 3.5.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec-its
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.3.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 1.3.0
56
70
  description: Enables Vagrant to manage Parallels virtual machines.
57
71
  email:
58
72
  - mzholobov@parallels.com
@@ -84,6 +98,7 @@ files:
84
98
  - lib/vagrant-parallels/action/network.rb
85
99
  - lib/vagrant-parallels/action/package.rb
86
100
  - lib/vagrant-parallels/action/package_config_files.rb
101
+ - lib/vagrant-parallels/action/package_vagrantfile.rb
87
102
  - lib/vagrant-parallels/action/prepare_clone_snapshot.rb
88
103
  - lib/vagrant-parallels/action/prepare_forwarded_port_collision_params.rb
89
104
  - lib/vagrant-parallels/action/prepare_nfs_settings.rb
@@ -100,7 +115,6 @@ files:
100
115
  - lib/vagrant-parallels/config.rb
101
116
  - lib/vagrant-parallels/driver/base.rb
102
117
  - lib/vagrant-parallels/driver/meta.rb
103
- - lib/vagrant-parallels/driver/pd_10.rb
104
118
  - lib/vagrant-parallels/driver/pd_11.rb
105
119
  - lib/vagrant-parallels/driver/pd_12.rb
106
120
  - lib/vagrant-parallels/errors.rb
@@ -116,11 +130,11 @@ files:
116
130
  - lib/vagrant-parallels/util/compile_forwarded_ports.rb
117
131
  - lib/vagrant-parallels/version.rb
118
132
  - locales/en.yml
119
- homepage: http://github.com/Parallels/vagrant-parallels
133
+ homepage: https://github.com/Parallels/vagrant-parallels
120
134
  licenses:
121
135
  - MIT
122
136
  metadata: {}
123
- post_install_message:
137
+ post_install_message:
124
138
  rdoc_options: []
125
139
  require_paths:
126
140
  - lib
@@ -135,9 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
149
  - !ruby/object:Gem::Version
136
150
  version: 1.3.6
137
151
  requirements: []
138
- rubyforge_project: vagrant-parallels
139
- rubygems_version: 2.5.2
140
- signing_key:
152
+ rubygems_version: 3.0.3
153
+ signing_key:
141
154
  specification_version: 4
142
155
  summary: Parallels provider for Vagrant.
143
156
  test_files: []
@@ -1,20 +0,0 @@
1
- require 'log4r'
2
-
3
- require 'vagrant/util/platform'
4
-
5
- require_relative 'base'
6
-
7
- module VagrantPlugins
8
- module Parallels
9
- module Driver
10
- # Driver for Parallels Desktop 10.
11
- class PD_10 < Base
12
- def initialize(uuid)
13
- super(uuid)
14
-
15
- @logger = Log4r::Logger.new('vagrant_parallels::driver::pd_10')
16
- end
17
- end
18
- end
19
- end
20
- end