vagrant-parallels 1.6.2 → 1.6.3

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/LICENSE.txt +1 -1
  4. data/lib/vagrant-parallels/action.rb +7 -0
  5. data/lib/vagrant-parallels/action/box_unregister.rb +3 -0
  6. data/lib/vagrant-parallels/action/check_shared_interface.rb +29 -0
  7. data/lib/vagrant-parallels/action/clear_forwarded_ports.rb +3 -2
  8. data/lib/vagrant-parallels/action/export.rb +69 -6
  9. data/lib/vagrant-parallels/action/forward_ports.rb +1 -1
  10. data/lib/vagrant-parallels/action/network.rb +8 -10
  11. data/lib/vagrant-parallels/action/sane_defaults.rb +2 -1
  12. data/lib/vagrant-parallels/cap.rb +0 -1
  13. data/lib/vagrant-parallels/config.rb +18 -8
  14. data/lib/vagrant-parallels/driver/base.rb +68 -24
  15. data/lib/vagrant-parallels/driver/meta.rb +3 -1
  16. data/lib/vagrant-parallels/driver/pd_10.rb +36 -39
  17. data/lib/vagrant-parallels/driver/pd_11.rb +4 -0
  18. data/lib/vagrant-parallels/driver/pd_8.rb +31 -27
  19. data/lib/vagrant-parallels/errors.rb +10 -2
  20. data/lib/vagrant-parallels/version.rb +1 -1
  21. data/locales/en.yml +25 -9
  22. metadata +4 -29
  23. data/.gitignore +0 -34
  24. data/.travis.yml +0 -10
  25. data/CONTRIBUTING.md +0 -80
  26. data/Gemfile +0 -14
  27. data/Rakefile +0 -21
  28. data/debug.log +0 -1237
  29. data/tasks/acceptance.rake +0 -28
  30. data/tasks/bundler.rake +0 -3
  31. data/tasks/test.rake +0 -8
  32. data/test/acceptance/base.rb +0 -2
  33. data/test/acceptance/provider/linked_clone_spec.rb +0 -30
  34. data/test/acceptance/provider/snapshot_spec.rb +0 -63
  35. data/test/acceptance/shared/context_parallels.rb +0 -2
  36. data/test/acceptance/skeletons/linked_clone/Vagrantfile +0 -7
  37. data/test/unit/base.rb +0 -24
  38. data/test/unit/cap_test.rb +0 -96
  39. data/test/unit/config_test.rb +0 -91
  40. data/test/unit/driver/pd_10_test.rb +0 -31
  41. data/test/unit/driver/pd_8_test.rb +0 -10
  42. data/test/unit/driver/pd_9_test.rb +0 -29
  43. data/test/unit/support/shared/parallels_context.rb +0 -230
  44. data/test/unit/support/shared/pd_driver_examples.rb +0 -339
  45. data/test/unit/synced_folder_test.rb +0 -49
  46. data/vagrant-parallels.gemspec +0 -59
  47. data/vagrant-spec.config.example.rb +0 -10
@@ -1,28 +0,0 @@
1
- namespace :acceptance do
2
- desc 'shows components that can be tested separately'
3
- task :components do
4
- exec('vagrant-spec components')
5
- end
6
-
7
- desc 'runs acceptance tests using vagrant-spec'
8
- task :run do
9
- components = %w(
10
- basic
11
- linked_clone
12
- network/forwarded_port
13
- network/private_network
14
- snapshot
15
- synced_folder
16
- synced_folder/nfs
17
- synced_folder/rsync
18
- provisioner/shell
19
- provisioner/chef-solo
20
- package
21
- ).map{ |s| "provider/parallels/#{s}" }
22
-
23
- command = "vagrant-spec test --components=#{components.join(' ')}"
24
- puts command
25
- puts
26
- exec(command)
27
- end
28
- end
data/tasks/bundler.rake DELETED
@@ -1,3 +0,0 @@
1
- # This installs the tasks that help with gem creation and
2
- # publishing.
3
- Bundler::GemHelper.install_tasks
data/tasks/test.rake DELETED
@@ -1,8 +0,0 @@
1
- require 'rake/testtask'
2
- require 'rspec/core/rake_task'
3
-
4
- namespace :test do
5
- RSpec::Core::RakeTask.new(:unit) do |t|
6
- t.pattern = 'test/unit/**/*_test.rb'
7
- end
8
- end
@@ -1,2 +0,0 @@
1
- require 'vagrant-spec/acceptance'
2
- require_relative 'shared/context_parallels'
@@ -1,30 +0,0 @@
1
- # This tests that VM is up as a linked clone
2
- shared_examples 'provider/linked_clone' do |provider, options|
3
- if !options[:box]
4
- raise ArgumentError,
5
- "box option must be specified for provider: #{provider}"
6
- end
7
-
8
- include_context 'acceptance'
9
-
10
- before do
11
- environment.skeleton('linked_clone')
12
- assert_execute('vagrant', 'box', 'add', 'basic', options[:box])
13
- end
14
-
15
- after do
16
- assert_execute('vagrant', 'destroy', '--force')
17
- end
18
-
19
- it 'creates machine as linked clone' do
20
- status('Test: machine is created as a linked clone')
21
- result = execute('vagrant', 'up', "--provider=#{provider}")
22
- expect(result).to exit_with(0)
23
- expect(result.stdout).to match(/linked clone/)
24
-
25
- status('Test: machine is available by ssh')
26
- result = execute('vagrant', 'ssh', '-c', 'echo foo')
27
- expect(result).to exit_with(0)
28
- expect(result.stdout).to match(/foo\n$/)
29
- end
30
- end
@@ -1,63 +0,0 @@
1
- shared_examples 'provider/snapshot' do |provider, options|
2
- if !options[:box]
3
- raise ArgumentError,
4
- "box option must be specified for provider: #{provider}"
5
- end
6
-
7
- include_context 'acceptance'
8
-
9
- before do
10
- assert_execute('vagrant', 'box', 'add', 'box', options[:box])
11
- assert_execute('vagrant', 'init', 'box')
12
- assert_execute('vagrant', 'up', "--provider=#{provider}")
13
- end
14
-
15
- after do
16
- assert_execute('vagrant', 'destroy', '--force')
17
- end
18
-
19
- it 'can save, list and delete machine snapshots' do
20
- status('Test: two snapshots could be created')
21
- assert_execute('vagrant', 'snapshot', 'save', 'foo')
22
- assert_execute('vagrant', 'snapshot', 'save', 'bar')
23
-
24
- status('Test: snapshots show up in list')
25
- result = execute('vagrant', 'snapshot', 'list')
26
- expect(result).to exit_with(0)
27
- expect(result.stdout).to match(/^foo$/)
28
- expect(result.stdout).to match(/^bar$/)
29
-
30
- status('Test: snapshots could be restored')
31
- assert_execute('vagrant', 'snapshot', 'restore', 'foo')
32
- assert_execute('vagrant', 'snapshot', 'restore', 'bar')
33
-
34
- status('Test: snapshots could be deleted')
35
- assert_execute('vagrant', 'snapshot', 'delete', 'foo')
36
- assert_execute('vagrant', 'snapshot', 'delete', 'bar')
37
-
38
- result = execute('vagrant', 'snapshot', 'list')
39
- expect(result).to exit_with(0)
40
- expect(result.stdout).not_to match(/^foo$/)
41
- expect(result.stdout).not_to match(/^bar$/)
42
- end
43
-
44
- it 'can push and pop snapshots' do
45
- status('Test: snapshot push')
46
- result = execute('vagrant', 'snapshot', 'push')
47
- expect(result).to exit_with(0)
48
- expect(result.stdout).to match(/push_/)
49
-
50
- status('Test: pushed snapshot shows up in list')
51
- result = execute('vagrant', 'snapshot', 'list')
52
- expect(result).to exit_with(0)
53
- expect(result.stdout).to match(/^push_/)
54
-
55
- status('Test: snapshot pop')
56
- assert_execute('vagrant', 'snapshot', 'pop')
57
-
58
- status('Test: popped snapshot has been deleted')
59
- result = execute('vagrant', 'snapshot', 'list')
60
- expect(result).to exit_with(0)
61
- expect(result.stdout).not_to match(/push_/)
62
- end
63
- end
@@ -1,2 +0,0 @@
1
- shared_context 'provider-context/parallels' do
2
- end
@@ -1,7 +0,0 @@
1
- Vagrant.configure('2') do |config|
2
- config.vm.box = 'basic'
3
-
4
- config.vm.provider 'parallels' do |prl|
5
- prl.linked_clone = true
6
- end
7
- end
data/test/unit/base.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'rubygems'
2
- require 'rspec/autorun'
3
-
4
- # Require Vagrant itself so we can reference the proper
5
- # classes to test.
6
- require 'vagrant'
7
- require 'vagrant-parallels'
8
- require 'vagrant-spec/unit'
9
-
10
- # Add the test directory to the load path
11
- $:.unshift File.expand_path('../../', __FILE__)
12
-
13
- # Load in helpers
14
- require 'unit/support/shared/parallels_context'
15
- require 'unit/support/shared/pd_driver_examples'
16
-
17
- # Do not buffer output
18
- $stdout.sync = true
19
- $stderr.sync = true
20
-
21
- # Configure RSpec
22
- RSpec.configure do |c|
23
- c.expect_with :rspec, :stdlib
24
- end
@@ -1,96 +0,0 @@
1
- require_relative 'base'
2
-
3
- require 'vagrant-parallels/cap'
4
-
5
- describe VagrantPlugins::Parallels::Cap do
6
- include_context 'vagrant-unit'
7
-
8
- let(:iso_env) do
9
- # We have to create a Vagrantfile so there is a root path
10
- env = isolated_environment
11
- env.vagrantfile('')
12
- env.create_vagrant_env
13
- end
14
-
15
- let(:machine) do
16
- iso_env.machine(iso_env.machine_names[0], :dummy).tap do |m|
17
- m.provider.stub(driver: driver)
18
- m.stub(state: state)
19
- end
20
- end
21
-
22
- let(:driver) { double('driver') }
23
- let(:state) { double('state', id: :running) }
24
-
25
- describe '#forwarded_ports' do
26
- it 'returns all the forwarded ports' do
27
- allow(driver).to receive(:read_forwarded_ports).and_return([
28
- { hostport: 123, guestport: 456 },
29
- { hostport: 245, guestport: 245 }
30
- ])
31
-
32
- expect(described_class.forwarded_ports(machine)).to eq({
33
- 123 => 456,
34
- 245 => 245,
35
- })
36
- end
37
-
38
- it 'returns nil when the machine is not running' do
39
- allow(state).to receive(:id).and_return(:stopped)
40
- expect(described_class.forwarded_ports(machine)).to be(nil)
41
- end
42
- end
43
-
44
- describe '#host_address' do
45
- it "returns host's IP of Shared interface" do
46
- allow(driver).to receive(:read_shared_interface).and_return(ip: '1.2.3.4')
47
- expect(described_class.host_address(machine)).to eq('1.2.3.4')
48
- end
49
- end
50
-
51
- describe '#nic_mac_addresses' do
52
- it 'returns a hash with MAC addresses' do
53
- allow(driver).to receive(:read_mac_addresses).and_return(
54
- ['001A2B3C4D5E', '005E4D3C2B1A'])
55
- expect(described_class.nic_mac_addresses(machine)).to eq({
56
- 1 => '001A2B3C4D5E',
57
- 2 => '005E4D3C2B1A'
58
- })
59
- end
60
-
61
- it 'returns an empty hash when there are no NICs' do
62
- allow(driver).to receive(:read_mac_addresses).and_return([])
63
- expect(described_class.nic_mac_addresses(machine)).to eq({})
64
- end
65
- end
66
-
67
- describe '#public_address' do
68
- it "returns VM's IP" do
69
- allow(machine).to receive(:ssh_info).and_return(host: '1.2.3.4')
70
- expect(described_class.public_address(machine)).to eq('1.2.3.4')
71
- end
72
-
73
- it "returns nil when the machine is not running" do
74
- allow(state).to receive(:id).and_return(:stopped)
75
- expect(described_class.public_address(machine)).to be(nil)
76
- end
77
-
78
- it "returns nil when there is no ssh info" do
79
- allow(machine).to receive(:ssh_info).and_return(nil)
80
- expect(described_class.public_address(machine)).to be(nil)
81
- end
82
- end
83
-
84
- describe '#snapshot_list' do
85
- it 'returns a list of snapshots' do
86
- allow(machine).to receive(:id).and_return('foo')
87
- allow(driver).to receive(:list_snapshots).with('foo').and_return({
88
- 'snap_name_1' => 'snap_uuid_1',
89
- 'snap_name_2' => 'snap_uuid_2'
90
- })
91
-
92
- expect(described_class.snapshot_list(machine)).to eq(
93
- ['snap_name_1', 'snap_name_2'])
94
- end
95
- end
96
- end
@@ -1,91 +0,0 @@
1
- require_relative 'base'
2
-
3
- require VagrantPlugins::Parallels.source_root.join('lib/vagrant-parallels/config')
4
-
5
- describe VagrantPlugins::Parallels::Config do
6
- let(:machine) { double('machine') }
7
-
8
- def assert_invalid
9
- errors = subject.validate(machine)
10
- if !errors.values.any? { |v| !v.empty? }
11
- raise "No errors: #{errors.inspect}"
12
- end
13
- end
14
-
15
- def assert_valid
16
- errors = subject.validate(machine)
17
- if !errors.values.all? { |v| v.empty? }
18
- raise "Errors: #{errors.inspect}"
19
- end
20
- end
21
-
22
- def valid_defaults
23
- subject.image = 'foo'
24
- end
25
-
26
- before do
27
- vm_config = double('vm_config')
28
- vm_config.stub(networks: [])
29
- config = double('config')
30
- config.stub(vm: vm_config)
31
- machine.stub(config: config)
32
- end
33
-
34
- its 'valid by default' do
35
- subject.finalize!
36
- assert_valid
37
- end
38
-
39
- context 'defaults' do
40
- before { subject.finalize! }
41
-
42
- it { expect(subject.check_guest_additions).to be_true }
43
- it { expect(subject.name).to be_nil }
44
- it { expect(subject.functional_psf).to be_true }
45
- it { expect(subject.optimize_power_consumption).to be_true }
46
-
47
- it 'should have one Shared adapter' do
48
- expect(subject.network_adapters).to eql({
49
- 0 => [:shared, {}],
50
- })
51
- end
52
- end
53
-
54
- describe '#merge' do
55
- let(:one) { described_class.new }
56
- let(:two) { described_class.new }
57
-
58
- subject { one.merge(two) }
59
-
60
- it 'merges the customizations' do
61
- one.customize ['foo']
62
- two.customize ['bar']
63
-
64
- expect(subject.customizations).to eq([
65
- ['pre-boot', ['foo']],
66
- ['pre-boot', ['bar']]])
67
- end
68
- end
69
-
70
- describe 'memory=' do
71
- it 'configures memory size (in Mb)' do
72
- subject.memory=(1024)
73
- expect(subject.customizations).to include(['pre-boot', ['set', :id, '--memsize', '1024']])
74
- end
75
- end
76
-
77
- describe 'cpus=' do
78
- it 'configures count of cpus' do
79
- subject.cpus=('4')
80
- expect(subject.customizations).to include(['pre-boot', ['set', :id, '--cpus', 4]])
81
- end
82
- end
83
-
84
- describe '#network_adapter' do
85
- it 'configures additional adapters' do
86
- subject.network_adapter(2, :bridged, auto_config: true)
87
- expect(subject.network_adapters[2]).to eql(
88
- [:bridged, auto_config: true])
89
- end
90
- end
91
- end
@@ -1,31 +0,0 @@
1
- require_relative '../base'
2
-
3
- describe VagrantPlugins::Parallels::Driver::PD_10 do
4
- include_context 'parallels'
5
- let(:parallels_version) { '10' }
6
-
7
- subject { VagrantPlugins::Parallels::Driver::Meta.new(uuid) }
8
-
9
- it_behaves_like 'parallels desktop driver'
10
-
11
- describe 'set_power_consumption_mode' do
12
- it "turns 'longer-battery-life' on" do
13
- subprocess.should_receive(:execute).
14
- with('prlctl', 'set', uuid, '--longer-battery-life', 'on',
15
- an_instance_of(Hash)).
16
- and_return(subprocess_result(exit_code: 0))
17
-
18
- subject.set_power_consumption_mode(true)
19
- end
20
-
21
- it "turns 'longer-battery-life' off" do
22
- subprocess.should_receive(:execute).
23
- with('prlctl', 'set', uuid, '--longer-battery-life', 'off',
24
- an_instance_of(Hash)).
25
- and_return(subprocess_result(exit_code: 0))
26
-
27
- subject.set_power_consumption_mode(false)
28
- end
29
- end
30
-
31
- end
@@ -1,10 +0,0 @@
1
- require_relative '../base'
2
-
3
- describe VagrantPlugins::Parallels::Driver::PD_8 do
4
- include_context 'parallels'
5
- let(:parallels_version) { '8' }
6
-
7
- subject { VagrantPlugins::Parallels::Driver::Meta.new(uuid) }
8
-
9
- it_behaves_like 'parallels desktop driver'
10
- end
@@ -1,29 +0,0 @@
1
- require_relative '../base'
2
-
3
- describe VagrantPlugins::Parallels::Driver::PD_9 do
4
- include_context 'parallels'
5
-
6
- subject { VagrantPlugins::Parallels::Driver::Meta.new(uuid) }
7
-
8
- it_behaves_like 'parallels desktop driver'
9
-
10
- describe 'set_power_consumption_mode' do
11
- it "turns 'longer-battery-life' on" do
12
- subprocess.should_receive(:execute).
13
- with('prlctl', 'set', uuid, '--longer-battery-life', 'on',
14
- an_instance_of(Hash)).
15
- and_return(subprocess_result(exit_code: 0))
16
-
17
- subject.set_power_consumption_mode(true)
18
- end
19
-
20
- it "turns 'longer-battery-life' off" do
21
- subprocess.should_receive(:execute).
22
- with('prlctl', 'set', uuid, '--longer-battery-life', 'off',
23
- an_instance_of(Hash)).
24
- and_return(subprocess_result(exit_code: 0))
25
-
26
- subject.set_power_consumption_mode(false)
27
- end
28
- end
29
- end