vagrant 0.2.0 → 0.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.
- data/Gemfile +4 -4
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/bin/vagrant +5 -13
- data/config/default.rb +1 -0
- data/keys/README.md +8 -1
- data/keys/vagrant.ppk +26 -0
- data/lib/vagrant.rb +3 -3
- data/lib/vagrant/actions/base.rb +15 -4
- data/lib/vagrant/actions/box/add.rb +1 -1
- data/lib/vagrant/actions/box/download.rb +72 -66
- data/lib/vagrant/actions/box/unpackage.rb +1 -4
- data/lib/vagrant/actions/runner.rb +1 -1
- data/lib/vagrant/actions/vm/boot.rb +5 -7
- data/lib/vagrant/actions/vm/customize.rb +2 -2
- data/lib/vagrant/actions/vm/destroy.rb +2 -2
- data/lib/vagrant/actions/vm/down.rb +7 -0
- data/lib/vagrant/actions/vm/export.rb +10 -4
- data/lib/vagrant/actions/vm/forward_ports.rb +5 -15
- data/lib/vagrant/actions/vm/halt.rb +5 -3
- data/lib/vagrant/actions/vm/import.rb +10 -3
- data/lib/vagrant/actions/vm/move_hard_drive.rb +1 -3
- data/lib/vagrant/actions/vm/package.rb +33 -10
- data/lib/vagrant/actions/vm/provision.rb +4 -4
- data/lib/vagrant/actions/vm/reload.rb +1 -1
- data/lib/vagrant/actions/vm/resume.rb +1 -1
- data/lib/vagrant/actions/vm/shared_folders.rb +7 -7
- data/lib/vagrant/actions/vm/start.rb +3 -2
- data/lib/vagrant/actions/vm/suspend.rb +2 -2
- data/lib/vagrant/actions/vm/up.rb +7 -17
- data/lib/vagrant/active_list.rb +52 -45
- data/lib/vagrant/box.rb +18 -11
- data/lib/vagrant/busy.rb +7 -0
- data/lib/vagrant/command.rb +27 -0
- data/lib/vagrant/commands/base.rb +163 -0
- data/lib/vagrant/commands/box.rb +16 -0
- data/lib/vagrant/commands/box/add.rb +24 -0
- data/lib/vagrant/commands/box/list.rb +30 -0
- data/lib/vagrant/commands/box/remove.rb +31 -0
- data/lib/vagrant/commands/destroy.rb +23 -0
- data/lib/vagrant/commands/down.rb +16 -0
- data/lib/vagrant/commands/halt.rb +23 -0
- data/lib/vagrant/commands/init.rb +32 -0
- data/lib/vagrant/commands/package.rb +46 -0
- data/lib/vagrant/commands/reload.rb +22 -0
- data/lib/vagrant/commands/resume.rb +22 -0
- data/lib/vagrant/commands/ssh.rb +22 -0
- data/lib/vagrant/commands/ssh_config.rb +30 -0
- data/lib/vagrant/commands/status.rb +58 -0
- data/lib/vagrant/commands/suspend.rb +23 -0
- data/lib/vagrant/commands/up.rb +26 -0
- data/lib/vagrant/config.rb +21 -11
- data/lib/vagrant/downloaders/file.rb +5 -5
- data/lib/vagrant/downloaders/http.rb +10 -15
- data/lib/vagrant/environment.rb +259 -0
- data/lib/vagrant/provisioners/base.rb +7 -0
- data/lib/vagrant/provisioners/chef.rb +24 -9
- data/lib/vagrant/provisioners/chef_server.rb +23 -48
- data/lib/vagrant/provisioners/chef_solo.rb +48 -22
- data/lib/vagrant/ssh.rb +95 -46
- data/lib/vagrant/util.rb +2 -2
- data/lib/vagrant/util/errors.rb +36 -0
- data/lib/vagrant/util/platform.rb +12 -0
- data/lib/vagrant/util/progress_meter.rb +33 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
- data/lib/vagrant/util/template_renderer.rb +83 -0
- data/lib/vagrant/vm.rb +1 -0
- data/templates/{Vagrantfile → Vagrantfile.erb} +2 -2
- data/templates/chef_server_client.erb +16 -0
- data/templates/chef_solo_solo.erb +4 -0
- data/templates/errors.yml +157 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/ssh_config.erb +7 -0
- data/test/test_helper.rb +12 -15
- data/test/vagrant/actions/box/add_test.rb +1 -2
- data/test/vagrant/actions/box/destroy_test.rb +0 -1
- data/test/vagrant/actions/box/download_test.rb +40 -15
- data/test/vagrant/actions/box/unpackage_test.rb +2 -3
- data/test/vagrant/actions/collection_test.rb +8 -5
- data/test/vagrant/actions/runner_test.rb +8 -6
- data/test/vagrant/actions/vm/boot_test.rb +12 -11
- data/test/vagrant/actions/vm/customize_test.rb +2 -3
- data/test/vagrant/actions/vm/destroy_test.rb +2 -3
- data/test/vagrant/actions/vm/down_test.rb +16 -3
- data/test/vagrant/actions/vm/export_test.rb +4 -5
- data/test/vagrant/actions/vm/forward_ports_test.rb +6 -5
- data/test/vagrant/actions/vm/halt_test.rb +8 -2
- data/test/vagrant/actions/vm/import_test.rb +5 -5
- data/test/vagrant/actions/vm/move_hard_drive_test.rb +4 -6
- data/test/vagrant/actions/vm/package_test.rb +60 -22
- data/test/vagrant/actions/vm/provision_test.rb +7 -16
- data/test/vagrant/actions/vm/reload_test.rb +3 -2
- data/test/vagrant/actions/vm/resume_test.rb +0 -1
- data/test/vagrant/actions/vm/shared_folders_test.rb +17 -12
- data/test/vagrant/actions/vm/start_test.rb +10 -3
- data/test/vagrant/actions/vm/suspend_test.rb +1 -2
- data/test/vagrant/actions/vm/up_test.rb +19 -11
- data/test/vagrant/active_list_test.rb +148 -129
- data/test/vagrant/box_test.rb +26 -14
- data/test/vagrant/busy_test.rb +15 -6
- data/test/vagrant/command_test.rb +53 -0
- data/test/vagrant/commands/base_test.rb +118 -0
- data/test/vagrant/commands/box/add_test.rb +34 -0
- data/test/vagrant/commands/box/list_test.rb +32 -0
- data/test/vagrant/commands/box/remove_test.rb +41 -0
- data/test/vagrant/commands/destroy_test.rb +32 -0
- data/test/vagrant/commands/down_test.rb +17 -0
- data/test/vagrant/commands/halt_test.rb +28 -0
- data/test/vagrant/commands/init_test.rb +55 -0
- data/test/vagrant/commands/package_test.rb +84 -0
- data/test/vagrant/commands/reload_test.rb +28 -0
- data/test/vagrant/commands/resume_test.rb +33 -0
- data/test/vagrant/commands/ssh_config_test.rb +54 -0
- data/test/vagrant/commands/ssh_test.rb +32 -0
- data/test/vagrant/commands/status_test.rb +20 -0
- data/test/vagrant/commands/suspend_test.rb +33 -0
- data/test/vagrant/commands/up_test.rb +41 -0
- data/test/vagrant/config_test.rb +42 -17
- data/test/vagrant/downloaders/file_test.rb +7 -0
- data/test/vagrant/downloaders/http_test.rb +12 -0
- data/test/vagrant/environment_test.rb +595 -0
- data/test/vagrant/provisioners/base_test.rb +7 -1
- data/test/vagrant/provisioners/chef_server_test.rb +41 -51
- data/test/vagrant/provisioners/chef_solo_test.rb +93 -62
- data/test/vagrant/provisioners/chef_test.rb +61 -15
- data/test/vagrant/ssh_test.rb +166 -38
- data/test/vagrant/util/errors_test.rb +57 -0
- data/test/vagrant/util/progress_meter_test.rb +33 -0
- data/test/vagrant/{stacked_proc_runner_test.rb → util/stacked_proc_runner_test.rb} +3 -3
- data/test/vagrant/util/template_renderer_test.rb +138 -0
- data/test/vagrant/vm_test.rb +3 -2
- data/vagrant.gemspec +88 -33
- metadata +94 -51
- data/bin/vagrant-box +0 -34
- data/bin/vagrant-down +0 -27
- data/bin/vagrant-halt +0 -28
- data/bin/vagrant-init +0 -27
- data/bin/vagrant-package +0 -29
- data/bin/vagrant-reload +0 -29
- data/bin/vagrant-resume +0 -27
- data/bin/vagrant-ssh +0 -27
- data/bin/vagrant-status +0 -29
- data/bin/vagrant-suspend +0 -27
- data/bin/vagrant-up +0 -29
- data/lib/vagrant/commands.rb +0 -234
- data/lib/vagrant/env.rb +0 -189
- data/lib/vagrant/stacked_proc_runner.rb +0 -33
- data/test/vagrant/commands_test.rb +0 -269
- data/test/vagrant/env_test.rb +0 -418
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsDownTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Down
|
6
|
+
|
7
|
+
@env = mock_environment
|
8
|
+
@instance = @klass.new(@env)
|
9
|
+
end
|
10
|
+
|
11
|
+
context "executing" do
|
12
|
+
should "just error and exit" do
|
13
|
+
@instance.expects(:error_and_exit).with(:command_deprecation_down)
|
14
|
+
@instance.execute
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsHaltTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Halt
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
should "require a persisted VM" do
|
19
|
+
@env.expects(:require_persisted_vm).once
|
20
|
+
@instance.execute
|
21
|
+
end
|
22
|
+
|
23
|
+
should "call the `halt` action on the VM" do
|
24
|
+
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Halt).once
|
25
|
+
@instance.execute
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsInitTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Init
|
6
|
+
|
7
|
+
@env = mock_environment
|
8
|
+
@instance = @klass.new(@env)
|
9
|
+
end
|
10
|
+
|
11
|
+
context "execute" do
|
12
|
+
should "create the vagrantfile with the first arg" do
|
13
|
+
args = [:foo]
|
14
|
+
@instance.expects(:create_vagrantfile).with(args.first)
|
15
|
+
@instance.execute(args)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "creating the vagrantfile" do
|
20
|
+
setup do
|
21
|
+
@file = mock("file")
|
22
|
+
@file.stubs(:write)
|
23
|
+
File.stubs(:open).yields(@file)
|
24
|
+
@rootfile_path = File.join(Dir.pwd, Vagrant::Environment::ROOTFILE_NAME)
|
25
|
+
|
26
|
+
Vagrant::Util::TemplateRenderer.stubs(:render)
|
27
|
+
end
|
28
|
+
|
29
|
+
should "error and exit if a rootfile already exists" do
|
30
|
+
File.expects(:exist?).with(@rootfile_path).returns(true)
|
31
|
+
@instance.expects(:error_and_exit).with(:rootfile_already_exists).once
|
32
|
+
@instance.create_vagrantfile
|
33
|
+
end
|
34
|
+
|
35
|
+
should "write to the rootfile path using the template renderer" do
|
36
|
+
result = "foo"
|
37
|
+
Vagrant::Util::TemplateRenderer.expects(:render).returns(result).once
|
38
|
+
@file.expects(:write).with(result).once
|
39
|
+
File.expects(:open).with(@rootfile_path, 'w+').yields(@file)
|
40
|
+
|
41
|
+
@instance.create_vagrantfile
|
42
|
+
end
|
43
|
+
|
44
|
+
should "use the given base box if given" do
|
45
|
+
box = "zooo"
|
46
|
+
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => box)
|
47
|
+
@instance.create_vagrantfile(box)
|
48
|
+
end
|
49
|
+
|
50
|
+
should "use the default `base` if no box is given" do
|
51
|
+
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => "base")
|
52
|
+
@instance.create_vagrantfile
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsPackageTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Package
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
setup do
|
19
|
+
@persisted_vm.stubs(:package)
|
20
|
+
@persisted_vm.stubs(:powered_off?).returns(true)
|
21
|
+
end
|
22
|
+
|
23
|
+
context "with no base specified" do
|
24
|
+
should "require a persisted vm" do
|
25
|
+
@env.expects(:require_persisted_vm).once
|
26
|
+
@instance.execute
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "with base specified" do
|
31
|
+
setup do
|
32
|
+
@vm = mock("vm")
|
33
|
+
|
34
|
+
Vagrant::VM.stubs(:find).with(@name).returns(@vm)
|
35
|
+
@vm.stubs(:env=).with(@env)
|
36
|
+
@env.stubs(:vm=)
|
37
|
+
|
38
|
+
@name = "bar"
|
39
|
+
end
|
40
|
+
|
41
|
+
should "find the given base and set it on the env" do
|
42
|
+
Vagrant::VM.expects(:find).with(@name).returns(@vm)
|
43
|
+
@vm.expects(:env=).with(@env)
|
44
|
+
@env.expects(:vm=).with(@vm)
|
45
|
+
|
46
|
+
@instance.execute(["foo", "--base", @name])
|
47
|
+
end
|
48
|
+
|
49
|
+
should "error if the VM is not found" do
|
50
|
+
Vagrant::VM.expects(:find).with(@name).returns(nil)
|
51
|
+
@instance.expects(:error_and_exit).with(:vm_base_not_found, :name => @name).once
|
52
|
+
|
53
|
+
@instance.execute(["foo", "--base", @name])
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "shared (with and without base specified)" do
|
58
|
+
should "error and exit if the VM is not powered off" do
|
59
|
+
@persisted_vm.stubs(:powered_off?).returns(false)
|
60
|
+
@instance.expects(:error_and_exit).with(:vm_power_off_to_package).once
|
61
|
+
@persisted_vm.expects(:package).never
|
62
|
+
@instance.execute
|
63
|
+
end
|
64
|
+
|
65
|
+
should "call package on the persisted VM" do
|
66
|
+
@persisted_vm.expects(:package).once
|
67
|
+
@instance.execute
|
68
|
+
end
|
69
|
+
|
70
|
+
should "pass the out path and include_files to the package method" do
|
71
|
+
out_path = mock("out_path")
|
72
|
+
include_files = "foo"
|
73
|
+
@persisted_vm.expects(:package).with(out_path, [include_files]).once
|
74
|
+
@instance.execute([out_path, "--include", include_files])
|
75
|
+
end
|
76
|
+
|
77
|
+
should "default to an empty array when not include_files are specified" do
|
78
|
+
out_path = mock("out_path")
|
79
|
+
@persisted_vm.expects(:package).with(out_path, []).once
|
80
|
+
@instance.execute([out_path])
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsReloadTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Reload
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
should "require a persisted VM" do
|
19
|
+
@env.expects(:require_persisted_vm).once
|
20
|
+
@instance.execute
|
21
|
+
end
|
22
|
+
|
23
|
+
should "call the `reload` action on the VM" do
|
24
|
+
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Reload).once
|
25
|
+
@instance.execute
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsResumeTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Resume
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
setup do
|
19
|
+
@persisted_vm.stubs(:resume)
|
20
|
+
@persisted_vm.stubs(:saved?).returns(true)
|
21
|
+
end
|
22
|
+
|
23
|
+
should "require a persisted VM" do
|
24
|
+
@env.expects(:require_persisted_vm).once
|
25
|
+
@instance.execute
|
26
|
+
end
|
27
|
+
|
28
|
+
should "save the state of the VM" do
|
29
|
+
@persisted_vm.expects(:resume).once
|
30
|
+
@instance.execute
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsSSHConfigTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::SSHConfig
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
setup do
|
19
|
+
@ssh = mock("ssh")
|
20
|
+
@ssh.stubs(:port).returns(2197)
|
21
|
+
@env.stubs(:ssh).returns(@ssh)
|
22
|
+
@env.stubs(:require_root_path)
|
23
|
+
|
24
|
+
@instance.stubs(:puts)
|
25
|
+
|
26
|
+
@data = {
|
27
|
+
:host_key => "vagrant",
|
28
|
+
:ssh_user => @env.config.ssh.username,
|
29
|
+
:ssh_port => @env.ssh.port,
|
30
|
+
:private_key_path => @env.config.ssh.private_key_path
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
should "require root path" do
|
35
|
+
@env.expects(:require_root_path).once
|
36
|
+
@instance.execute
|
37
|
+
end
|
38
|
+
|
39
|
+
should "output rendered template" do
|
40
|
+
result = mock("result")
|
41
|
+
Vagrant::Util::TemplateRenderer.expects(:render).with("ssh_config", @data).returns(result)
|
42
|
+
|
43
|
+
@instance.expects(:puts).with(result).once
|
44
|
+
@instance.execute
|
45
|
+
end
|
46
|
+
|
47
|
+
should "render with the given host name if given" do
|
48
|
+
host = "foo"
|
49
|
+
@data[:host_key] = host
|
50
|
+
Vagrant::Util::TemplateRenderer.expects(:render).with("ssh_config", @data)
|
51
|
+
@instance.execute(["--host", host])
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsSSHTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::SSH
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
setup do
|
19
|
+
@env.ssh.stubs(:connect)
|
20
|
+
end
|
21
|
+
|
22
|
+
should "require a persisted VM" do
|
23
|
+
@env.expects(:require_persisted_vm).once
|
24
|
+
@instance.execute
|
25
|
+
end
|
26
|
+
|
27
|
+
should "connect to SSH" do
|
28
|
+
@env.ssh.expects(:connect).once
|
29
|
+
@instance.execute
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsStatusTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Status
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
# TODO
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsSuspendTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Suspend
|
6
|
+
|
7
|
+
@persisted_vm = mock("persisted_vm")
|
8
|
+
@persisted_vm.stubs(:execute!)
|
9
|
+
|
10
|
+
@env = mock_environment
|
11
|
+
@env.stubs(:require_persisted_vm)
|
12
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
13
|
+
|
14
|
+
@instance = @klass.new(@env)
|
15
|
+
end
|
16
|
+
|
17
|
+
context "executing" do
|
18
|
+
setup do
|
19
|
+
@persisted_vm.stubs(:suspend)
|
20
|
+
@persisted_vm.stubs(:saved?).returns(false)
|
21
|
+
end
|
22
|
+
|
23
|
+
should "require a persisted VM" do
|
24
|
+
@env.expects(:require_persisted_vm).once
|
25
|
+
@instance.execute
|
26
|
+
end
|
27
|
+
|
28
|
+
should "suspend the VM" do
|
29
|
+
@persisted_vm.expects(:suspend).once
|
30
|
+
@instance.execute
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
+
|
3
|
+
class CommandsUpTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Vagrant::Commands::Up
|
6
|
+
|
7
|
+
@env = mock_environment
|
8
|
+
@instance = @klass.new(@env)
|
9
|
+
|
10
|
+
@persisted_vm = mock("persisted_vm")
|
11
|
+
@persisted_vm.stubs(:execute!)
|
12
|
+
end
|
13
|
+
|
14
|
+
context "executing" do
|
15
|
+
setup do
|
16
|
+
@new_vm = mock("vm")
|
17
|
+
@new_vm.stubs(:execute!)
|
18
|
+
|
19
|
+
@env.stubs(:vm).returns(nil)
|
20
|
+
@env.stubs(:require_box)
|
21
|
+
@env.stubs(:create_vm).returns(@new_vm)
|
22
|
+
end
|
23
|
+
|
24
|
+
should "require a box" do
|
25
|
+
@env.expects(:require_box).once
|
26
|
+
@instance.execute
|
27
|
+
end
|
28
|
+
|
29
|
+
should "call the up action on VM if it doesn't exist" do
|
30
|
+
@new_vm.expects(:execute!).with(Vagrant::Actions::VM::Up).once
|
31
|
+
@instance.execute
|
32
|
+
end
|
33
|
+
|
34
|
+
should "call start on the persisted vm if it exists" do
|
35
|
+
@env.stubs(:vm).returns(@persisted_vm)
|
36
|
+
@persisted_vm.expects(:start).once
|
37
|
+
@env.expects(:create_vm).never
|
38
|
+
@instance.execute
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/test/vagrant/config_test.rb
CHANGED
@@ -2,10 +2,14 @@ require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
|
2
2
|
|
3
3
|
class ConfigTest < Test::Unit::TestCase
|
4
4
|
context "the ssh config" do
|
5
|
+
setup do
|
6
|
+
@env = mock_environment
|
7
|
+
@env.stubs(:root_path).returns("foo")
|
8
|
+
end
|
9
|
+
|
5
10
|
should "expand any path when requesting the value" do
|
6
|
-
|
7
|
-
|
8
|
-
assert Vagrant.config.ssh.private_key_path, 'success'
|
11
|
+
result = File.expand_path(@env.config.ssh[:private_key_path], @env.root_path)
|
12
|
+
assert_equal result, @env.config.ssh.private_key_path
|
9
13
|
end
|
10
14
|
end
|
11
15
|
|
@@ -40,6 +44,12 @@ class ConfigTest < Test::Unit::TestCase
|
|
40
44
|
Vagrant::Config.reset!
|
41
45
|
assert Vagrant::Config.proc_stack.empty?
|
42
46
|
end
|
47
|
+
|
48
|
+
should "reload the config object based on the given environment" do
|
49
|
+
env = mock("env")
|
50
|
+
Vagrant::Config.expects(:config).with(env).once
|
51
|
+
Vagrant::Config.reset!(env)
|
52
|
+
end
|
43
53
|
end
|
44
54
|
|
45
55
|
context "accessing configuration" do
|
@@ -78,6 +88,12 @@ class ConfigTest < Test::Unit::TestCase
|
|
78
88
|
Vagrant::Config.execute!
|
79
89
|
assert Vagrant::Config.config.loaded?
|
80
90
|
end
|
91
|
+
|
92
|
+
should "return the configuration on execute!" do
|
93
|
+
Vagrant::Config.run {}
|
94
|
+
result = Vagrant::Config.execute!
|
95
|
+
assert result.equal?(Vagrant.config)
|
96
|
+
end
|
81
97
|
end
|
82
98
|
|
83
99
|
context "base class" do
|
@@ -105,12 +121,20 @@ class ConfigTest < Test::Unit::TestCase
|
|
105
121
|
end
|
106
122
|
end
|
107
123
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
124
|
+
context "converting to JSON" do
|
125
|
+
should "convert instance variable hash to json" do
|
126
|
+
@json = mock("json")
|
127
|
+
@iv_hash = mock("iv_hash")
|
128
|
+
@iv_hash.expects(:to_json).once.returns(@json)
|
129
|
+
@base.expects(:instance_variables_hash).returns(@iv_hash)
|
130
|
+
assert_equal @json, @base.to_json
|
131
|
+
end
|
132
|
+
|
133
|
+
should "not include env in the JSON hash" do
|
134
|
+
@base.env = "FOO"
|
135
|
+
hash = @base.instance_variables_hash
|
136
|
+
assert !hash.has_key?(:env)
|
137
|
+
end
|
114
138
|
end
|
115
139
|
end
|
116
140
|
|
@@ -138,21 +162,25 @@ class ConfigTest < Test::Unit::TestCase
|
|
138
162
|
end
|
139
163
|
|
140
164
|
should "initialize each configurer and set it to its key" do
|
165
|
+
env = mock('env')
|
166
|
+
|
141
167
|
5.times do |i|
|
142
168
|
key = "key#{i}"
|
143
169
|
klass = mock("klass#{i}")
|
144
170
|
instance = mock("instance#{i}")
|
171
|
+
instance.expects(:env=).with(env)
|
145
172
|
klass.expects(:new).returns(instance)
|
146
173
|
@configures_list << [key, klass]
|
147
174
|
end
|
148
175
|
|
149
|
-
Vagrant::Config::Top.new
|
176
|
+
Vagrant::Config::Top.new(env)
|
150
177
|
end
|
151
178
|
|
152
179
|
should "allow reading via methods" do
|
153
180
|
key = "my_foo_bar_key"
|
154
181
|
klass = mock("klass")
|
155
182
|
instance = mock("instance")
|
183
|
+
instance.stubs(:env=)
|
156
184
|
klass.expects(:new).returns(instance)
|
157
185
|
Vagrant::Config::Top.configures(key, klass)
|
158
186
|
|
@@ -196,16 +224,13 @@ class ConfigTest < Test::Unit::TestCase
|
|
196
224
|
|
197
225
|
context "VM configuration" do
|
198
226
|
setup do
|
199
|
-
@
|
200
|
-
@
|
201
|
-
|
202
|
-
mock_config do |config|
|
203
|
-
config.ssh.username = @username
|
204
|
-
end
|
227
|
+
@env = mock_environment
|
228
|
+
@config = @env.config.vm
|
229
|
+
@env.config.ssh.username = @username
|
205
230
|
end
|
206
231
|
|
207
232
|
should "include the stacked proc runner module" do
|
208
|
-
assert @config.class.included_modules.include?(Vagrant::StackedProcRunner)
|
233
|
+
assert @config.class.included_modules.include?(Vagrant::Util::StackedProcRunner)
|
209
234
|
end
|
210
235
|
|
211
236
|
should "add the customize proc to the proc stack" do
|