Structured yaml facts - first pass
This commit is contained in:
parent
46eedb6491
commit
770d927ba1
|
@ -8,6 +8,7 @@ module VagrantPlugins
|
||||||
attr_accessor :binary_path
|
attr_accessor :binary_path
|
||||||
|
|
||||||
attr_accessor :facter
|
attr_accessor :facter
|
||||||
|
attr_accessor :structured_facts
|
||||||
attr_accessor :hiera_config_path
|
attr_accessor :hiera_config_path
|
||||||
attr_accessor :manifest_file
|
attr_accessor :manifest_file
|
||||||
attr_accessor :manifests_path
|
attr_accessor :manifests_path
|
||||||
|
@ -32,6 +33,7 @@ module VagrantPlugins
|
||||||
@module_path = UNSET_VALUE
|
@module_path = UNSET_VALUE
|
||||||
@options = []
|
@options = []
|
||||||
@facter = {}
|
@facter = {}
|
||||||
|
@structured_facts = UNSET_VALUE
|
||||||
@synced_folder_type = UNSET_VALUE
|
@synced_folder_type = UNSET_VALUE
|
||||||
@temp_dir = UNSET_VALUE
|
@temp_dir = UNSET_VALUE
|
||||||
@working_directory = UNSET_VALUE
|
@working_directory = UNSET_VALUE
|
||||||
|
@ -52,6 +54,7 @@ module VagrantPlugins
|
||||||
def merge(other)
|
def merge(other)
|
||||||
super.tap do |result|
|
super.tap do |result|
|
||||||
result.facter = @facter.merge(other.facter)
|
result.facter = @facter.merge(other.facter)
|
||||||
|
result.structured_facts = @facter.merge(other.structured_facts)
|
||||||
result.environment_path = @facter.merge(other.environment_path)
|
result.environment_path = @facter.merge(other.environment_path)
|
||||||
result.environment = @facter.merge(other.environment)
|
result.environment = @facter.merge(other.environment)
|
||||||
end
|
end
|
||||||
|
|
|
@ -121,6 +121,19 @@ module VagrantPlugins
|
||||||
@machine.communicate.upload(local_hiera_path, @hiera_config_path)
|
@machine.communicate.upload(local_hiera_path, @hiera_config_path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Build up the structured custom facts if we have any
|
||||||
|
# With structured facts on, we assume the config.facter is yaml.
|
||||||
|
if config.structured_facts && !config.facter.empty?
|
||||||
|
@facter_config_path = "/etc/facter/facts.d/vagrant_facts.yaml"
|
||||||
|
if windows?
|
||||||
|
@facter_config_path = "/ProgramData/PuppetLabs/facter/facts.d/vagrant_facts.yaml"
|
||||||
|
end
|
||||||
|
t = Tempfile.new("vagrant_facts.yaml")
|
||||||
|
t.write(config.facter)
|
||||||
|
t.close()
|
||||||
|
@machine.communicate.upload(t.path, @facter_config_path)
|
||||||
|
end
|
||||||
|
|
||||||
run_puppet_apply
|
run_puppet_apply
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -200,9 +213,9 @@ module VagrantPlugins
|
||||||
options << @manifest_file
|
options << @manifest_file
|
||||||
options = options.join(" ")
|
options = options.join(" ")
|
||||||
|
|
||||||
# Build up the custom facts if we have any
|
# Build up the (non-structured) custom facts if we have any
|
||||||
facter = ""
|
facter = ""
|
||||||
if !config.facter.empty?
|
if !config.structured_facts && !config.facter.empty?
|
||||||
facts = []
|
facts = []
|
||||||
config.facter.each do |key, value|
|
config.facter.each do |key, value|
|
||||||
facts << "FACTER_#{key}='#{value}'"
|
facts << "FACTER_#{key}='#{value}'"
|
||||||
|
|
Loading…
Reference in New Issue