vagrantup 0.4.3.dev → 0.5.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/README.md +1 -0
- data/config/default.rb +6 -6
- data/lib/vagrant.rb +6 -3
- data/lib/vagrant/action.rb +77 -0
- data/lib/vagrant/action/action_exception.rb +16 -0
- data/lib/vagrant/action/box/destroy.rb +19 -0
- data/lib/vagrant/action/box/download.rb +78 -0
- data/lib/vagrant/action/box/unpackage.rb +58 -0
- data/lib/vagrant/action/box/verify.rb +23 -0
- data/lib/vagrant/action/builder.rb +151 -0
- data/lib/vagrant/action/builtin.rb +114 -0
- data/lib/vagrant/action/env/error_halt.rb +16 -0
- data/lib/vagrant/action/env/set.rb +18 -0
- data/lib/vagrant/action/environment.rb +98 -0
- data/lib/vagrant/action/exception_catcher.rb +14 -0
- data/lib/vagrant/action/vm/boot.rb +54 -0
- data/lib/vagrant/action/vm/check_box.rb +27 -0
- data/lib/vagrant/action/vm/check_guest_additions.rb +32 -0
- data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +39 -0
- data/lib/vagrant/action/vm/clear_nfs_exports.rb +20 -0
- data/lib/vagrant/action/vm/clear_shared_folders.rb +32 -0
- data/lib/vagrant/action/vm/customize.rb +21 -0
- data/lib/vagrant/action/vm/destroy.rb +20 -0
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +35 -0
- data/lib/vagrant/action/vm/disable_networks.rb +26 -0
- data/lib/vagrant/action/vm/export.rb +53 -0
- data/lib/vagrant/action/vm/forward_ports.rb +121 -0
- data/lib/vagrant/action/vm/forward_ports_helpers.rb +28 -0
- data/lib/vagrant/action/vm/halt.rb +34 -0
- data/lib/vagrant/action/vm/import.rb +33 -0
- data/lib/vagrant/action/vm/match_mac_address.rb +19 -0
- data/lib/vagrant/{actions → action}/vm/network.rb +47 -55
- data/lib/vagrant/action/vm/nfs.rb +161 -0
- data/lib/vagrant/action/vm/nfs_helpers.rb +11 -0
- data/lib/vagrant/action/vm/package.rb +99 -0
- data/lib/vagrant/action/vm/persist.rb +22 -0
- data/lib/vagrant/action/vm/provision.rb +50 -0
- data/lib/vagrant/action/vm/resume.rb +20 -0
- data/lib/vagrant/{actions/vm/shared_folders.rb → action/vm/share_folders.rb} +48 -45
- data/lib/vagrant/action/vm/suspend.rb +20 -0
- data/lib/vagrant/box.rb +3 -7
- data/lib/vagrant/commands/base.rb +1 -3
- data/lib/vagrant/commands/package.rb +4 -9
- data/lib/vagrant/commands/up.rb +0 -2
- data/lib/vagrant/config.rb +15 -1
- data/lib/vagrant/downloaders/file.rb +1 -1
- data/lib/vagrant/downloaders/http.rb +2 -1
- data/lib/vagrant/environment.rb +18 -14
- data/lib/vagrant/hosts/base.rb +77 -0
- data/lib/vagrant/hosts/bsd.rb +53 -0
- data/lib/vagrant/hosts/linux.rb +52 -0
- data/lib/vagrant/provisioners/base.rb +17 -9
- data/lib/vagrant/provisioners/chef.rb +1 -1
- data/lib/vagrant/provisioners/chef_server.rb +4 -8
- data/lib/vagrant/provisioners/chef_solo.rb +1 -2
- data/lib/vagrant/ssh.rb +12 -4
- data/lib/vagrant/systems/base.rb +4 -0
- data/lib/vagrant/systems/linux.rb +12 -1
- data/lib/vagrant/util.rb +16 -0
- data/lib/vagrant/util/busy.rb +59 -0
- data/lib/vagrant/util/plain_logger.rb +11 -0
- data/lib/vagrant/util/platform.rb +18 -0
- data/lib/vagrant/util/resource_logger.rb +128 -0
- data/lib/vagrant/version.rb +6 -0
- data/lib/vagrant/vm.rb +10 -12
- data/templates/chef_solo_solo.erb +2 -1
- data/templates/nfs/exports.erb +3 -0
- data/templates/nfs/exports_linux.erb +3 -0
- data/templates/strings.yml +23 -3
- metadata +121 -196
- data/.gitignore +0 -11
- data/Gemfile +0 -18
- data/Rakefile +0 -41
- data/VERSION +0 -1
- data/bin/.gitignore +0 -0
- data/lib/vagrant/actions/base.rb +0 -130
- data/lib/vagrant/actions/box/add.rb +0 -23
- data/lib/vagrant/actions/box/destroy.rb +0 -14
- data/lib/vagrant/actions/box/download.rb +0 -67
- data/lib/vagrant/actions/box/unpackage.rb +0 -42
- data/lib/vagrant/actions/box/verify.rb +0 -32
- data/lib/vagrant/actions/collection.rb +0 -36
- data/lib/vagrant/actions/runner.rb +0 -131
- data/lib/vagrant/actions/vm/boot.rb +0 -43
- data/lib/vagrant/actions/vm/customize.rb +0 -19
- data/lib/vagrant/actions/vm/destroy.rb +0 -24
- data/lib/vagrant/actions/vm/down.rb +0 -22
- data/lib/vagrant/actions/vm/export.rb +0 -45
- data/lib/vagrant/actions/vm/forward_ports.rb +0 -134
- data/lib/vagrant/actions/vm/halt.rb +0 -24
- data/lib/vagrant/actions/vm/import.rb +0 -23
- data/lib/vagrant/actions/vm/move_hard_drive.rb +0 -51
- data/lib/vagrant/actions/vm/package.rb +0 -94
- data/lib/vagrant/actions/vm/provision.rb +0 -49
- data/lib/vagrant/actions/vm/reload.rb +0 -17
- data/lib/vagrant/actions/vm/resume.rb +0 -16
- data/lib/vagrant/actions/vm/start.rb +0 -26
- data/lib/vagrant/actions/vm/suspend.rb +0 -16
- data/lib/vagrant/actions/vm/up.rb +0 -53
- data/lib/vagrant/busy.rb +0 -79
- data/lib/vagrant/resource_logger.rb +0 -126
- data/lib/vagrant/util/error_helper.rb +0 -13
- data/lib/vagrant/util/output_helper.rb +0 -9
- data/test/test_helper.rb +0 -149
- data/test/vagrant/actions/base_test.rb +0 -32
- data/test/vagrant/actions/box/add_test.rb +0 -36
- data/test/vagrant/actions/box/destroy_test.rb +0 -17
- data/test/vagrant/actions/box/download_test.rb +0 -137
- data/test/vagrant/actions/box/unpackage_test.rb +0 -99
- data/test/vagrant/actions/box/verify_test.rb +0 -44
- data/test/vagrant/actions/collection_test.rb +0 -113
- data/test/vagrant/actions/runner_test.rb +0 -268
- data/test/vagrant/actions/vm/boot_test.rb +0 -49
- data/test/vagrant/actions/vm/customize_test.rb +0 -21
- data/test/vagrant/actions/vm/destroy_test.rb +0 -37
- data/test/vagrant/actions/vm/down_test.rb +0 -39
- data/test/vagrant/actions/vm/export_test.rb +0 -88
- data/test/vagrant/actions/vm/forward_ports_test.rb +0 -253
- data/test/vagrant/actions/vm/halt_test.rb +0 -65
- data/test/vagrant/actions/vm/import_test.rb +0 -45
- data/test/vagrant/actions/vm/move_hard_drive_test.rb +0 -106
- data/test/vagrant/actions/vm/network_test.rb +0 -291
- data/test/vagrant/actions/vm/package_test.rb +0 -254
- data/test/vagrant/actions/vm/provision_test.rb +0 -99
- data/test/vagrant/actions/vm/reload_test.rb +0 -46
- data/test/vagrant/actions/vm/resume_test.rb +0 -26
- data/test/vagrant/actions/vm/shared_folders_test.rb +0 -211
- data/test/vagrant/actions/vm/start_test.rb +0 -73
- data/test/vagrant/actions/vm/suspend_test.rb +0 -26
- data/test/vagrant/actions/vm/up_test.rb +0 -96
- data/test/vagrant/active_list_test.rb +0 -173
- data/test/vagrant/box_test.rb +0 -154
- data/test/vagrant/busy_test.rb +0 -78
- data/test/vagrant/command_test.rb +0 -53
- data/test/vagrant/commands/base_test.rb +0 -139
- data/test/vagrant/commands/box/add_test.rb +0 -34
- data/test/vagrant/commands/box/list_test.rb +0 -32
- data/test/vagrant/commands/box/remove_test.rb +0 -41
- data/test/vagrant/commands/destroy_test.rb +0 -44
- data/test/vagrant/commands/halt_test.rb +0 -50
- data/test/vagrant/commands/init_test.rb +0 -55
- data/test/vagrant/commands/package_test.rb +0 -104
- data/test/vagrant/commands/provision_test.rb +0 -60
- data/test/vagrant/commands/reload_test.rb +0 -44
- data/test/vagrant/commands/resume_test.rb +0 -44
- data/test/vagrant/commands/ssh_config_test.rb +0 -77
- data/test/vagrant/commands/ssh_test.rb +0 -129
- data/test/vagrant/commands/status_test.rb +0 -40
- data/test/vagrant/commands/suspend_test.rb +0 -44
- data/test/vagrant/commands/up_test.rb +0 -47
- data/test/vagrant/config_test.rb +0 -287
- data/test/vagrant/downloaders/base_test.rb +0 -28
- data/test/vagrant/downloaders/file_test.rb +0 -33
- data/test/vagrant/downloaders/http_test.rb +0 -62
- data/test/vagrant/environment_test.rb +0 -770
- data/test/vagrant/provisioners/base_test.rb +0 -33
- data/test/vagrant/provisioners/chef_server_test.rb +0 -176
- data/test/vagrant/provisioners/chef_solo_test.rb +0 -183
- data/test/vagrant/provisioners/chef_test.rb +0 -175
- data/test/vagrant/resource_logger_test.rb +0 -145
- data/test/vagrant/ssh_session_test.rb +0 -46
- data/test/vagrant/ssh_test.rb +0 -296
- data/test/vagrant/systems/linux_test.rb +0 -179
- data/test/vagrant/util/error_helper_test.rb +0 -5
- data/test/vagrant/util/output_helper_test.rb +0 -5
- data/test/vagrant/util/plain_logger_test.rb +0 -17
- data/test/vagrant/util/platform_test.rb +0 -18
- data/test/vagrant/util/stacked_proc_runner_test.rb +0 -43
- data/test/vagrant/util/template_renderer_test.rb +0 -144
- data/test/vagrant/util/translator_test.rb +0 -61
- data/test/vagrant/util_test.rb +0 -27
- data/test/vagrant/vm_test.rb +0 -235
- data/vagrant.gemspec +0 -291
@@ -1,268 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class ActionRunnerTest < Test::Unit::TestCase
|
4
|
-
class MockAction; end
|
5
|
-
class MockActionOther; end
|
6
|
-
|
7
|
-
def mock_fake_action(action_klass = nil, runner = nil)
|
8
|
-
action = action_klass ? action_klass.new(runner) : mock("action")
|
9
|
-
action.stubs(:prepare)
|
10
|
-
action.stubs(:execute!)
|
11
|
-
action.stubs(:cleanup)
|
12
|
-
stub_default_action_dependecies(action)
|
13
|
-
action
|
14
|
-
end
|
15
|
-
|
16
|
-
context "callbacks" do
|
17
|
-
setup do
|
18
|
-
@runner = Vagrant::Actions::Runner.new
|
19
|
-
end
|
20
|
-
|
21
|
-
context "around callbacks" do
|
22
|
-
should "invoke before/after_name for around callbacks" do
|
23
|
-
block_obj = mock("block_obj")
|
24
|
-
around_seq = sequence("around_seq")
|
25
|
-
@runner.expects(:invoke_callback).with(:before_foo).once.in_sequence(around_seq)
|
26
|
-
block_obj.expects(:foo).once.in_sequence(around_seq)
|
27
|
-
@runner.expects(:invoke_callback).with(:after_foo).once.in_sequence(around_seq)
|
28
|
-
|
29
|
-
@runner.invoke_around_callback(:foo) do
|
30
|
-
block_obj.foo
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
should "forward arguments to invoke_callback" do
|
35
|
-
@runner.expects(:invoke_callback).with(:before_foo, "foo").once
|
36
|
-
@runner.expects(:invoke_callback).with(:after_foo, "foo").once
|
37
|
-
@runner.invoke_around_callback(:foo, "foo") do; end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
should "not invoke callback on actions which don't respond to it" do
|
42
|
-
action = mock("action")
|
43
|
-
action.stubs(:respond_to?).with(:foo).returns(false)
|
44
|
-
action.expects(:foo).never
|
45
|
-
|
46
|
-
assert_nothing_raised do
|
47
|
-
@runner.actions << action
|
48
|
-
@runner.invoke_callback(:foo)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
should "invoke callback on actions which do respond to the method" do
|
53
|
-
action = mock("action")
|
54
|
-
action.expects(:foo).once
|
55
|
-
|
56
|
-
@runner.actions << action
|
57
|
-
@runner.invoke_callback(:foo)
|
58
|
-
end
|
59
|
-
|
60
|
-
should "collect all the results and return them as an array" do
|
61
|
-
result = []
|
62
|
-
3.times do |i|
|
63
|
-
action = mock("action#{i}")
|
64
|
-
action.expects(:foo).returns("foo#{i}").once
|
65
|
-
|
66
|
-
@runner.actions << action
|
67
|
-
result << "foo#{i}"
|
68
|
-
end
|
69
|
-
|
70
|
-
assert_equal result, @runner.invoke_callback(:foo)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context "finding actions" do
|
75
|
-
setup do
|
76
|
-
@runner = Vagrant::Actions::Runner.new
|
77
|
-
end
|
78
|
-
|
79
|
-
should "return nil if the action could not be found" do
|
80
|
-
assert_nil @runner.find_action(Vagrant::Actions::VM::Export)
|
81
|
-
end
|
82
|
-
|
83
|
-
should "return the first instance of the action found" do
|
84
|
-
@runner.add_action(Vagrant::Actions::VM::Export)
|
85
|
-
@runner.add_action(Vagrant::Actions::VM::Export)
|
86
|
-
|
87
|
-
assert @runner.actions[0].equal?(@runner.find_action(Vagrant::Actions::VM::Export))
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
context "adding actions" do
|
92
|
-
setup do
|
93
|
-
@runner = Vagrant::Actions::Runner.new
|
94
|
-
end
|
95
|
-
|
96
|
-
should "initialize the action when added" do
|
97
|
-
action_klass = mock("action_class")
|
98
|
-
action_inst = mock("action_inst")
|
99
|
-
action_klass.expects(:new).once.returns(action_inst)
|
100
|
-
@runner.add_action(action_klass)
|
101
|
-
assert_equal 1, @runner.actions.length
|
102
|
-
end
|
103
|
-
|
104
|
-
should "initialize the action with given arguments when added" do
|
105
|
-
action_klass = mock("action_class")
|
106
|
-
action_klass.expects(:new).with(@runner, "foo", "bar").once
|
107
|
-
@runner.add_action(action_klass, "foo", "bar")
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
context "class method execute" do
|
112
|
-
should "run actions on class method execute!" do
|
113
|
-
vm = mock("vm")
|
114
|
-
execute_seq = sequence("execute_seq")
|
115
|
-
Vagrant::Actions::Runner.expects(:new).returns(vm).in_sequence(execute_seq)
|
116
|
-
vm.expects(:add_action).with("foo").in_sequence(execute_seq)
|
117
|
-
vm.expects(:execute!).once.in_sequence(execute_seq)
|
118
|
-
|
119
|
-
Vagrant::Actions::Runner.execute!("foo")
|
120
|
-
end
|
121
|
-
|
122
|
-
should "forward arguments to add_action on class method execute!" do
|
123
|
-
vm = mock("vm")
|
124
|
-
execute_seq = sequence("execute_seq")
|
125
|
-
Vagrant::Actions::Runner.expects(:new).returns(vm).in_sequence(execute_seq)
|
126
|
-
vm.expects(:add_action).with("foo", "bar", "baz").in_sequence(execute_seq)
|
127
|
-
vm.expects(:execute!).once.in_sequence(execute_seq)
|
128
|
-
|
129
|
-
Vagrant::Actions::Runner.execute!("foo", "bar", "baz")
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
context "instance method execute" do
|
134
|
-
setup do
|
135
|
-
@runner = Vagrant::Actions::Runner.new
|
136
|
-
@runner.stubs(:action_klasses).returns([Vagrant::Actions::Base])
|
137
|
-
end
|
138
|
-
|
139
|
-
should "clear the actions and run a single action if given to execute!" do
|
140
|
-
action = mock("action")
|
141
|
-
run_action = mock("action_run")
|
142
|
-
stub_default_action_dependecies(run_action)
|
143
|
-
run_class = mock("run_class")
|
144
|
-
run_class.expects(:new).once.returns(run_action)
|
145
|
-
@runner.actions << action
|
146
|
-
|
147
|
-
[:prepare, :execute!, :cleanup].each do |method|
|
148
|
-
action.expects(method).never
|
149
|
-
run_action.expects(method).once
|
150
|
-
end
|
151
|
-
|
152
|
-
@runner.execute!(run_class)
|
153
|
-
end
|
154
|
-
|
155
|
-
should "clear actions after running execute!" do
|
156
|
-
@runner.actions << mock_fake_action
|
157
|
-
assert !@runner.actions.empty? # sanity
|
158
|
-
@runner.execute!
|
159
|
-
assert @runner.actions.empty?
|
160
|
-
end
|
161
|
-
|
162
|
-
should "run #prepare on all actions, then #execute!" do
|
163
|
-
action_seq = sequence("action_seq")
|
164
|
-
actions = []
|
165
|
-
[MockAction, MockActionOther].each_with_index do |klass, i|
|
166
|
-
action = mock("action#{i}")
|
167
|
-
action.expects(:class).returns(klass)
|
168
|
-
stub_default_action_dependecies(action)
|
169
|
-
@runner.actions << action
|
170
|
-
actions << action
|
171
|
-
end
|
172
|
-
|
173
|
-
[:prepare, :execute!, :cleanup].each do |method|
|
174
|
-
actions.each do |action|
|
175
|
-
action.expects(method).once.in_sequence(action_seq)
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
|
-
@runner.execute!
|
180
|
-
end
|
181
|
-
|
182
|
-
context "exceptions" do
|
183
|
-
setup do
|
184
|
-
@actions = [MockAction, MockActionOther].map do |klass|
|
185
|
-
action = mock_fake_action
|
186
|
-
action.expects(:class).returns(klass)
|
187
|
-
action.stubs(:rescue)
|
188
|
-
@runner.actions << action
|
189
|
-
action
|
190
|
-
end
|
191
|
-
|
192
|
-
@exception = Exception.new
|
193
|
-
end
|
194
|
-
|
195
|
-
should "call #rescue on each action if an exception is raised during execute!" do
|
196
|
-
@actions.each do |a|
|
197
|
-
a.expects(:rescue).with(@exception).once
|
198
|
-
end
|
199
|
-
|
200
|
-
@actions[0].stubs(:execute!).raises(@exception)
|
201
|
-
|
202
|
-
@runner.expects(:error_and_exit).never
|
203
|
-
assert_raises(Exception) { @runner.execute! }
|
204
|
-
end
|
205
|
-
|
206
|
-
should "call #rescue on each action if an exception is raised during prepare" do
|
207
|
-
@actions.each do |a|
|
208
|
-
a.expects(:rescue).with(@exception).once
|
209
|
-
end
|
210
|
-
|
211
|
-
@actions[0].stubs(:prepare).raises(@exception)
|
212
|
-
|
213
|
-
@runner.expects(:error_and_exit).never
|
214
|
-
assert_raises(Exception) { @runner.execute! }
|
215
|
-
end
|
216
|
-
|
217
|
-
should "call error_and_exit if it is an ActionException" do
|
218
|
-
@exception = Vagrant::Actions::ActionException.new("foo")
|
219
|
-
@actions[0].stubs(:prepare).raises(@exception)
|
220
|
-
|
221
|
-
@runner.expects(:error_and_exit).with(@exception.key, @exception.data).once
|
222
|
-
@runner.execute!
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
context "actions" do
|
228
|
-
setup do
|
229
|
-
@runner = Vagrant::Actions::Runner.new
|
230
|
-
end
|
231
|
-
|
232
|
-
should "setup actions to be an array" do
|
233
|
-
assert_nil @runner.instance_variable_get(:@actions)
|
234
|
-
actions = @runner.actions
|
235
|
-
assert actions.is_a?(Array)
|
236
|
-
assert actions.equal?(@runner.actions)
|
237
|
-
end
|
238
|
-
|
239
|
-
should "be empty initially" do
|
240
|
-
assert @runner.actions.empty?
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
context "duplicate action exceptions" do
|
245
|
-
setup do
|
246
|
-
@runner = Vagrant::Actions::Runner.new
|
247
|
-
end
|
248
|
-
|
249
|
-
should "should be raised when a duplicate is added" do
|
250
|
-
action = mock_fake_action
|
251
|
-
2.times {@runner.actions << action }
|
252
|
-
assert_raise Vagrant::Actions::DuplicateActionException do
|
253
|
-
@runner.execute!
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
should "should not be raise when no duplicate actions are present" do
|
258
|
-
@runner.actions << mock_fake_action(Vagrant::Actions::Base, @runner)
|
259
|
-
@runner.actions << mock_fake_action(Vagrant::Actions::VM::Halt, @runner)
|
260
|
-
|
261
|
-
assert_nothing_raised { @runner.execute! }
|
262
|
-
end
|
263
|
-
|
264
|
-
should "should not raise when a single action is specified" do
|
265
|
-
assert_nothing_raised { @runner.execute!(Vagrant::Actions::Base) }
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class BootActionTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@runner, @vm, @action = mock_action(Vagrant::Actions::VM::Boot)
|
6
|
-
@runner.stubs(:invoke_callback)
|
7
|
-
end
|
8
|
-
|
9
|
-
context "execution" do
|
10
|
-
should "invoke the 'boot' around callback" do
|
11
|
-
boot_seq = sequence("boot_seq")
|
12
|
-
@runner.expects(:invoke_around_callback).with(:boot).once.in_sequence(boot_seq).yields
|
13
|
-
@action.expects(:boot).in_sequence(boot_seq)
|
14
|
-
@action.expects(:wait_for_boot).returns(true).in_sequence(boot_seq)
|
15
|
-
@action.execute!
|
16
|
-
end
|
17
|
-
|
18
|
-
should "error and exit if the bootup failed" do
|
19
|
-
fail_boot_seq = sequence("fail_boot_seq")
|
20
|
-
@action.expects(:boot).once.in_sequence(fail_boot_seq)
|
21
|
-
@action.expects(:wait_for_boot).returns(false).in_sequence(fail_boot_seq)
|
22
|
-
@action.expects(:error_and_exit).with(:vm_failed_to_boot).once.in_sequence(fail_boot_seq)
|
23
|
-
@action.execute!
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context "booting" do
|
28
|
-
should "start the VM in specified mode" do
|
29
|
-
mode = mock("boot_mode")
|
30
|
-
@runner.env.config.vm.boot_mode = mode
|
31
|
-
@vm.expects(:start).with(mode).once
|
32
|
-
@action.boot
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "waiting for boot" do
|
37
|
-
should "repeatedly ping the SSH port and return false with no response" do
|
38
|
-
seq = sequence('pings')
|
39
|
-
@runner.ssh.expects(:up?).times(@runner.env.config.ssh.max_tries.to_i - 1).returns(false).in_sequence(seq)
|
40
|
-
@runner.ssh.expects(:up?).once.returns(true).in_sequence(seq)
|
41
|
-
assert @action.wait_for_boot(0)
|
42
|
-
end
|
43
|
-
|
44
|
-
should "ping the max number of times then just return" do
|
45
|
-
@runner.ssh.expects(:up?).times(@runner.env.config.ssh.max_tries.to_i).returns(false)
|
46
|
-
assert !@action.wait_for_boot(0)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class CustomizeActionTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@runner, @vm, @action = mock_action(Vagrant::Actions::VM::Customize)
|
6
|
-
end
|
7
|
-
|
8
|
-
context "executing" do
|
9
|
-
should "run the VM customization procs then save the VM" do
|
10
|
-
@runner.env.config.vm.customize { |vm| }
|
11
|
-
@runner.env.config.vm.expects(:run_procs!).with(@vm)
|
12
|
-
@vm.expects(:save).once
|
13
|
-
@action.execute!
|
14
|
-
end
|
15
|
-
|
16
|
-
should "not run anything if no customize blocks exist" do
|
17
|
-
@vm.expects(:save).never
|
18
|
-
@action.execute!
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class DestroyActionTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@runner, @vm, @action = mock_action(Vagrant::Actions::VM::Destroy)
|
6
|
-
end
|
7
|
-
|
8
|
-
context "executing" do
|
9
|
-
should "invoke an around callback around the destroy" do
|
10
|
-
@runner.expects(:invoke_around_callback).with(:destroy).once
|
11
|
-
@action.execute!
|
12
|
-
end
|
13
|
-
|
14
|
-
should "destroy VM and clear persist" do
|
15
|
-
@runner.stubs(:invoke_around_callback).yields
|
16
|
-
clear_seq = sequence("clear")
|
17
|
-
@action.expects(:destroy_vm).in_sequence(clear_seq)
|
18
|
-
@action.expects(:update_dotfile).in_sequence(clear_seq)
|
19
|
-
@action.execute!
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "destroying the VM" do
|
24
|
-
should "destroy VM and attached images" do
|
25
|
-
@vm.expects(:destroy).with(:destroy_medium => :delete).once
|
26
|
-
@runner.expects(:vm=).with(nil).once
|
27
|
-
@action.destroy_vm
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context "updating the dotfile" do
|
32
|
-
should "update the environment dotfile" do
|
33
|
-
@runner.env.expects(:update_dotfile).once
|
34
|
-
@action.update_dotfile
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class DownActionTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@runner, @vm, @action = mock_action(Vagrant::Actions::VM::Down)
|
6
|
-
end
|
7
|
-
|
8
|
-
context "preparing" do
|
9
|
-
setup do
|
10
|
-
@vm.stubs(:running?).returns(false)
|
11
|
-
end
|
12
|
-
|
13
|
-
def setup_action_expectations(order)
|
14
|
-
default_seq = sequence("default_seq")
|
15
|
-
order.each do |action|
|
16
|
-
action = [action] unless action.is_a?(Array)
|
17
|
-
@runner.expects(:add_action).with(action.shift, *action).once.in_sequence(default_seq)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
should "add the destroy action alone if VM is not running" do
|
22
|
-
setup_action_expectations([Vagrant::Actions::VM::Network, Vagrant::Actions::VM::Destroy])
|
23
|
-
@action.prepare
|
24
|
-
end
|
25
|
-
|
26
|
-
should "add the halt action if the VM is running" do
|
27
|
-
@vm.expects(:running?).returns(true)
|
28
|
-
setup_action_expectations([[Vagrant::Actions::VM::Halt, {:force => true}], Vagrant::Actions::VM::Network, Vagrant::Actions::VM::Destroy])
|
29
|
-
@action.prepare
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context "after halting" do
|
34
|
-
should "sleep" do
|
35
|
-
Kernel.expects(:sleep).once
|
36
|
-
@action.after_halt
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,88 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
2
|
-
|
3
|
-
class ExportActionTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@runner, @vm, @action = mock_action(Vagrant::Actions::VM::Export)
|
6
|
-
@action.stubs(:complete_progress)
|
7
|
-
end
|
8
|
-
|
9
|
-
context "executing" do
|
10
|
-
should "setup the temp dir then export" do
|
11
|
-
exec_seq = sequence('execute')
|
12
|
-
@action.expects(:setup_temp_dir).once.in_sequence(exec_seq)
|
13
|
-
@action.expects(:export).once.in_sequence(exec_seq)
|
14
|
-
@action.execute!
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
context "setting up the temporary directory" do
|
19
|
-
setup do
|
20
|
-
@time_now = Time.now.to_i.to_s
|
21
|
-
Time.stubs(:now).returns(@time_now)
|
22
|
-
|
23
|
-
@tmp_path = "foo"
|
24
|
-
@runner.env.stubs(:tmp_path).returns(@tmp_path)
|
25
|
-
|
26
|
-
@temp_dir = File.join(@runner.env.tmp_path, @time_now)
|
27
|
-
FileUtils.stubs(:mkpath)
|
28
|
-
end
|
29
|
-
|
30
|
-
should "create the temporary directory using the current time" do
|
31
|
-
FileUtils.expects(:mkpath).with(@temp_dir).once
|
32
|
-
@action.setup_temp_dir
|
33
|
-
end
|
34
|
-
|
35
|
-
should "set the temporary directory to the temp_dir variable" do
|
36
|
-
@action.setup_temp_dir
|
37
|
-
assert_equal @temp_dir, @action.temp_dir
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context "path to OVF file" do
|
42
|
-
setup do
|
43
|
-
@temp_dir = "foo"
|
44
|
-
@action.stubs(:temp_dir).returns(@temp_dir)
|
45
|
-
end
|
46
|
-
|
47
|
-
should "be the temporary directory joined with the OVF filename" do
|
48
|
-
assert_equal File.join(@temp_dir, @runner.env.config.vm.box_ovf), @action.ovf_path
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "exporting" do
|
53
|
-
setup do
|
54
|
-
@ovf_path = mock("ovf_path")
|
55
|
-
@action.stubs(:ovf_path).returns(@ovf_path)
|
56
|
-
end
|
57
|
-
|
58
|
-
should "call export on the runner with the ovf path" do
|
59
|
-
@vm.expects(:export).with(@ovf_path).once
|
60
|
-
@action.export
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context "cleanup" do
|
65
|
-
setup do
|
66
|
-
@temp_dir = "foo"
|
67
|
-
@action.stubs(:temp_dir).returns(@temp_dir)
|
68
|
-
end
|
69
|
-
|
70
|
-
should "remove the temporary directory" do
|
71
|
-
FileUtils.expects(:rm_r).with(@temp_dir).once
|
72
|
-
@action.cleanup
|
73
|
-
end
|
74
|
-
|
75
|
-
should "not remove a directory if temp_dir is nil" do
|
76
|
-
FileUtils.expects(:rm_r).never
|
77
|
-
@action.stubs(:temp_dir).returns(nil)
|
78
|
-
@action.cleanup
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
context "rescue" do
|
83
|
-
should "call cleanup method" do
|
84
|
-
@action.expects(:cleanup).once
|
85
|
-
@action.rescue(nil)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|