vagrant-parallels 2.4.1 → 2.4.4

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: 5316a81fe9c64de94bb88a2db7b9efcc015325d4b95bd4ec6302f7441334e0c3
4
- data.tar.gz: d493a896f4b9776f2755038d333046c6fa920f7e1fdd45de96dee0ae4cf33ef4
3
+ metadata.gz: 062102d2b68456eb430188395559c723101126db2e54bd6562ecfc6506141e59
4
+ data.tar.gz: 6363965855b78b1ac4c579c0073a5c9fae70a80c57ad20648c40f1ef8103f6c9
5
5
  SHA512:
6
- metadata.gz: 874be6069e0cf9ec4ee115d75b7979bd68a1c007d04f0552dae2a808d7025c8659926a906ce37814ee19c7c2e04ef7b753d2c5b1d2121f8670092a40b77b5248
7
- data.tar.gz: 53435b75213e446b68d679f2600d47e70cc4d5fec8141d9be6e9eba270030cfa9f3d48cf398d5ce07311503de8a053802fb1629408bd49e5f49d25cbf40d0562
6
+ metadata.gz: 716010b5a148531300d01c54b60839bc6ab87ece5e8bb38958c7efa82d2fdf1a56c9104ac7fb2adc3fbb8ca2e26c3927f558f371ac7c91aa938eaa4825e521df
7
+ data.tar.gz: 0fc64cb6ddfade425910f3992b90c3868caa3690c791fa4e5f54f2d2e54177d79e0e02e83df23ec00c8103eb3cf2331b482cb1720ad4f0b3bb46ae8d876c7114
data/CHANGELOG.md CHANGED
@@ -1,268 +1,344 @@
1
- ## 2.4.0 (May 22, 2023)
1
+
2
+ ## 2.4.4 (Feb 27, 2025)
3
+
4
+ IMPROVEMENTS:
5
+
6
+ - Add a check for prl_fsd and use that to mount if it exists.
7
+ [[GH-487](https://github.com/Parallels/vagrant-parallels/pull/487)]
8
+ - Updated the documentation to reflect the new version of the provider.
9
+ [[GH-488](https://github.com/Parallels/vagrant-parallels/pull/488)]
10
+
11
+ ## 2.4.3 (Feb 26, 2025)
12
+
13
+ IMPROVEMENTS:
14
+
15
+ - Add 'enterprise' edition support for Parallels CLI functionality check
16
+
17
+ ## 2.4.2 (Feb 5, 2024)
18
+
19
+ BUG FIXES:
20
+
21
+ - Revert "use clonefile copy for macvm boxes"
22
+ [[GH-464](https://github.com/Parallels/vagrant-parallels/pull/464)]
23
+
24
+ ## 2.4.1 (Oct 16, 2023)
25
+
2
26
  IMPROVEMENTS:
3
- - use clonefile copy for macvm boxes
27
+
28
+ - use clonefile copy for macvm boxes
4
29
  [[GH-459](https://github.com/Parallels/vagrant-parallels/pull/459)]
5
30
 
6
31
  BUG FIXES:
7
- - Bump activesupport from 6.1.7.3 to 6.1.7.5
32
+
33
+ - Bump activesupport from 6.1.7.3 to 6.1.7.5
8
34
  [[GH-457](https://github.com/Parallels/vagrant-parallels/pull/457)]
9
- - Don't try to call methdods on Nil
35
+ - Don't try to call methdods on Nil
10
36
  [[GH-456](https://github.com/Parallels/vagrant-parallels/pull/456)]
11
- - Add a doc note for releasing a new provider version
37
+ - Add a doc note for releasing a new provider version
12
38
  [[GH-452](https://github.com/Parallels/vagrant-parallels/pull/452)]
13
- - website: Remove unused images
39
+ - website: Remove unused images
14
40
  [[GH-450](https://github.com/Parallels/vagrant-parallels/pull/450)]
15
- - adding macos
41
+ - adding macos
16
42
  [[GH-447](https://github.com/Parallels/vagrant-parallels/pull/447)]
17
43
 
18
44
  ## 2.4.0 (May 22, 2023)
45
+
19
46
  IMPROVEMENTS:
20
- - Implement shared folder support for `.macvm` VMs
47
+
48
+ - Implement shared folder support for `.macvm` VMs
21
49
  [[GH-448](https://github.com/Parallels/vagrant-parallels/pull/448)]
22
50
 
23
51
  BUG FIXES:
24
- - Fix shared folder mount error on `.macvm` VMs
52
+
53
+ - Fix shared folder mount error on `.macvm` VMs
25
54
  [[GH-445](https://github.com/Parallels/vagrant-parallels/pull/445)]
26
55
 
27
56
  ## 2.3.1 (March 23, 2023)
57
+
28
58
  BUG FIXES:
29
- - Fix the detection of VM IP. Wait for the IP to become available to
59
+
60
+ - Fix the detection of VM IP. Wait for the IP to become available to
30
61
  avoid connection issues and Vagrant warnings.
31
62
  [[GH-440](https://github.com/Parallels/vagrant-parallels/issues/440)]
32
63
 
33
64
  ## 2.3.0 (March 22, 2023)
65
+
34
66
  IMPROVEMENTS:
35
- - Support fetching the VM IP using prlctl
67
+
68
+ - Support fetching the VM IP using prlctl
36
69
  [[GH-434](https://github.com/Parallels/vagrant-parallels/pull/434)].
37
- - Update gem dependensies and support Ruby 3.0
70
+ - Update gem dependensies and support Ruby 3.0
38
71
  [[GH-437](https://github.com/Parallels/vagrant-parallels/pull/437)],
39
72
  [[GH-439](https://github.com/Parallels/vagrant-parallels/pull/439)].
40
73
 
41
74
  BUG FIXES:
42
- - Fixes SSH access to `.macvm` VMs on Macs with Apple M-series chip
75
+
76
+ - Fixes SSH access to `.macvm` VMs on Macs with Apple M-series chip
43
77
  [[GH-435](https://github.com/Parallels/vagrant-parallels/issues/435)]
44
78
 
45
79
  ## 2.2.6 (December 19, 2022)
80
+
46
81
  BUG FIXES:
47
- - Fix the macOS VMs support on ARM-based Mac
82
+
83
+ - Fix the macOS VMs support on ARM-based Mac
48
84
  [[GH-429](https://github.com/Parallels/vagrant-parallels/pull/429)]
49
85
 
50
86
  ## 2.2.5 (February 22, 2022)
87
+
51
88
  BUG FIXES:
52
- - Fixed Parallels Tool installation on M1 hosts with arm64
89
+
90
+ - Fixed Parallels Tool installation on M1 hosts with arm64
53
91
  [[GH-416](https://github.com/Parallels/vagrant-parallels/pull/416)]
54
92
 
55
93
  ## 2.2.4 (August 18, 2021)
94
+
56
95
  BUG FIXES:
57
- - Fixed running the provisioner on "vagrant up --provision"
96
+
97
+ - Fixed running the provisioner on "vagrant up --provision"
58
98
  [[GH-402](https://github.com/Parallels/vagrant-parallels/pull/402)]
59
99
 
60
100
  ## 2.2.3 (July 14, 2021)
101
+
61
102
  BUG FIXES:
62
- - Fixed the compatibility with Vagrant 2.2.17
103
+
104
+ - Fixed the compatibility with Vagrant 2.2.17
63
105
  [[GH-399](https://github.com/Parallels/vagrant-parallels/pull/399)]
64
106
 
65
107
  ## 2.2.2 (June 23, 2021)
108
+
66
109
  BUG FIXES:
67
- - Fixed shared folder mount on the VM reboot
110
+
111
+ - Fixed shared folder mount on the VM reboot
68
112
  [[GH-391](https://github.com/Parallels/vagrant-parallels/pull/391)]
69
113
 
70
114
  ## 2.2.1 (April 14, 2021)
115
+
71
116
  BUG FIXES:
72
- - Fixed the compatibility with Vagrant 2.2.15
117
+
118
+ - Fixed the compatibility with Vagrant 2.2.15
73
119
  [[GH-386](https://github.com/Parallels/vagrant-parallels/pull/386)]
74
120
 
75
121
  ## 2.2.0 (March 3, 2021)
122
+
76
123
  IMPROVEMENTS:
77
- - Mount shared folders after manual VM reboot
124
+
125
+ - Mount shared folders after manual VM reboot
78
126
  [[GH-377](https://github.com/Parallels/vagrant-parallels/pull/377)]
79
127
 
80
128
  BUG FIXES:
81
- - Fixed mount of shared folders with non-ASCII symbols in the name
129
+
130
+ - Fixed mount of shared folders with non-ASCII symbols in the name
82
131
  [[GH-290](https://github.com/Parallels/vagrant-parallels/issues/290)]
83
132
 
84
133
  ## 2.1.0 (November 25, 2020)
134
+
85
135
  BUG FIXES:
86
- - Fixed the private network adapter workflow on macOS 11.0 Big Sur
136
+
137
+ - Fixed the private network adapter workflow on macOS 11.0 Big Sur
87
138
  [[GH-371](https://github.com/Parallels/vagrant-parallels/pull/371)]
88
- - Fixed the concurrency issue with box unregister in multi-vm environment
139
+ - Fixed the concurrency issue with box unregister in multi-vm environment
89
140
  [[GH-370](https://github.com/Parallels/vagrant-parallels/pull/370)]
90
- - Fixed the `vagrant package` with custom `Vagrantfile`
141
+ - Fixed the `vagrant package` with custom `Vagrantfile`
91
142
  [[GH-368](https://github.com/Parallels/vagrant-parallels/pull/368)]
92
143
 
93
144
  ## 2.0.1 (April 23, 2019)
145
+
94
146
  BUG FIXES:
95
- - Fixed the error message for host-only network collision
147
+
148
+ - Fixed the error message for host-only network collision
96
149
  [[GH-340](https://github.com/Parallels/vagrant-parallels/issues/340)]
97
150
 
98
151
  ## 2.0.0 (November 19, 2018)
152
+
99
153
  BREAKING CHANGES:
100
- - **Linked Clone feature is enabled by default.**
154
+
155
+ - **Linked Clone feature is enabled by default.**
101
156
  Now each time when you create a new virtual machine with `vagrant up` it is
102
157
  created as a linked clone of the box image (instead of the full clone, as it
103
158
  was before). Read more about it:
104
159
  [Full Clone vs Linked Clone](https://parallels.github.io/vagrant-parallels/docs/configuration.html#linked_clone).
105
- - **Dropped support of Parallels Desktop 10**. It reached
160
+ - **Dropped support of Parallels Desktop 10**. It reached
106
161
  [End-of-Life and End-of-Support](https://kb.parallels.com/eu/122533).
107
162
 
108
163
  ## 1.7.8 (November 18, 2017)
164
+
109
165
  BUG FIXES:
110
- - Fixed warning messages with Vagrant v2.0.1
166
+
167
+ - Fixed warning messages with Vagrant v2.0.1
111
168
  [[GH-311](https://github.com/Parallels/vagrant-parallels/issues/311)]
112
169
 
113
170
  ## 1.7.7 (October 15, 2017)
171
+
114
172
  BUG FIXES:
115
- - Fixed synced folder mounting on guests with Upstart (Ubuntu 14.*)
116
- [[GH-307](https://github.com/Parallels/vagrant-parallels/issues/307)]
117
173
 
174
+ - Fixed synced folder mounting on guests with Upstart (Ubuntu 14.*)
175
+ [[GH-307](https://github.com/Parallels/vagrant-parallels/issues/307)]
118
176
 
119
177
  ## 1.7.6 (July 31, 2017)
178
+
120
179
  BUG FIXES:
121
- - Fixed `vagrant up` failure if the box image was automatically renamed due
180
+
181
+ - Fixed `vagrant up` failure if the box image was automatically renamed due
122
182
  to the name conflict.
123
183
  [[GH-303](https://github.com/Parallels/vagrant-parallels/issues/303)]
124
184
 
125
-
126
185
  ## 1.7.5 (May 27, 2017)
186
+
127
187
  BUG FIXES:
128
- - Fixed compatibility with Vagrant v1.9.5+. `nokogiri` gem is defined as
188
+
189
+ - Fixed compatibility with Vagrant v1.9.5+. `nokogiri` gem is defined as
129
190
  a plugin runtime dependency.
130
191
  [[GH-297](https://github.com/Parallels/vagrant-parallels/issues/297)],
131
192
  [[GH-298](https://github.com/Parallels/vagrant-parallels/pull/298)]
132
193
 
133
194
  **NB!** To use the plugin with Vagrant v1.9.5 you should (re)install it with
134
195
  `NOKOGIRI_USE_SYSTEM_LIBRARIES` enabled:
196
+
135
197
  ```bash
136
- $ vagrant plugin uninstall vagrant-parallels
137
- $ NOKOGIRI_USE_SYSTEM_LIBRARIES=true vagrant plugin install vagrant-parallels
198
+ vagrant plugin uninstall vagrant-parallels
199
+ NOKOGIRI_USE_SYSTEM_LIBRARIES=true vagrant plugin install vagrant-parallels
138
200
  ```
139
201
 
140
-
141
202
  ## 1.7.4 (April 20, 2017)
203
+
142
204
  IMPROVEMENTS:
143
- - Make start action (`"vagrant up"`) run provisioners if VM is running.
205
+
206
+ - Make start action (`"vagrant up"`) run provisioners if VM is running.
144
207
  [[GH-294](https://github.com/Parallels/vagrant-parallels/pull/294)]
145
208
 
146
209
  BUG FIXES:
147
- - Properly handle `"paused"` VM state for up and halt actions.
210
+
211
+ - Properly handle `"paused"` VM state for up and halt actions.
148
212
  [[GH-295](https://github.com/Parallels/vagrant-parallels/pull/295)]
149
- - synced_folder: Escape special characters in Windows-specific guest paths.
213
+ - synced_folder: Escape special characters in Windows-specific guest paths.
150
214
  [[GH-296](https://github.com/Parallels/vagrant-parallels/pull/296)]
151
215
 
152
-
153
216
  ## 1.7.3 (February 28, 2017)
217
+
154
218
  BUG FIXES:
155
- - Fix exceptions related to `nokogiri` gem.
219
+
220
+ - Fix exceptions related to `nokogiri` gem.
156
221
  [[GH-291](https://github.com/Parallels/vagrant-parallels/issues/291)],
157
222
  [[GH-292](https://github.com/Parallels/vagrant-parallels/issues/292)]
158
223
 
159
-
160
224
  ## 1.7.2 (December 16, 2016)
225
+
161
226
  BUG FIXES:
162
- - Fix Parallels Tools update in Linux guests. Call `ptiagent-cmd` with `--install`,
163
- not `--info`. [[GH-286](https://github.com/Parallels/vagrant-parallels/pull/286)]
164
227
 
228
+ - Fix Parallels Tools update in Linux guests. Call `ptiagent-cmd` with `--install`,
229
+ not `--info`. [[GH-286](https://github.com/Parallels/vagrant-parallels/pull/286)]
165
230
 
166
231
  ## 1.7.1 (December 7, 2016)
232
+
167
233
  FEATURES:
168
- - **Guest capability for installing Parallels Tools in Windows.** Now it is
234
+
235
+ - **Guest capability for installing Parallels Tools in Windows.** Now it is
169
236
  possible to install/upgrade Parallels Tools in Windows guests using
170
237
  the provider option `update_guest_tools`. [[GH-284](https://github.com/Parallels/vagrant-parallels/pull/284)]
171
238
 
172
239
  BUG FIXES:
173
- - Fix issues of auto-updating Parallels Tools in Linux guests with Parallels Desktop 12+.
240
+
241
+ - Fix issues of auto-updating Parallels Tools in Linux guests with Parallels Desktop 12+.
174
242
  [[GH-283](https://github.com/Parallels/vagrant-parallels/pull/283)],
175
243
  [[GH-282](https://github.com/Parallels/vagrant-parallels/pull/282)],
176
244
  [[GH-281](https://github.com/Parallels/vagrant-parallels/pull/281)]
177
245
 
178
-
179
246
  ## 1.7.0 (November 15, 2016)
247
+
180
248
  BREAKING CHANGES:
181
- - **Dropped support of Parallels Desktop 8 and 9**. These versions have
249
+
250
+ - **Dropped support of Parallels Desktop 8 and 9**. These versions have
182
251
  reached their [End-of-Life and End-of-Support](https://kb.parallels.com/eu/122533).
183
- - **Removed customization options, which were previously deprecated:** [[GH-271](https://github.com/Parallels/vagrant-parallels/pull/271)]
184
- - "use_linked_clone" - use `linked_clone` instead.
185
- - "regen_box_uuid" - use `regen_src_uuid` instead.
186
- - "optimize_power_consumption".
252
+ - **Removed customization options, which were previously deprecated:** [[GH-271](https://github.com/Parallels/vagrant-parallels/pull/271)]
253
+ - "use_linked_clone" - use `linked_clone` instead.
254
+ - "regen_box_uuid" - use `regen_src_uuid` instead.
255
+ - "optimize_power_consumption".
187
256
 
188
257
  FEATURES:
189
- - **IPv6 Private Networks:** Private networking now supports IPv6.
258
+
259
+ - **IPv6 Private Networks:** Private networking now supports IPv6.
190
260
  This only works with Parallels Desktop 12 and higher.
191
261
  [[GH-273](https://github.com/Parallels/vagrant-parallels/pull/273)]
192
262
 
193
-
194
263
  ## 1.6.3 (July 11, 2016)
264
+
195
265
  DEPRECATIONS:
196
- - The following provider options were renamed:
197
- - `regen_box_uuid` was renamed to `regen_src_uuid`
198
- - `use_linked_clone` was renamed to `linked clone`
266
+
267
+ - The following provider options were renamed:
268
+ - `regen_box_uuid` was renamed to `regen_src_uuid`
269
+ - `use_linked_clone` was renamed to `linked clone`
199
270
 
200
271
  Old names are still supported, but will be removed in `vagrant-parallels` v1.7.0.
201
272
  [[GH-260](https://github.com/Parallels/vagrant-parallels/pull/260)]
202
273
 
203
274
  IMPROVEMENTS:
204
- - Allow to package linked clones with `vagrant package`. External disk images
275
+
276
+ - Allow to package linked clones with `vagrant package`. External disk images
205
277
  will be automatically copied, so the resulted box become a full-sized
206
278
  standalone VM. [[GH-262](https://github.com/Parallels/vagrant-parallels/pull/262)]
207
- - Handle the situation when host machine is not connected to Shared network.
279
+ - Handle the situation when host machine is not connected to Shared network.
208
280
  With Parallels Desktop 11.2.1+ Vagrant will connect it automatically. With earlier
209
281
  versions, the human-readable error message will be displayed.
210
282
  [[GH-266](https://github.com/Parallels/vagrant-parallels/pull/266)]
211
- - Disable home folder sharing by default (Parallels Desktop 11+).
283
+ - Disable home folder sharing by default (Parallels Desktop 11+).
212
284
  [[GH-257](https://github.com/Parallels/vagrant-parallels/pull/257)]
213
285
 
214
286
  BUG FIXES:
215
- - action/box_unregister: Fix `#recover` method for layered environments.
287
+
288
+ - action/box_unregister: Fix `#recover` method for layered environments.
216
289
  [[GH-261](https://github.com/Parallels/vagrant-parallels/pull/261)]
217
- - action/network: Fix an exception when option "Connect Mac to
290
+ - action/network: Fix an exception when option "Connect Mac to
218
291
  this network" is disabled. [[GH-268](https://github.com/Parallels/vagrant-parallels/pull/268)]
219
- - commands/snapshot: Add retries for snapshot commands to avoid `prlctl`
292
+ - commands/snapshot: Add retries for snapshot commands to avoid `prlctl`
220
293
  failures. [[GH-259](https://github.com/Parallels/vagrant-parallels/pull/259)]
221
294
 
222
-
223
295
  ## 1.6.2 (March 23, 2016)
296
+
224
297
  BUG FIXES:
225
- - Fix unsupported action error for `vagrant snapshot` commands [[GH-254](https://github.com/Parallels/vagrant-parallels/pull/254)]
298
+
299
+ - Fix unsupported action error for `vagrant snapshot` commands [[GH-254](https://github.com/Parallels/vagrant-parallels/pull/254)]
226
300
 
227
301
  IMPROVEMENTS:
228
- - action/destroy: Destroy suspended VMs without resuming
302
+
303
+ - action/destroy: Destroy suspended VMs without resuming
229
304
 
230
305
  ## 1.6.1 (January 13, 2016)
231
306
 
232
307
  BUG FIXES:
233
- - action/import: Fix `regenerate_src_uuid` option behavior in parallel run
308
+
309
+ - action/import: Fix `regenerate_src_uuid` option behavior in parallel run
234
310
  [[GH-241](https://github.com/Parallels/vagrant-parallels/pull/241)]
235
- - action/box_unregister: Use temporary lock file to prevent early unregister
311
+ - action/box_unregister: Use temporary lock file to prevent early unregister
236
312
  in parallel run [[GH-244](https://github.com/Parallels/vagrant-parallels/pull/244)]
237
- - action/network: Fix detection of the next virtual network ID [[GH-245](https://github.com/Parallels/vagrant-parallels/pull/245)]
238
-
313
+ - action/network: Fix detection of the next virtual network ID [[GH-245](https://github.com/Parallels/vagrant-parallels/pull/245)]
239
314
 
240
315
  ## 1.6.0 (December 24, 2015)
316
+
241
317
  BREAKING CHANGES:
242
318
 
243
- - The required Vagrant version is **1.8** or higher. It is caused by changes
319
+ - The required Vagrant version is **1.8** or higher. It is caused by changes
244
320
  in Vagrant plugin model.
245
321
 
246
322
  SUPPORT FOR VAGRANT FEATURES:
247
323
 
248
- - `vagrant port`: This command displays the list of forwarded ports from the
324
+ - `vagrant port`: This command displays the list of forwarded ports from the
249
325
  guest to the host
250
- - `vagrant snapshot`: This command can be used to checkpoint and restore
326
+ - `vagrant snapshot`: This command can be used to checkpoint and restore
251
327
  point-in-time snapshots [[GH-228](https://github.com/Parallels/vagrant-parallels/pull/228)]
252
328
 
253
329
  IMPROVEMENTS:
254
330
 
255
- - action/network: Handle a list of bridged NICs [[GH-233](https://github.com/Parallels/vagrant-parallels/pull/233)]
256
- - action/package: Package machines as plain VMs, not templates [[GH-227](https://github.com/Parallels/vagrant-parallels/pull/227)]
257
- - action/resume: Provisioners are run on VM resume
258
- - config: Rename option `use_linked_clone` to `linked_clone`
259
- - driver: Cache Parallels Desktop version lookup [[GH-234](https://github.com/Parallels/vagrant-parallels/pull/234)]
260
- - guest_cap/darwin: Parallels Tools auto-update is available for OS X (Darwin)
331
+ - action/network: Handle a list of bridged NICs [[GH-233](https://github.com/Parallels/vagrant-parallels/pull/233)]
332
+ - action/package: Package machines as plain VMs, not templates [[GH-227](https://github.com/Parallels/vagrant-parallels/pull/227)]
333
+ - action/resume: Provisioners are run on VM resume
334
+ - config: Rename option `use_linked_clone` to `linked_clone`
335
+ - driver: Cache Parallels Desktop version lookup [[GH-234](https://github.com/Parallels/vagrant-parallels/pull/234)]
336
+ - guest_cap/darwin: Parallels Tools auto-update is available for OS X (Darwin)
261
337
  guests [[GH-235](https://github.com/Parallels/vagrant-parallels/pull/235)]
262
338
 
263
339
  BUG FIXES:
264
340
 
265
- - action/forward_ports: Add parallel-safe lock to avoid collisions of
341
+ - action/forward_ports: Add parallel-safe lock to avoid collisions of
266
342
  forwarded ports in multi-machine env [[GH-226](https://github.com/Parallels/vagrant-parallels/pull/226)]
267
343
 
268
344
  ## Previous Versions
@@ -78,26 +78,7 @@ module VagrantPlugins
78
78
  # @return [String] UUID of the new VM.
79
79
  def clone_vm(src_name, options = {})
80
80
  dst_name = "vagrant_temp_#{(Time.now.to_f * 1000.0).to_i}_#{rand(100000)}"
81
- src_vm = json { execute_prlctl('list', '--json', '-i', src_name) }.first
82
81
 
83
- if options[:linked] || !Util::Common.is_apfs?(src_vm.fetch('Home'))
84
- # If linked clone is an option, or path to src is not on APFS, then do the normal clone.
85
- prlctl_clone_vm(src_name, dst_name, options)
86
- else
87
- # We can use clonefile on APFS to do a fast CoW clone of the VM source and then register
88
- copy_clone_vm(src_name, dst_name, options)
89
- end
90
- read_vms[dst_name]
91
- end
92
-
93
- # Uses prlctl to clone an existing registered VM
94
- #
95
- # @param [String] src_name Name or UUID of the source VM or template.
96
- # @param [String] dst_name Name of the destination VM.
97
- # @param [<String => String>] options Options to clone virtual machine.
98
- def prlctl_clone_vm(src_name, dst_name, options = {})
99
- list_args = ['list', '--json', '-i', src_name]
100
- src_vm = json { execute_prlctl(*list_args) }.first
101
82
  args = ['clone', src_name, '--name', dst_name]
102
83
  args.concat(['--dst', options[:dst]]) if options[:dst]
103
84
 
@@ -116,41 +97,7 @@ module VagrantPlugins
116
97
  yield $1.to_i if block_given?
117
98
  end
118
99
  end
119
- end
120
-
121
- # Uses cp with clonefile flag to clone an existing registered VM
122
- #
123
- # @param [String] src_name Name or UUID of the source VM or template.
124
- # @param [String] dst_name Name of the destination VM.
125
- # @param [<String => String>] options Options to clone virtual machine.
126
- def copy_clone_vm(src_name, dst_name, options = {})
127
- list_args = ['list', '--json', '-i', src_name]
128
- src_vm = json { execute_prlctl(*list_args) }.first
129
- basepath = File.dirname(src_vm.fetch('Home')).delete_suffix('/')
130
- extension = File.basename(src_vm.fetch('Home')).delete_suffix('/').split('.').last
131
- clonepath = File.join(ENV['HOME'], "Parallels", "#{dst_name}.#{extension}")
132
- execute('cp', '-c', '-R', '-p', src_vm.fetch('Home'), clonepath)
133
-
134
- # Update config.pvs with dst_name as this is what Parallels uses when registering
135
- update_vm_name(File.join(clonepath, 'config.pvs'), dst_name)
136
-
137
- # Register the cloned path as a new VM
138
- args = ['register', clonepath]
139
- # Regenerate SourceVmUuid of the cloned VM
140
- args << '--regenerate-src-uuid' if options[:regenerate_src_uuid]
141
-
142
- # Regenerate SourceVmUuid of the cloned VM
143
- execute_prlctl(*args)
144
-
145
- # Don't need the box hanging around in Parallels
146
- execute_prlctl('unregister', src_name)
147
- end
148
-
149
- def update_vm_name(config_pvs_path, name)
150
- xml = Nokogiri::XML(File.read(config_pvs_path))
151
- elem = xml.at_xpath('//ParallelsVirtualMachine/Identification/VmName')
152
- elem.content = name
153
- File.write(config_pvs_path, xml.to_xml)
100
+ read_vms[dst_name]
154
101
  end
155
102
 
156
103
  # Compacts the specified virtual disk image
@@ -506,7 +453,8 @@ module VagrantPlugins
506
453
  linux_arm: 'prl-tools-lin-arm.iso',
507
454
  darwin: 'prl-tools-mac.iso',
508
455
  darwin_arm: 'prl-tools-mac-arm.iso',
509
- windows: 'PTIAgent.exe'
456
+ windows: 'prl-tools-win.iso',
457
+ windows_arm: 'prl-tools-win-arm.iso',
510
458
  }
511
459
  return nil unless iso_name[guest_os]
512
460
 
@@ -515,7 +463,14 @@ module VagrantPlugins
515
463
  iso_path = File.expand_path("./Contents/Resources/Tools/#{iso_name[guest_os]}",
516
464
  bundle_path.split("\n")[0])
517
465
 
518
- raise Errors::ParallelsToolsIsoNotFound, iso_path: iso_path unless File.exist?(iso_path)
466
+ unless File.exist?(iso_path)
467
+ if guest_os == :windows
468
+ # Fallback to exe tools package for older versions of Paralles
469
+ iso_path = File.expand_path("./Contents/Resources/Tools/PTIAgent.exe", bundle_path.split("\n")[0])
470
+ end
471
+
472
+ raise Errors::ParallelsToolsIsoNotFound, iso_path: iso_path unless File.exist?(iso_path)
473
+ end
519
474
 
520
475
  iso_path
521
476
  end
@@ -52,7 +52,7 @@ module VagrantPlugins
52
52
  # Starting since PD 11 only Pro and Business editions have CLI
53
53
  # functionality and can be used with Vagrant.
54
54
  edition = read_edition
55
- if !edition || !%w(any pro business).include?(edition)
55
+ if !edition || !%w(any pro business enterprise).include?(edition)
56
56
  raise Errors::ParallelsUnsupportedEdition
57
57
  end
58
58
 
@@ -33,7 +33,17 @@ module VagrantPlugins
33
33
  @@logger.debug("Mounting #{name} (#{options[:hostpath]} to #{guestpath})")
34
34
 
35
35
  mount_options, mount_uid, mount_gid = options[:plugin].capability(:mount_options, name, guest_path, options)
36
- mount_command = "mount -t #{mount_type} -o #{mount_options} #{name} #{guest_path}"
36
+ # mount_command = "mount -t #{mount_type} -o #{mount_options} #{name} #{guest_path}"
37
+ # In Parallels 20.2.0, prl_fs is removed and shares stop working with the
38
+ # `mount` command. Using prl_fsd fixes this, although there may be additional
39
+ # issues related to the removal of prl_fs.
40
+ mount_command = <<-CMD
41
+ if [ -f /usr/bin/prl_fsd ]; then
42
+ prl_fsd #{guest_path} -o nosuid,nodev,noatime,big_writes,fsname=#{name},subtype=prl_fsd --share --sf=#{name}
43
+ else
44
+ mount -t #{mount_type} -o #{mount_options} #{name} #{guest_path}
45
+ fi
46
+ CMD
37
47
 
38
48
  # Create the guest path if it doesn't exist
39
49
  machine.communicate.sudo("mkdir -p #{guest_path}")
@@ -4,16 +4,26 @@ module VagrantPlugins
4
4
  class InstallParallelsTools
5
5
  def self.install_parallels_tools(machine)
6
6
  machine.communicate.tap do |comm|
7
+ # Get the host arch. This is safe even if an older x86-only Vagrant version is used.
8
+ arch = `arch -64 uname -m`.chomp
9
+
7
10
  pti_agent_path = File.expand_path(
8
- machine.provider.driver.read_guest_tools_iso_path('windows'),
11
+ machine.provider.driver.read_guest_tools_iso_path('windows', arch),
9
12
  machine.env.root_path
10
13
  )
11
14
 
12
- remote_file = '$env:TEMP\PTIAgent.exe'
15
+ # Older versions of Parallels provided an executable file instead of an ISO image.
16
+ agent_path_is_exe = pti_agent_path.end_with?('.exe')
17
+
18
+ remote_file = "C:\\Windows\\Temp\\parallels-tools-win.#{agent_path_is_exe ? 'exe' : 'iso'}"
13
19
  comm.upload(pti_agent_path, remote_file)
14
20
 
15
21
  install_script = <<-EOH
16
- Start-Process -FilePath #{remote_file} `
22
+ $MountedISOs=Mount-DiskImage -PassThru #{remote_file}
23
+ $Volume=$MountedISOs | Get-Volume
24
+ $DriveLetter=$Volume.DriveLetter
25
+
26
+ Start-Process -FilePath ($DriveLetter + ":/PTAgent.exe") `
17
27
  -ArgumentList "/install_silent" `
18
28
  -Verb RunAs `
19
29
  -Wait
@@ -25,6 +35,17 @@ module VagrantPlugins
25
35
  }
26
36
  EOH
27
37
 
38
+ if agent_path_is_exe
39
+ install_script = <<-EOH
40
+ Start-Process -FilePath #{remote_file} `
41
+ -ArgumentList "/install_silent" `
42
+ -Verb RunAs `
43
+ -Wait
44
+ EOH
45
+ else
46
+ cleanup_script = "Dismount-DiskImage -ImagePath #{remote_file}\n" + cleanup_script
47
+ end
48
+
28
49
  comm.execute(install_script)
29
50
  comm.execute(cleanup_script)
30
51
  end
@@ -1,5 +1,3 @@
1
- require 'shellwords'
2
-
3
1
  module VagrantPlugins
4
2
  module Parallels
5
3
  module Util
@@ -11,23 +9,6 @@ module VagrantPlugins
11
9
  return !machine.box.nil? && !!Dir.glob(machine.box.directory.join('*.macvm')).first
12
10
  end
13
11
 
14
- # Determines if the box directory is on an APFS filesystem
15
- def self.is_apfs?(path, &block)
16
- output = {stdout: '', stderr: ''}
17
- df_command = %w[df -T apfs]
18
- df_command << Shellwords.escape(path)
19
- execute(*df_command, &block).exit_code == 0
20
- end
21
-
22
- private
23
-
24
- def self.execute(*command, &block)
25
- command << { notify: [:stdout, :stderr] }
26
-
27
- Vagrant::Util::Busy.busy(lambda {}) do
28
- Vagrant::Util::Subprocess.execute(*command, &block)
29
- end
30
- end
31
12
  end
32
13
  end
33
14
  end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Parallels
3
- VERSION = '2.4.1'
3
+ VERSION = '2.4.4'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-parallels
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 2.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikhail Zholobov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-10-16 00:00:00.000000000 Z
12
+ date: 2025-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -59,28 +59,28 @@ dependencies:
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: 1.3.0
62
+ version: 2.0.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: 1.3.0
69
+ version: 2.0.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: webrick
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: 1.8.0
76
+ version: 1.9.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 1.8.0
83
+ version: 1.9.0
84
84
  description: Enables Vagrant to manage Parallels virtual machines.
85
85
  email:
86
86
  - legal90@gmail.com
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  - !ruby/object:Gem::Version
168
168
  version: 1.3.6
169
169
  requirements: []
170
- rubygems_version: 3.4.10
170
+ rubygems_version: 3.5.3
171
171
  signing_key:
172
172
  specification_version: 4
173
173
  summary: Parallels provider for Vagrant.