Merge pull request #10218 from briancain/fix-env-vars-puppet-windows

Fixes #8315: Properly set env variables for puppet provisioner
This commit is contained in:
Brian Cain 2018-09-19 09:04:01 -07:00 committed by GitHub
commit c3c7ad4ea2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 4 deletions

View File

@ -259,9 +259,11 @@ module VagrantPlugins
env_vars.map! do |env_var_string|
"$env:#{env_var_string}"
end
env_vars = env_vars.join("; ")
env_vars << ";"
else
env_vars = env_vars.join(" ")
end
env_vars = env_vars.join(" ")
end
command = [

View File

@ -27,7 +27,7 @@ describe VagrantPlugins::Puppet::Provisioner::Puppet do
end
describe "#run_puppet_apply" do
let(:options) { double("options") }
let(:options) { "--environment production" }
let(:binary_path) { "/opt/puppetlabs/bin" }
let(:manifest_file) { "default.pp" }
@ -36,7 +36,7 @@ describe VagrantPlugins::Puppet::Provisioner::Puppet do
allow(config).to receive(:environment_path).and_return(false)
allow(config).to receive(:facter).and_return(facts)
allow(config).to receive(:binary_path).and_return(binary_path)
allow(config).to receive(:environment_variables).and_return(nil)
allow(config).to receive(:environment_variables).and_return({hello: "there", test: "test"})
allow(config).to receive(:working_directory).and_return(false)
allow(config).to receive(:manifest_file).and_return(manifest_file)
allow(config).to receive(:structured_facts).and_return(double("structured_facts"))
@ -46,6 +46,29 @@ describe VagrantPlugins::Puppet::Provisioner::Puppet do
allow(@module_paths).to receive(:empty?).and_return(true)
expect(machine).to receive(:communicate).and_return(comm)
expect(machine.communicate).to receive(:sudo).with("hello=\"there\" test=\"test\" /opt/puppetlabs/bin/puppet apply --environment production --color=false --detailed-exitcodes ", anything)
subject.run_puppet_apply()
end
it "properly sets env variables on windows" do
allow(config).to receive(:options).and_return(options)
allow(config).to receive(:environment_path).and_return(false)
allow(config).to receive(:facter).and_return(facts)
allow(config).to receive(:binary_path).and_return(binary_path)
allow(config).to receive(:environment_variables).and_return({hello: "there", test: "test"})
allow(config).to receive(:working_directory).and_return(false)
allow(config).to receive(:manifest_file).and_return(manifest_file)
allow(config).to receive(:structured_facts).and_return(double("structured_facts"))
allow(subject).to receive(:windows?).and_return(true)
allow_message_expectations_on_nil
allow(@module_paths).to receive(:map) { module_paths }
allow(@module_paths).to receive(:empty?).and_return(true)
expect(machine).to receive(:communicate).and_return(comm)
expect(machine.communicate).to receive(:sudo).with("$env:hello=\"there\"; $env:test=\"test\"; /opt/puppetlabs/bin/puppet apply --environment production --color=false --detailed-exitcodes ", anything)
subject.run_puppet_apply()
end
end