vagrant-parallels 1.6.2 → 1.6.3

Sign up to get free protection for your applications and to get access to all the features.
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