Added global data hash to environment. "system"-wide data bag for vagrant
This commit is contained in:
parent
d65194d66e
commit
f72979df79
|
@ -145,6 +145,16 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Loads on initial access and reads data from the global data store.
|
||||||
|
# The global data store is global to Vagrant everywhere (in every environment),
|
||||||
|
# so it can be used to store system-wide information. Note that "system-wide"
|
||||||
|
# typically means "for this user" since the location of the global data
|
||||||
|
# store is in the home directory.
|
||||||
|
def global_data
|
||||||
|
return parent.global_data if parent
|
||||||
|
@global_data ||= DataStore.new(File.expand_path("global_data.json", home_path))
|
||||||
|
end
|
||||||
|
|
||||||
# Loads (on initial access) and reads data from the local data
|
# Loads (on initial access) and reads data from the local data
|
||||||
# store. This file is always at the root path as the file "~/.vagrant"
|
# store. This file is always at the root path as the file "~/.vagrant"
|
||||||
# and contains a JSON dump of a hash. See {DataStore} for more
|
# and contains a JSON dump of a hash. See {DataStore} for more
|
||||||
|
|
|
@ -245,6 +245,28 @@ class EnvironmentTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "global data" do
|
||||||
|
setup do
|
||||||
|
@env = mock_environment
|
||||||
|
end
|
||||||
|
|
||||||
|
should "lazy load the data store only once" do
|
||||||
|
result = mock("result")
|
||||||
|
Vagrant::DataStore.expects(:new).with(File.expand_path("global_data.json", @env.home_path)).returns(result).once
|
||||||
|
assert_equal result, @env.global_data
|
||||||
|
assert_equal result, @env.global_data
|
||||||
|
assert_equal result, @env.global_data
|
||||||
|
end
|
||||||
|
|
||||||
|
should "return the parent's local data if a parent exists" do
|
||||||
|
@env.stubs(:parent).returns(mock_environment)
|
||||||
|
result = @env.parent.global_data
|
||||||
|
|
||||||
|
Vagrant::DataStore.expects(:new).never
|
||||||
|
assert_equal result, @env.global_data
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "loading logger" do
|
context "loading logger" do
|
||||||
should "lazy load the logger only once" do
|
should "lazy load the logger only once" do
|
||||||
result = Vagrant::Util::ResourceLogger.new("vagrant", mock_environment)
|
result = Vagrant::Util::ResourceLogger.new("vagrant", mock_environment)
|
||||||
|
|
Loading…
Reference in New Issue