vagrantup 0.7.8 → 0.8.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 +35 -0
- data/Gemfile +1 -7
- data/Rakefile +0 -11
- data/bin/vagrant +4 -0
- data/config/default.rb +1 -2
- data/lib/vagrant.rb +7 -5
- data/lib/vagrant/action.rb +5 -1
- data/lib/vagrant/action/builtin.rb +4 -1
- data/lib/vagrant/action/general/package.rb +6 -2
- data/lib/vagrant/action/vm.rb +2 -0
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +9 -22
- data/lib/vagrant/action/vm/clear_shared_folders.rb +9 -14
- data/lib/vagrant/action/vm/customize.rb +9 -4
- data/lib/vagrant/action/vm/forward_ports.rb +10 -11
- data/lib/vagrant/action/vm/match_mac_address.rb +8 -3
- data/lib/vagrant/action/vm/modify.rb +37 -0
- data/lib/vagrant/action/vm/network.rb +9 -2
- data/lib/vagrant/action/vm/provision.rb +10 -17
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
- data/lib/vagrant/action/vm/share_folders.rb +16 -8
- data/lib/vagrant/action/warden.rb +8 -2
- data/lib/vagrant/command/ssh.rb +4 -4
- data/lib/vagrant/command/ssh_config.rb +4 -2
- data/lib/vagrant/config/ssh.rb +3 -0
- data/lib/vagrant/config/vm.rb +16 -12
- data/lib/vagrant/downloaders/http.rb +2 -0
- data/lib/vagrant/environment.rb +136 -12
- data/lib/vagrant/errors.rb +15 -0
- data/lib/vagrant/provisioners.rb +1 -1
- data/lib/vagrant/provisioners/base.rb +4 -0
- data/lib/vagrant/provisioners/chef.rb +13 -11
- data/lib/vagrant/provisioners/{chef_server.rb → chef_client.rb} +5 -5
- data/lib/vagrant/provisioners/chef_solo.rb +48 -89
- data/lib/vagrant/provisioners/shell.rb +47 -12
- data/lib/vagrant/ssh.rb +61 -27
- data/lib/vagrant/systems.rb +1 -0
- data/lib/vagrant/systems/base.rb +1 -1
- data/lib/vagrant/systems/linux.rb +7 -9
- data/lib/vagrant/systems/redhat.rb +12 -4
- data/lib/vagrant/systems/solaris.rb +9 -4
- data/lib/vagrant/systems/suse.rb +9 -0
- data/lib/vagrant/ui.rb +12 -5
- data/lib/vagrant/util.rb +2 -2
- data/lib/vagrant/util/counter.rb +22 -0
- data/lib/vagrant/util/platform.rb +1 -2
- data/lib/vagrant/util/safe_exec.rb +28 -0
- data/lib/vagrant/version.rb +1 -1
- data/lib/vagrant/vm.rb +2 -0
- data/templates/chef_solo_solo.erb +4 -4
- data/templates/commands/init/Vagrantfile.erb +4 -0
- data/templates/locales/en.yml +31 -8
- data/templates/ssh_config.erb +6 -0
- data/test/test_helper.rb +5 -3
- data/test/vagrant/action/builder_test.rb +4 -0
- data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +18 -38
- data/test/vagrant/action/vm/clear_shared_folders_test.rb +7 -16
- data/test/vagrant/action/vm/customize_test.rb +12 -5
- data/test/vagrant/action/vm/forward_ports_test.rb +12 -7
- data/test/vagrant/action/vm/match_mac_address_test.rb +5 -1
- data/test/vagrant/action/vm/modify_test.rb +38 -0
- data/test/vagrant/action/vm/provision_test.rb +13 -38
- data/test/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
- data/test/vagrant/action/vm/share_folders_test.rb +10 -5
- data/test/vagrant/action/warden_test.rb +13 -7
- data/test/vagrant/config/vm_test.rb +0 -22
- data/test/vagrant/downloaders/http_test.rb +2 -0
- data/test/vagrant/environment_test.rb +110 -20
- data/test/vagrant/provisioners/{chef_server_test.rb → chef_client_test.rb} +2 -2
- data/test/vagrant/provisioners/chef_solo_test.rb +16 -173
- data/test/vagrant/ssh_test.rb +8 -43
- data/test/vagrant/systems/linux_test.rb +9 -19
- data/test/vagrant/util/counter_test.rb +29 -0
- data/test/vagrant/util/platform_test.rb +2 -2
- data/vagrant.gemspec +1 -2
- metadata +13 -23
- data/lib/vagrant/util/plain_logger.rb +0 -25
- data/lib/vagrant/util/resource_logger.rb +0 -63
- data/test/vagrant/util/plain_logger_test.rb +0 -17
- data/test/vagrant/util/resource_logger_test.rb +0 -78
data/test/vagrant/ssh_test.rb
CHANGED
@@ -20,10 +20,8 @@ class SshTest < Test::Unit::TestCase
|
|
20
20
|
mock_ssh
|
21
21
|
@ssh.stubs(:check_key_permissions)
|
22
22
|
@ssh.stubs(:port).returns(2222)
|
23
|
-
|
23
|
+
@ssh.stubs(:safe_exec)
|
24
24
|
Kernel.stubs(:system).returns(true)
|
25
|
-
|
26
|
-
Vagrant::Util::Platform.stubs(:leopard?).returns(false)
|
27
25
|
end
|
28
26
|
|
29
27
|
should "raise an exception if SSH is not found" do
|
@@ -41,7 +39,7 @@ class SshTest < Test::Unit::TestCase
|
|
41
39
|
should "check key permissions prior to exec" do
|
42
40
|
exec_seq = sequence("exec_seq")
|
43
41
|
@ssh.expects(:check_key_permissions).with(@env.config.ssh.private_key_path).once.in_sequence(exec_seq)
|
44
|
-
|
42
|
+
@ssh.expects(:safe_exec).in_sequence(exec_seq)
|
45
43
|
@ssh.connect
|
46
44
|
end
|
47
45
|
|
@@ -81,42 +79,20 @@ class SshTest < Test::Unit::TestCase
|
|
81
79
|
@ssh.connect
|
82
80
|
end
|
83
81
|
|
84
|
-
context "on leopard" do
|
85
|
-
setup do
|
86
|
-
Vagrant::Util::Platform.stubs(:leopard?).returns(true)
|
87
|
-
end
|
88
|
-
|
89
|
-
teardown do
|
90
|
-
Vagrant::Util::Platform.stubs(:leopard?).returns(false)
|
91
|
-
end
|
92
|
-
|
93
|
-
should "fork, exec, and wait" do
|
94
|
-
pid = mock("pid")
|
95
|
-
@ssh.expects(:fork).once.returns(pid)
|
96
|
-
Process.expects(:wait).with(pid)
|
97
|
-
|
98
|
-
@ssh.connect
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
82
|
context "checking windows" do
|
103
|
-
teardown do
|
104
|
-
Mario::Platform.forced = Mario::Platform::Linux
|
105
|
-
end
|
106
|
-
|
107
83
|
should "error and exit if the platform is windows" do
|
108
|
-
|
84
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(true)
|
109
85
|
assert_raises(Vagrant::Errors::SSHUnavailableWindows) { @ssh.connect }
|
110
86
|
end
|
111
87
|
|
112
88
|
should "not error and exit if the platform is anything other that windows" do
|
113
|
-
|
89
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(false)
|
114
90
|
assert_nothing_raised { @ssh.connect }
|
115
91
|
end
|
116
92
|
end
|
117
93
|
|
118
94
|
def ssh_exec_expect(port, key_path, uname, host)
|
119
|
-
|
95
|
+
@ssh.expects(:safe_exec).with() do |arg|
|
120
96
|
assert arg =~ /^ssh/, "ssh command expected"
|
121
97
|
assert arg =~ /-p #{port}/, "-p #{port} expected"
|
122
98
|
assert arg =~ /-i #{key_path}/, "-i #{key_path} expected"
|
@@ -171,7 +147,7 @@ class SshTest < Test::Unit::TestCase
|
|
171
147
|
|
172
148
|
should "yield an SSH session object" do
|
173
149
|
raw = mock("raw")
|
174
|
-
Net::SSH.expects(:start).
|
150
|
+
Net::SSH.expects(:start).returns(raw)
|
175
151
|
@ssh.execute do |ssh|
|
176
152
|
assert ssh.is_a?(Vagrant::SSH::Session)
|
177
153
|
assert_equal raw, ssh.session
|
@@ -227,13 +203,6 @@ class SshTest < Test::Unit::TestCase
|
|
227
203
|
}
|
228
204
|
end
|
229
205
|
|
230
|
-
should "return false if the connection is dropped" do
|
231
|
-
Net::SSH.expects(:start).raises(Net::SSH::Disconnect)
|
232
|
-
assert_nothing_raised {
|
233
|
-
assert !@ssh.up?
|
234
|
-
}
|
235
|
-
end
|
236
|
-
|
237
206
|
should "specifity the timeout as an option to execute" do
|
238
207
|
@ssh.expects(:execute).yields(true).with() do |opts|
|
239
208
|
assert_equal @env.config.ssh.timeout, opts[:timeout]
|
@@ -276,15 +245,11 @@ class SshTest < Test::Unit::TestCase
|
|
276
245
|
@stat.stubs(:owned?).returns(true)
|
277
246
|
File.stubs(:stat).returns(@stat)
|
278
247
|
|
279
|
-
|
280
|
-
end
|
281
|
-
|
282
|
-
teardown do
|
283
|
-
Mario::Platform.forced = Mario::Platform::Linux
|
248
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(false)
|
284
249
|
end
|
285
250
|
|
286
251
|
should "do nothing if on windows" do
|
287
|
-
|
252
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(true)
|
288
253
|
File.expects(:stat).never
|
289
254
|
@ssh.check_key_permissions(@key_path)
|
290
255
|
end
|
@@ -31,15 +31,17 @@ class LinuxSystemTest < Test::Unit::TestCase
|
|
31
31
|
setup do
|
32
32
|
@name = "foo"
|
33
33
|
@guestpath = "/bar"
|
34
|
+
@owner = "owner"
|
35
|
+
@group = "group"
|
34
36
|
end
|
35
37
|
|
36
38
|
should "create the dir, mount the folder, then set permissions" do
|
37
39
|
mount_seq = sequence("mount_seq")
|
38
40
|
@ssh.expects(:exec!).with("sudo mkdir -p #{@guestpath}").in_sequence(mount_seq)
|
39
|
-
@instance.expects(:mount_folder).with(@ssh, @name, @guestpath).in_sequence(mount_seq)
|
40
|
-
@ssh.expects(:exec!).with("sudo chown #{@
|
41
|
+
@instance.expects(:mount_folder).with(@ssh, @name, @guestpath, @owner, @group).in_sequence(mount_seq)
|
42
|
+
@ssh.expects(:exec!).with("sudo chown `id -u #{@owner}`:`id -g #{@group}` #{@guestpath}").in_sequence(mount_seq)
|
41
43
|
|
42
|
-
@instance.mount_shared_folder(@ssh, @name, @guestpath)
|
44
|
+
@instance.mount_shared_folder(@ssh, @name, @guestpath, @owner, @group)
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
@@ -50,6 +52,8 @@ class LinuxSystemTest < Test::Unit::TestCase
|
|
50
52
|
setup do
|
51
53
|
@name = "foo"
|
52
54
|
@guestpath = "bar"
|
55
|
+
@owner = "owner"
|
56
|
+
@group = "group"
|
53
57
|
@sleeptime = 0
|
54
58
|
@limit = 10
|
55
59
|
|
@@ -57,11 +61,11 @@ class LinuxSystemTest < Test::Unit::TestCase
|
|
57
61
|
end
|
58
62
|
|
59
63
|
def mount_folder
|
60
|
-
@instance.mount_folder(@ssh, @name, @guestpath, @sleeptime)
|
64
|
+
@instance.mount_folder(@ssh, @name, @guestpath, @owner, @group, @sleeptime)
|
61
65
|
end
|
62
66
|
|
63
67
|
should "execute the proper mount command" do
|
64
|
-
@ssh.expects(:exec!).with("sudo mount -t vboxsf -o uid=`id -u #{@
|
68
|
+
@ssh.expects(:exec!).with("sudo mount -t vboxsf -o uid=`id -u #{@owner}`,gid=`id -g #{@group}` #{@name} #{@guestpath}").returns(@success_return)
|
65
69
|
mount_folder
|
66
70
|
end
|
67
71
|
|
@@ -96,19 +100,5 @@ class LinuxSystemTest < Test::Unit::TestCase
|
|
96
100
|
mount_folder
|
97
101
|
}
|
98
102
|
end
|
99
|
-
|
100
|
-
should "add uid AND gid to mount" do
|
101
|
-
uid = "foo"
|
102
|
-
gid = "bar"
|
103
|
-
env = vagrant_env(vagrantfile(<<-vf))
|
104
|
-
config.vm.shared_folder_uid = "#{uid}"
|
105
|
-
config.vm.shared_folder_gid = "#{gid}"
|
106
|
-
vf
|
107
|
-
|
108
|
-
@vm.stubs(:env).returns(env)
|
109
|
-
|
110
|
-
@ssh.expects(:exec!).with("sudo mount -t vboxsf -o uid=`id -u #{uid}`,gid=`id -g #{gid}` #{@name} #{@guestpath}").returns(@success_return)
|
111
|
-
mount_folder
|
112
|
-
end
|
113
103
|
end
|
114
104
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class CounterUtilTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@klass = Class.new do
|
6
|
+
extend Vagrant::Util::Counter
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context "basic counter" do
|
11
|
+
should "get and update the counter" do
|
12
|
+
assert_equal 1, @klass.get_and_update_counter
|
13
|
+
assert_equal 2, @klass.get_and_update_counter
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "multiple classes with a counter" do
|
18
|
+
setup do
|
19
|
+
@klass2 = Class.new do
|
20
|
+
extend Vagrant::Util::Counter
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
should "not affect other classes" do
|
25
|
+
assert_equal 1, @klass.get_and_update_counter
|
26
|
+
assert_equal 1, @klass2.get_and_update_counter
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -6,12 +6,12 @@ class PlatformTest < Test::Unit::TestCase
|
|
6
6
|
# This constant is not defined on non-windows platforms, so define it here
|
7
7
|
File::BINARY = 4096 unless defined?(File::BINARY)
|
8
8
|
|
9
|
-
|
9
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(true)
|
10
10
|
assert_equal Vagrant::Util::Platform.tar_file_options, File::CREAT|File::EXCL|File::WRONLY|File::BINARY
|
11
11
|
end
|
12
12
|
|
13
13
|
should "not include binary bit on other platforms" do
|
14
|
-
|
14
|
+
Vagrant::Util::Platform.stubs(:windows?).returns(false)
|
15
15
|
assert_equal Vagrant::Util::Platform.tar_file_options, File::CREAT|File::EXCL|File::WRONLY
|
16
16
|
end
|
17
17
|
end
|
data/vagrant.gemspec
CHANGED
@@ -17,12 +17,11 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.add_dependency "archive-tar-minitar", "= 0.5.2"
|
18
18
|
s.add_dependency "erubis", "~> 2.7.0"
|
19
19
|
s.add_dependency "json", "~> 1.5.1"
|
20
|
-
s.add_dependency "mario", "~> 0.0.6"
|
21
20
|
s.add_dependency "net-ssh", "~> 2.1.4"
|
22
21
|
s.add_dependency "net-scp", "~> 1.0.4"
|
23
22
|
s.add_dependency "i18n", "~> 0.5.0"
|
24
23
|
s.add_dependency "thor", "~> 0.14.6"
|
25
|
-
s.add_dependency "virtualbox", "~> 0.
|
24
|
+
s.add_dependency "virtualbox", "~> 0.9.0"
|
26
25
|
|
27
26
|
s.add_development_dependency "rake"
|
28
27
|
s.add_development_dependency "contest", ">= 0.1.2"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrantup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mitchell Hashimoto
|
@@ -53,20 +53,6 @@ dependencies:
|
|
53
53
|
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 1.5.1
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: mario
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ~>
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.0.6
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.0.6
|
70
56
|
- !ruby/object:Gem::Dependency
|
71
57
|
name: net-ssh
|
72
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,14 +115,14 @@ dependencies:
|
|
129
115
|
requirements:
|
130
116
|
- - ~>
|
131
117
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
118
|
+
version: 0.9.0
|
133
119
|
type: :runtime
|
134
120
|
prerelease: false
|
135
121
|
version_requirements: !ruby/object:Gem::Requirement
|
136
122
|
requirements:
|
137
123
|
- - ~>
|
138
124
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.
|
125
|
+
version: 0.9.0
|
140
126
|
- !ruby/object:Gem::Dependency
|
141
127
|
name: rake
|
142
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,12 +240,14 @@ files:
|
|
254
240
|
- lib/vagrant/action/vm/host_name.rb
|
255
241
|
- lib/vagrant/action/vm/import.rb
|
256
242
|
- lib/vagrant/action/vm/match_mac_address.rb
|
243
|
+
- lib/vagrant/action/vm/modify.rb
|
257
244
|
- lib/vagrant/action/vm/network.rb
|
258
245
|
- lib/vagrant/action/vm/nfs.rb
|
259
246
|
- lib/vagrant/action/vm/nfs_helpers.rb
|
260
247
|
- lib/vagrant/action/vm/package.rb
|
261
248
|
- lib/vagrant/action/vm/package_vagrantfile.rb
|
262
249
|
- lib/vagrant/action/vm/provision.rb
|
250
|
+
- lib/vagrant/action/vm/provisioner_cleanup.rb
|
263
251
|
- lib/vagrant/action/vm/resume.rb
|
264
252
|
- lib/vagrant/action/vm/share_folders.rb
|
265
253
|
- lib/vagrant/action/vm/suspend.rb
|
@@ -314,7 +302,7 @@ files:
|
|
314
302
|
- lib/vagrant/provisioners.rb
|
315
303
|
- lib/vagrant/provisioners/base.rb
|
316
304
|
- lib/vagrant/provisioners/chef.rb
|
317
|
-
- lib/vagrant/provisioners/
|
305
|
+
- lib/vagrant/provisioners/chef_client.rb
|
318
306
|
- lib/vagrant/provisioners/chef_solo.rb
|
319
307
|
- lib/vagrant/provisioners/puppet.rb
|
320
308
|
- lib/vagrant/provisioners/puppet_server.rb
|
@@ -331,16 +319,17 @@ files:
|
|
331
319
|
- lib/vagrant/systems/linux/error.rb
|
332
320
|
- lib/vagrant/systems/redhat.rb
|
333
321
|
- lib/vagrant/systems/solaris.rb
|
322
|
+
- lib/vagrant/systems/suse.rb
|
334
323
|
- lib/vagrant/systems/ubuntu.rb
|
335
324
|
- lib/vagrant/test_helpers.rb
|
336
325
|
- lib/vagrant/ui.rb
|
337
326
|
- lib/vagrant/util.rb
|
338
327
|
- lib/vagrant/util/busy.rb
|
328
|
+
- lib/vagrant/util/counter.rb
|
339
329
|
- lib/vagrant/util/hash_with_indifferent_access.rb
|
340
|
-
- lib/vagrant/util/plain_logger.rb
|
341
330
|
- lib/vagrant/util/platform.rb
|
342
|
-
- lib/vagrant/util/resource_logger.rb
|
343
331
|
- lib/vagrant/util/retryable.rb
|
332
|
+
- lib/vagrant/util/safe_exec.rb
|
344
333
|
- lib/vagrant/util/stacked_proc_runner.rb
|
345
334
|
- lib/vagrant/util/template_renderer.rb
|
346
335
|
- lib/vagrant/version.rb
|
@@ -387,12 +376,14 @@ files:
|
|
387
376
|
- test/vagrant/action/vm/host_name_test.rb
|
388
377
|
- test/vagrant/action/vm/import_test.rb
|
389
378
|
- test/vagrant/action/vm/match_mac_address_test.rb
|
379
|
+
- test/vagrant/action/vm/modify_test.rb
|
390
380
|
- test/vagrant/action/vm/network_test.rb
|
391
381
|
- test/vagrant/action/vm/nfs_helpers_test.rb
|
392
382
|
- test/vagrant/action/vm/nfs_test.rb
|
393
383
|
- test/vagrant/action/vm/package_test.rb
|
394
384
|
- test/vagrant/action/vm/package_vagrantfile_test.rb
|
395
385
|
- test/vagrant/action/vm/provision_test.rb
|
386
|
+
- test/vagrant/action/vm/provisioner_cleanup_test.rb
|
396
387
|
- test/vagrant/action/vm/resume_test.rb
|
397
388
|
- test/vagrant/action/vm/share_folders_test.rb
|
398
389
|
- test/vagrant/action/vm/suspend_test.rb
|
@@ -423,7 +414,7 @@ files:
|
|
423
414
|
- test/vagrant/hosts/linux_test.rb
|
424
415
|
- test/vagrant/plugin_test.rb
|
425
416
|
- test/vagrant/provisioners/base_test.rb
|
426
|
-
- test/vagrant/provisioners/
|
417
|
+
- test/vagrant/provisioners/chef_client_test.rb
|
427
418
|
- test/vagrant/provisioners/chef_solo_test.rb
|
428
419
|
- test/vagrant/provisioners/chef_test.rb
|
429
420
|
- test/vagrant/provisioners/puppet_server_test.rb
|
@@ -435,10 +426,9 @@ files:
|
|
435
426
|
- test/vagrant/systems/linux_test.rb
|
436
427
|
- test/vagrant/ui_test.rb
|
437
428
|
- test/vagrant/util/busy_test.rb
|
429
|
+
- test/vagrant/util/counter_test.rb
|
438
430
|
- test/vagrant/util/hash_with_indifferent_access_test.rb
|
439
|
-
- test/vagrant/util/plain_logger_test.rb
|
440
431
|
- test/vagrant/util/platform_test.rb
|
441
|
-
- test/vagrant/util/resource_logger_test.rb
|
442
432
|
- test/vagrant/util/retryable_test.rb
|
443
433
|
- test/vagrant/util/stacked_proc_runner_test.rb
|
444
434
|
- test/vagrant/util/template_renderer_test.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
module Vagrant
|
4
|
-
module Util
|
5
|
-
# Subclass of the standard library logger which has no format on
|
6
|
-
# its own. The message sent to the logger is outputted as-is.
|
7
|
-
class PlainLogger < ::Logger
|
8
|
-
# This is the method which is called for all debug, info, error,
|
9
|
-
# etc. methods by the logger. This is overriden to verify that
|
10
|
-
# the output is always flushed.
|
11
|
-
#
|
12
|
-
# Logger by default syncs all log devices but this just verifies
|
13
|
-
# it is truly flushed.
|
14
|
-
def add(*args)
|
15
|
-
super
|
16
|
-
@logdev.dev.flush if @logdev
|
17
|
-
end
|
18
|
-
|
19
|
-
def format_message(level, time, progname, msg)
|
20
|
-
# We do no formatting, its up to the user
|
21
|
-
"#{msg}\n"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'thread'
|
2
|
-
|
3
|
-
module Vagrant
|
4
|
-
module Util
|
5
|
-
# Represents a logger for a specific resource within Vagrant. Each
|
6
|
-
# logger should be initialized and set to represent a single
|
7
|
-
# resource. Each logged message will then appear in the following
|
8
|
-
# format:
|
9
|
-
#
|
10
|
-
# [resource] message
|
11
|
-
#
|
12
|
-
# This class is thread safe. The backing class which actually does
|
13
|
-
# all the logging IO is protected.
|
14
|
-
class ResourceLogger
|
15
|
-
@@singleton_logger = nil
|
16
|
-
@@writer_lock = Mutex.new
|
17
|
-
|
18
|
-
# The resource which this logger represents.
|
19
|
-
attr_reader :resource
|
20
|
-
|
21
|
-
# The environment that this logger is part of
|
22
|
-
attr_reader :env
|
23
|
-
|
24
|
-
# The backing logger which actually handles the IO. This logger
|
25
|
-
# should be a subclass of the standard library Logger, in general.
|
26
|
-
# IMPORTANT: This logger must be thread-safe.
|
27
|
-
attr_reader :logger
|
28
|
-
|
29
|
-
class << self
|
30
|
-
# Returns a singleton logger. If one has not yet be
|
31
|
-
# instantiated, then the given environment will be used to
|
32
|
-
# create a new logger.
|
33
|
-
def singleton_logger(env=nil)
|
34
|
-
return PlainLogger.new(nil) if !env.loaded?
|
35
|
-
|
36
|
-
@@singleton_logger ||= begin
|
37
|
-
file = env.log_path.join("#{Time.now.to_i}.log")
|
38
|
-
PlainLogger.new(file)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# Resets the singleton logger (only used for testing).
|
43
|
-
def reset_singleton_logger!
|
44
|
-
@@singleton_logger = nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def initialize(resource, env)
|
49
|
-
@resource = resource
|
50
|
-
@env = env
|
51
|
-
@logger = self.class.singleton_logger(env)
|
52
|
-
end
|
53
|
-
|
54
|
-
[:debug, :info, :error, :fatal].each do |method|
|
55
|
-
define_method(method) do |message|
|
56
|
-
@@writer_lock.synchronize do
|
57
|
-
logger.send(method, "[#{resource}] #{message}")
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
|
3
|
-
class PlainLoggerUtilTest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@klass = Vagrant::Util::PlainLogger
|
6
|
-
@instance = @klass.new(nil)
|
7
|
-
end
|
8
|
-
|
9
|
-
should "inherit from the standard logger" do
|
10
|
-
assert @instance.is_a?(::Logger)
|
11
|
-
end
|
12
|
-
|
13
|
-
should "just add a newline to the message" do
|
14
|
-
msg = "foo bar baz"
|
15
|
-
assert_equal "#{msg}\n", @instance.format_message("1", "2", "3", msg)
|
16
|
-
end
|
17
|
-
end
|