vagrant-vmware-desktop 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|