vagrant-vmware-desktop 3.0.1 → 3.0.2
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 +4 -4
- data/lib/vagrant-vmware-desktop/action/base_mac_to_ip.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/boot.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/check_existing_network.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/check_vmware.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/checkpoint.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/clear_shared_folders.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/common.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/compatibility.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/created.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/destroy.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/discard_suspended_state.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/export.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/fix_old_machine_id.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/forward_ports.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/halt.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/import.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/machine_lock.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/message_already_running.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/message_not_created.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/message_not_running.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/network.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/package_vagrantfile.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/prepare_forwarded_port_collision_params.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/prepare_nfs_settings.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/prepare_synced_folder_cleanup.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/prune_forwarded_ports.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/prune_nfs_exports.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/running.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/set_display_name.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/share_folders.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/snapshot_delete.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/snapshot_restore.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/snapshot_save.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/suspend.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/suspended.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/vmx_modify.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/wait_for_address.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/wait_for_communicator_compat.rb +3 -0
- data/lib/vagrant-vmware-desktop/action/wait_for_vmx_halt.rb +3 -0
- data/lib/vagrant-vmware-desktop/action.rb +3 -0
- data/lib/vagrant-vmware-desktop/cap/disk.rb +3 -0
- data/lib/vagrant-vmware-desktop/cap/provider.rb +3 -0
- data/lib/vagrant-vmware-desktop/cap/snapshot.rb +3 -0
- data/lib/vagrant-vmware-desktop/checkpoint_client.rb +3 -0
- data/lib/vagrant-vmware-desktop/config.rb +3 -0
- data/lib/vagrant-vmware-desktop/constants.rb +3 -0
- data/lib/vagrant-vmware-desktop/driver/base.rb +64 -9
- data/lib/vagrant-vmware-desktop/driver.rb +3 -0
- data/lib/vagrant-vmware-desktop/errors.rb +3 -0
- data/lib/vagrant-vmware-desktop/guest_cap/linux/mount_vmware_shared_folder.rb +3 -0
- data/lib/vagrant-vmware-desktop/guest_cap/linux/verify_vmware_hgfs.rb +3 -0
- data/lib/vagrant-vmware-desktop/helper/lock.rb +3 -0
- data/lib/vagrant-vmware-desktop/helper/routing_table.rb +3 -0
- data/lib/vagrant-vmware-desktop/helper/vagrant_utility.rb +3 -0
- data/lib/vagrant-vmware-desktop/plugin.rb +3 -0
- data/lib/vagrant-vmware-desktop/provider.rb +3 -0
- data/lib/vagrant-vmware-desktop/setup_plugin.rb +3 -0
- data/lib/vagrant-vmware-desktop/synced_folder.rb +3 -0
- data/lib/vagrant-vmware-desktop.rb +3 -0
- data/locales/en.yml +21 -6
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba545200e0b56b039bbb5f2e562b6b95bc0101cfdfc2b1b8bb7112c03d4bc163
|
4
|
+
data.tar.gz: 2f06179843c86955a7eb81170090daa184b2fb54aedf96bd13c408366fd2c819
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3c33c80806c0519d5f104456efe882e2d8d81d3392b1c36b9e3c23d4bd3344779a629c0f03e3654406af12ac7e9db0d00803253e7d2f4373bd63e8c493811a0
|
7
|
+
data.tar.gz: 3118c1fad9e990dd7fc81d0ebf2f7be35c5ac8dd1afe6e550c060488495e71d820b4a916a56ca2235e468e76f8d07444c6200015109bb5af157cd9270140072f
|
@@ -1,3 +1,6 @@
|
|
1
|
+
# Copyright (c) HashiCorp, Inc.
|
2
|
+
# SPDX-License-Identifier: MPL-2.0
|
3
|
+
|
1
4
|
require "fileutils"
|
2
5
|
require "ipaddr"
|
3
6
|
require "pathname"
|
@@ -18,9 +21,16 @@ module HashiCorp
|
|
18
21
|
# some shared common helpers.
|
19
22
|
class Base
|
20
23
|
|
24
|
+
SOURCE_VMXPATH_FILE_NAME = "source-vmx"
|
25
|
+
SOURCE_SNAPSHOT_FILE_NAME = "source-snapshot"
|
26
|
+
|
21
27
|
# Default NAT device when detection is unavailable
|
22
28
|
DEFAULT_NAT_DEVICE = "vmnet8".freeze
|
23
29
|
|
30
|
+
# Default NIC device when setting up network
|
31
|
+
DEFAULT_NIC_DEVICE="e1000e".freeze
|
32
|
+
|
33
|
+
# Number of bytes in disk sector
|
24
34
|
SECTOR_TO_BYTES = 512.freeze
|
25
35
|
|
26
36
|
# Vagrant utility version requirement which must be satisfied to properly
|
@@ -170,6 +180,29 @@ module HashiCorp
|
|
170
180
|
end
|
171
181
|
end
|
172
182
|
|
183
|
+
# Product type value used by vmrun based on platform and license
|
184
|
+
#
|
185
|
+
# @return [String] fusion, ws, or player
|
186
|
+
def product_type
|
187
|
+
return @product_type if @product_type
|
188
|
+
|
189
|
+
# If the license is standard, the type is player
|
190
|
+
if standard?
|
191
|
+
return @product_type = "player"
|
192
|
+
end
|
193
|
+
|
194
|
+
case @product_name.downcase
|
195
|
+
when "workstation"
|
196
|
+
@product_type = "ws"
|
197
|
+
when "fusion"
|
198
|
+
@product_type = "fusion"
|
199
|
+
else
|
200
|
+
@product_type = "player"
|
201
|
+
end
|
202
|
+
|
203
|
+
@product_type
|
204
|
+
end
|
205
|
+
|
173
206
|
# @return [Boolean] using standard license
|
174
207
|
def standard?
|
175
208
|
!professional?
|
@@ -312,14 +345,24 @@ module HashiCorp
|
|
312
345
|
linked = false
|
313
346
|
end
|
314
347
|
|
348
|
+
# Sanity test
|
349
|
+
if !destination.directory?
|
350
|
+
raise Errors::CloneFolderNotFolder, path: destination.to_s
|
351
|
+
end
|
352
|
+
|
315
353
|
if linked
|
316
354
|
@logger.info("Cloning machine using VMware linked clones.")
|
317
355
|
# The filename of the resulting VMX
|
318
356
|
destination_vmx = destination.join(source_vmx.basename)
|
319
357
|
|
320
358
|
begin
|
359
|
+
snap_name = destination.basename
|
360
|
+
vmrun("snapshot", host_path(source_vmx), snap_name)
|
321
361
|
# Do a linked clone!
|
322
|
-
vmrun("clone", host_path(source_vmx), host_path(destination_vmx), "linked")
|
362
|
+
vmrun("clone", host_path(source_vmx), host_path(destination_vmx), "linked", "-snapshot=#{snap_name}")
|
363
|
+
# store the snapshot name
|
364
|
+
File.write(destination.join(SOURCE_SNAPSHOT_FILE_NAME).to_s, snap_name)
|
365
|
+
File.write(destination.join(SOURCE_VMXPATH_FILE_NAME).to_s, source_vmx.to_s)
|
323
366
|
# Common cleanup
|
324
367
|
rescue Errors::VMRunError => e
|
325
368
|
# Check if this version of VMware doesn't support linked clones
|
@@ -336,10 +379,6 @@ module HashiCorp
|
|
336
379
|
|
337
380
|
if !destination_vmx
|
338
381
|
@logger.info("Cloning machine using direct copy.")
|
339
|
-
# Sanity test
|
340
|
-
if !destination.directory?
|
341
|
-
raise Errors::CloneFolderNotFolder, path: destination.to_s
|
342
|
-
end
|
343
382
|
|
344
383
|
# Just copy over the files within the folder of the source
|
345
384
|
@logger.info("Cloning VM to #{destination}")
|
@@ -406,6 +445,21 @@ module HashiCorp
|
|
406
445
|
def delete
|
407
446
|
@logger.info("Deleting VM: #{@vm_dir}")
|
408
447
|
begin
|
448
|
+
snap_file = @vmx_path.parent.join(SOURCE_SNAPSHOT_FILE_NAME)
|
449
|
+
source_vmx_file = @vmx_path.parent.join(SOURCE_VMXPATH_FILE_NAME)
|
450
|
+
if snap_file.exist? && source_vmx_file.exist?
|
451
|
+
source_vmx = File.read(source_vmx_file.to_s)
|
452
|
+
snap_name = File.read(snap_file.to_s)
|
453
|
+
@logger.info("source snapshot name found, deleting snapshot (#{snap_name})")
|
454
|
+
begin
|
455
|
+
vmrun("deleteSnapshot", source_vmx, snap_name, "andDeleteChildren")
|
456
|
+
rescue Errors::VMRunError => err
|
457
|
+
# If we failed to remove the source snapshot, just log it and move on
|
458
|
+
@logger.warn("failed to remove source clone snapshot '#{snap_name}': #{err}")
|
459
|
+
end
|
460
|
+
else
|
461
|
+
@logger.debug("source snapshot information not found, ignoring")
|
462
|
+
end
|
409
463
|
@vm_dir.rmtree
|
410
464
|
rescue Errno::ENOTEMPTY
|
411
465
|
FileUtils.rm_rf(@vm_dir.to_s)
|
@@ -792,7 +846,7 @@ module HashiCorp
|
|
792
846
|
|
793
847
|
vmx["#{key}.present"] = "TRUE"
|
794
848
|
vmx["#{key}.connectiontype"] = adapter[:type].to_s
|
795
|
-
vmx["#{key}.virtualdev"] =
|
849
|
+
vmx["#{key}.virtualdev"] = DEFAULT_NIC_DEVICE
|
796
850
|
|
797
851
|
if adapter[:mac_address]
|
798
852
|
vmx["#{key}.addresstype"] = "static"
|
@@ -913,7 +967,7 @@ module HashiCorp
|
|
913
967
|
|
914
968
|
# This is called to do any message suppression if we need to.
|
915
969
|
def suppress_messages
|
916
|
-
if
|
970
|
+
if @product_name.downcase == "fusion"
|
917
971
|
contents = <<-DATA
|
918
972
|
<?xml version="1.0" encoding="UTF-8"?>
|
919
973
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
@@ -1210,7 +1264,7 @@ module HashiCorp
|
|
1210
1264
|
if VagrantVMwareDesktop.wsl?
|
1211
1265
|
r_path = VagrantVMwareDesktop.windows_to_wsl_path(r_path)
|
1212
1266
|
end
|
1213
|
-
result = Vagrant::Util::Subprocess.execute(r_path, *command)
|
1267
|
+
result = Vagrant::Util::Subprocess.execute(r_path, *command.map(&:to_s))
|
1214
1268
|
if result.exit_code != 0
|
1215
1269
|
raise Errors::VMExecError,
|
1216
1270
|
:executable => executable.to_s,
|
@@ -1231,7 +1285,8 @@ module HashiCorp
|
|
1231
1285
|
# This executes the "vmrun" command with the given arguments.
|
1232
1286
|
def vmrun(*command)
|
1233
1287
|
begin
|
1234
|
-
|
1288
|
+
cmd = ["-T", product_type] + command
|
1289
|
+
vmexec(@vmrun_path, *cmd)
|
1235
1290
|
rescue Errors::VMExecError => e
|
1236
1291
|
raise Errors::VMRunError,
|
1237
1292
|
:command => e.extra_data[:command],
|
data/locales/en.yml
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
# Copyright (c) HashiCorp, Inc.
|
2
|
+
# SPDX-License-Identifier: MPL-2.0
|
3
|
+
|
1
4
|
en:
|
2
5
|
hashicorp:
|
3
6
|
vagrant_vmware_desktop:
|
@@ -163,7 +166,9 @@ en:
|
|
163
166
|
to occur across several attempts, it may indicate a problem with the
|
164
167
|
base box being used. If this error occurs across multiple boxes, it
|
165
168
|
may indicate a VMware configuration problem. Persistent problems can
|
166
|
-
be reported to
|
169
|
+
be reported to:
|
170
|
+
|
171
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
167
172
|
clone_folder_exists: |-
|
168
173
|
The clone folder that Vagrant is attempting to use to import
|
169
174
|
the VMware box has existed repeatedly 10 times while generating
|
@@ -172,7 +177,9 @@ en:
|
|
172
177
|
to your system.
|
173
178
|
clone_folder_not_folder: |-
|
174
179
|
The clone directory given is not a directory. This is an internal
|
175
|
-
error and should be reported as a bug to
|
180
|
+
error and should be reported as a bug to:
|
181
|
+
|
182
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
176
183
|
|
177
184
|
Path: %{path}
|
178
185
|
disk_not_created: Disk %{name} not created!
|
@@ -536,7 +543,9 @@ en:
|
|
536
543
|
service key file. This error can occur if the Vagrant VMware Utility
|
537
544
|
has not yet been installed, or if it was installed incorrectly. If
|
538
545
|
this error persists after running the Vagrant VMware Utility installer
|
539
|
-
again, please
|
546
|
+
again, please open a new issue at:
|
547
|
+
|
548
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
540
549
|
|
541
550
|
Information about the Vagrant VMware Utility, including installation
|
542
551
|
instruction, can be found here:
|
@@ -550,7 +559,9 @@ en:
|
|
550
559
|
service key file. This error can occur if the Vagrant VMware Utility
|
551
560
|
has not yet been installed, or if it was installed incorrectly. If
|
552
561
|
this error persists after running the Vagrant VMware Utility installer
|
553
|
-
again, please
|
562
|
+
again, please open a new issue at:
|
563
|
+
|
564
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
554
565
|
|
555
566
|
Information about the Vagrant VMware Utility, including installation
|
556
567
|
instruction, can be found here:
|
@@ -583,11 +594,15 @@ en:
|
|
583
594
|
driver_api_request_unexpected_error: |-
|
584
595
|
Vagrant encountered an unexpected communications error with the
|
585
596
|
Vagrant VMware Utility driver. Please try to run the command
|
586
|
-
again. If this error persists, please
|
597
|
+
again. If this error persists, please open a new issue at:
|
598
|
+
|
599
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
587
600
|
driver_api_invalid_response: |-
|
588
601
|
Vagrant failed to properly process a result from the Vagrant VMware
|
589
602
|
Utility driver. Please try to run the command again. If this error
|
590
|
-
persists, please
|
603
|
+
persists, please open a new issue at:
|
604
|
+
|
605
|
+
https://github.com/hashicorp/vagrant-vmware-desktop/issues
|
591
606
|
driver_api_port_forward_list_error: |-
|
592
607
|
Failed to receive list of currently used VMware port forwards. The
|
593
608
|
reported cause for the error:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-vmware-desktop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vagrant Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Enables Vagrant to power VMware Workstation/Fusion machines.
|
14
14
|
email: vagrant@hashicorp.com
|
@@ -95,7 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.3.6
|
97
97
|
requirements: []
|
98
|
-
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.7.6
|
99
100
|
signing_key:
|
100
101
|
specification_version: 4
|
101
102
|
summary: Enables Vagrant to power VMware Workstation/Fusion machines.
|