vagrant-parallels 2.2.5 → 2.3.0
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/CHANGELOG.md +17 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/vagrant-parallels/action/box_register.rb +3 -6
- data/lib/vagrant-parallels/action/import.rb +3 -1
- data/lib/vagrant-parallels/action/prepare_clone_snapshot.rb +7 -0
- data/lib/vagrant-parallels/action/prepare_nfs_settings.rb +1 -1
- data/lib/vagrant-parallels/action/sane_defaults.rb +5 -0
- data/lib/vagrant-parallels/driver/base.rb +18 -5
- data/lib/vagrant-parallels/driver/meta.rb +2 -1
- data/lib/vagrant-parallels/plugin.rb +1 -0
- data/lib/vagrant-parallels/util/common.rb +15 -0
- data/lib/vagrant-parallels/version.rb +1 -1
- data/locales/en.yml +1 -1
- metadata +21 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cc3b37f94bef78ed214b98add9ae9814d6cad49650e5016fce26c7b7641eaaa
|
4
|
+
data.tar.gz: 0e1ffee3b192374a3acc9b36438334605702e7c5b472d1e47857a31acd5c7196
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f03a6bc1a95f28f95a736d3ce59dc52edb00bd609780e24ef26b38090ef32421ef8db5f362cd9692954aa88292e18af89cd884ea423f9a244d5932cdfff1749d
|
7
|
+
data.tar.gz: 86467aba98c5870183d5da52a0b688ca28f5f06eb5160d983ea26d80a582a20108958e0b54c2c4ee14adb8f3740608ffeaf4f84debdbafb614a79da75c9f8e5b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
## 2.3.0 (March 22, 2022)
|
2
|
+
IMPROVEMENTS:
|
3
|
+
- Support fetching the VM IP using prlctl
|
4
|
+
[[GH-434](https://github.com/Parallels/vagrant-parallels/pull/434)].
|
5
|
+
- Update gem dependensies and support Ruby 3.0
|
6
|
+
[[GH-437](https://github.com/Parallels/vagrant-parallels/pull/437)],
|
7
|
+
[[GH-439](https://github.com/Parallels/vagrant-parallels/pull/439)].
|
8
|
+
|
9
|
+
BUG FIXES:
|
10
|
+
- Fixes SSH access to `.macvm` VMs on Macs with Apple M-series chip
|
11
|
+
[[GH-435](https://github.com/Parallels/vagrant-parallels/issues/435)]
|
12
|
+
|
13
|
+
## 2.2.6 (December 19, 2022)
|
14
|
+
BUG FIXES:
|
15
|
+
- Fix the macOS VMs support on ARM-based Mac
|
16
|
+
[[GH-429](https://github.com/Parallels/vagrant-parallels/pull/429)]
|
17
|
+
|
1
18
|
## 2.2.5 (February 22, 2022)
|
2
19
|
BUG FIXES:
|
3
20
|
- Fixed Parallels Tool installation on M1 hosts with arm64
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -53,6 +53,6 @@ please report it on the [Issue Tracker](https://github.com/Parallels/vagrant-par
|
|
53
53
|
|
54
54
|
* Author: Youssef Shahin <yshahin@gmail.com>
|
55
55
|
* Author: Mikhail Zholobov <legal90@gmail.com>
|
56
|
-
* Copyright 2013-
|
56
|
+
* Copyright 2013-2023, Parallels International GmbH.
|
57
57
|
|
58
58
|
Vagrant Parallels Provider is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
@@ -39,13 +39,13 @@ module VagrantPlugins
|
|
39
39
|
protected
|
40
40
|
|
41
41
|
def box_path(env)
|
42
|
-
|
42
|
+
res = Dir.glob(env[:machine].box.directory.join('*.{pvm,macvm}')).first
|
43
43
|
|
44
|
-
if !
|
44
|
+
if !res
|
45
45
|
raise Errors::BoxImageNotFound, name: env[:machine].box.name
|
46
46
|
end
|
47
47
|
|
48
|
-
|
48
|
+
res
|
49
49
|
end
|
50
50
|
|
51
51
|
def box_id(env)
|
@@ -120,9 +120,6 @@ module VagrantPlugins
|
|
120
120
|
f.write(env[:clone_id])
|
121
121
|
end
|
122
122
|
|
123
|
-
# Convert template to VM (compatibility with old-styled boxes)
|
124
|
-
env[:machine].provider.driver.execute_prlctl(
|
125
|
-
'set', env[:clone_id], '--template', 'off')
|
126
123
|
end
|
127
124
|
end
|
128
125
|
end
|
@@ -4,6 +4,7 @@ module VagrantPlugins
|
|
4
4
|
module Parallels
|
5
5
|
module Action
|
6
6
|
class Import
|
7
|
+
include VagrantPlugins::Parallels::Util::Common
|
7
8
|
@@lock = Mutex.new
|
8
9
|
|
9
10
|
def initialize(app, env)
|
@@ -24,7 +25,8 @@ module VagrantPlugins
|
|
24
25
|
end
|
25
26
|
|
26
27
|
# Linked clones are supported only for PD 11 and higher
|
27
|
-
|
28
|
+
# Linked clones are not supported in macvms
|
29
|
+
if env[:machine].provider_config.linked_clone and !is_macvm(env)
|
28
30
|
# Linked clone creation should not be concurrent [GH-206]
|
29
31
|
options[:snapshot_id] = env[:clone_snapshot_id]
|
30
32
|
options[:linked] = true
|
@@ -6,6 +6,7 @@ module VagrantPlugins
|
|
6
6
|
module Parallels
|
7
7
|
module Action
|
8
8
|
class PrepareCloneSnapshot
|
9
|
+
include VagrantPlugins::Parallels::Util::Common
|
9
10
|
@@lock = Mutex.new
|
10
11
|
|
11
12
|
def initialize(app, env)
|
@@ -19,6 +20,12 @@ module VagrantPlugins
|
|
19
20
|
return @app.call(env)
|
20
21
|
end
|
21
22
|
|
23
|
+
if is_macvm(env)
|
24
|
+
#Ignore, since macvms doesn't support snapshot creation
|
25
|
+
@logger.info('Snapshot creation is not supported yet for macOS ARM Guests, skip snapshot preparing')
|
26
|
+
return @app.call(env)
|
27
|
+
end
|
28
|
+
|
22
29
|
# If we're not doing a linked clone, snapshots don't matter
|
23
30
|
if !env[:machine].provider_config.linked_clone
|
24
31
|
return @app.call(env)
|
@@ -37,7 +37,7 @@ module VagrantPlugins
|
|
37
37
|
# The ! indicates that this method modifies its argument.
|
38
38
|
def add_ips_to_env!(env)
|
39
39
|
host_ip = @machine.provider.driver.read_shared_interface[:ip]
|
40
|
-
guest_ip = @machine.provider.driver.
|
40
|
+
guest_ip = @machine.provider.driver.ssh_ip
|
41
41
|
|
42
42
|
# If we couldn't determine either guest's or host's IP, then
|
43
43
|
# it is probably a bug. Display an appropriate error message.
|
@@ -4,6 +4,8 @@ module VagrantPlugins
|
|
4
4
|
module Parallels
|
5
5
|
module Action
|
6
6
|
class SaneDefaults
|
7
|
+
include VagrantPlugins::Parallels::Util::Common
|
8
|
+
|
7
9
|
def initialize(app, env)
|
8
10
|
@logger = Log4r::Logger.new('vagrant_parallels::action::sanedefaults')
|
9
11
|
@app = app
|
@@ -27,6 +29,9 @@ module VagrantPlugins
|
|
27
29
|
private
|
28
30
|
|
29
31
|
def default_settings
|
32
|
+
# Options defined below are not supported for `*.macvm` VMs
|
33
|
+
return {} if is_macvm(@env)
|
34
|
+
|
30
35
|
{
|
31
36
|
tools_autoupdate: 'no',
|
32
37
|
on_shutdown: 'close',
|
@@ -403,11 +403,12 @@ module VagrantPlugins
|
|
403
403
|
end
|
404
404
|
end
|
405
405
|
|
406
|
-
# Returns an IP of the virtual machine
|
407
|
-
# adapter is configured for this VM
|
406
|
+
# Returns an IP of the virtual machine fetched from the DHCP lease file.
|
407
|
+
# It requires that Shared network adapter is configured for this VM
|
408
|
+
# and it obtains an IP via DHCP.
|
408
409
|
#
|
409
410
|
# @return [String] IP address leased by DHCP server in "Shared" network
|
410
|
-
def
|
411
|
+
def read_guest_ip_dhcp
|
411
412
|
mac_addr = read_mac_address.downcase
|
412
413
|
leases_file = '/Library/Preferences/Parallels/parallels_dhcp_leases'
|
413
414
|
leases = {}
|
@@ -430,6 +431,15 @@ module VagrantPlugins
|
|
430
431
|
leases.max_by { |_ip, lease_time| lease_time }.first
|
431
432
|
end
|
432
433
|
|
434
|
+
# Returns an IP of the virtual machine fetched from prlctl.
|
435
|
+
#
|
436
|
+
# @return [String] IP address returned by `prlctl list -f` command
|
437
|
+
def read_guest_ip_prlctl
|
438
|
+
vm_info = json { execute_prlctl('list', @uuid, '--full', '--json') }
|
439
|
+
ip = vm_info.first.fetch('ip_configured', nil)
|
440
|
+
ip == '-' ? nil : ip
|
441
|
+
end
|
442
|
+
|
433
443
|
# Returns path to the Parallels Tools ISO file.
|
434
444
|
#
|
435
445
|
# @param [String] guest_os Guest os type: "linux", "darwin" or "windows"
|
@@ -757,11 +767,14 @@ module VagrantPlugins
|
|
757
767
|
end
|
758
768
|
end
|
759
769
|
|
760
|
-
# Reads the SSH IP of this VM
|
770
|
+
# Reads the SSH IP of this VM from DHCP lease file or from `prlctl list`
|
771
|
+
# command - whatever returns a non-empty result.
|
772
|
+
# The method with DHCP does not work for *.macvm VMs on Apple M-series Macs,
|
773
|
+
# so we try both sources here.
|
761
774
|
#
|
762
775
|
# @return [String] IP address to use for SSH connection to the VM.
|
763
776
|
def ssh_ip
|
764
|
-
|
777
|
+
read_guest_ip_dhcp || read_guest_ip_prlctl
|
765
778
|
end
|
766
779
|
|
767
780
|
# Reads the SSH port of this VM.
|
@@ -87,7 +87,8 @@ module VagrantPlugins
|
|
87
87
|
:read_bridged_interfaces,
|
88
88
|
:read_current_snapshot,
|
89
89
|
:read_forwarded_ports,
|
90
|
-
:
|
90
|
+
:read_guest_ip_dhcp,
|
91
|
+
:read_guest_ip_prlctl,
|
91
92
|
:read_guest_tools_state,
|
92
93
|
:read_guest_tools_iso_path,
|
93
94
|
:read_host_only_interfaces,
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Parallels
|
3
|
+
module Util
|
4
|
+
module Common
|
5
|
+
|
6
|
+
# Determines whether the VM's box contains a macOS guest for an Apple Silicon host.
|
7
|
+
# In this case the image file ends with '.macvm' instead of '.pvm'
|
8
|
+
def is_macvm(env)
|
9
|
+
return !!Dir.glob(env[:machine].box.directory.join('*.macvm')).first
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/locales/en.yml
CHANGED
@@ -16,7 +16,7 @@ en:
|
|
16
16
|
Box VM config: "%{config}"
|
17
17
|
|
18
18
|
box_image_not_found: |-
|
19
|
-
Parallels VM image (*.pvm) could not be found in the directory of
|
19
|
+
Parallels VM image (*.pvm or *.macvm) could not be found in the directory of
|
20
20
|
'%{name}' box. This is usually because the image has been removed manually.
|
21
21
|
Please remove the box, re-add it, and try again.
|
22
22
|
dhcp_leases_file_not_accessible: |-
|
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
|
+
version: 2.3.0
|
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:
|
12
|
+
date: 2023-03-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 3.
|
48
|
+
version: '3.11'
|
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: 3.
|
55
|
+
version: '3.11'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec-its
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,9 +67,23 @@ dependencies:
|
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 1.3.0
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: webrick
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.8.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.8.0
|
70
84
|
description: Enables Vagrant to manage Parallels virtual machines.
|
71
85
|
email:
|
72
|
-
-
|
86
|
+
- legal90@gmail.com
|
73
87
|
- yshahin@gmail.com
|
74
88
|
executables: []
|
75
89
|
extensions: []
|
@@ -128,6 +142,7 @@ files:
|
|
128
142
|
- lib/vagrant-parallels/plugin.rb
|
129
143
|
- lib/vagrant-parallels/provider.rb
|
130
144
|
- lib/vagrant-parallels/synced_folder.rb
|
145
|
+
- lib/vagrant-parallels/util/common.rb
|
131
146
|
- lib/vagrant-parallels/util/compile_forwarded_ports.rb
|
132
147
|
- lib/vagrant-parallels/util/unix_mount_helpers.rb
|
133
148
|
- lib/vagrant-parallels/version.rb
|
@@ -151,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
166
|
- !ruby/object:Gem::Version
|
152
167
|
version: 1.3.6
|
153
168
|
requirements: []
|
154
|
-
rubygems_version: 3.
|
169
|
+
rubygems_version: 3.2.33
|
155
170
|
signing_key:
|
156
171
|
specification_version: 4
|
157
172
|
summary: Parallels provider for Vagrant.
|