soloist 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/soloist +1 -6
- data/lib/soloist/chef_config_generator.rb +13 -0
- data/lib/soloist/version.rb +1 -1
- data/spec/chef_config_generator_spec.rb +31 -1
- metadata +4 -4
data/bin/soloist
CHANGED
@@ -39,12 +39,7 @@ config_generator = ChefConfigGenerator.new(soloistrc_contents, soloistrc_path)
|
|
39
39
|
solo_rb = fileify(config_generator.solo_rb)
|
40
40
|
metadata_json = fileify(config_generator.json_file)
|
41
41
|
|
42
|
-
|
43
|
-
%w{BUNDLE_PATH GEM_HOME GEM_PATH RAILS_ENV RACK_ENV}.each do |v|
|
44
|
-
env_vars << "#{v}=#{ENV[v]}" unless ENV[v].nil?
|
45
|
-
end
|
46
|
-
|
47
|
-
command = "sudo bash -c '#{env_vars.join(' ')} chef-solo -j #{metadata_json.path} -c #{solo_rb.path} -l #{log_level}'"
|
42
|
+
command = "sudo bash -c '#{config_generator.preserved_environment_variables_string} chef-solo -j #{metadata_json.path} -c #{solo_rb.path} -l #{log_level}'"
|
48
43
|
|
49
44
|
puts "running chef: " + command
|
50
45
|
system(command) || exit(1)
|
@@ -42,4 +42,17 @@ class ChefConfigGenerator
|
|
42
42
|
def json_file
|
43
43
|
json_hash.to_json
|
44
44
|
end
|
45
|
+
|
46
|
+
def preserved_environment_variables
|
47
|
+
always_passed = %w{PATH BUNDLE_PATH GEM_HOME GEM_PATH RAILS_ENV RACK_ENV}
|
48
|
+
always_passed += @hash["env_variable_switches"].keys if @hash["env_variable_switches"]
|
49
|
+
always_passed
|
50
|
+
end
|
51
|
+
|
52
|
+
def preserved_environment_variables_string
|
53
|
+
variable_array = []
|
54
|
+
preserved_environment_variables.map do |env_variable|
|
55
|
+
"#{env_variable}=#{ENV[env_variable]}" unless ENV[env_variable].nil?
|
56
|
+
end.compact.join(" ")
|
57
|
+
end
|
45
58
|
end
|
data/lib/soloist/version.rb
CHANGED
@@ -33,6 +33,37 @@ CONFIG
|
|
33
33
|
"recipes" => ['pivotal_workstation::ack']
|
34
34
|
}
|
35
35
|
end
|
36
|
+
|
37
|
+
describe "passing env variables to chef-solo through sudo" do
|
38
|
+
it "has a list of env variables which are passed through" do
|
39
|
+
@generator.preserved_environment_variables.should == %w{PATH BUNDLE_PATH GEM_HOME GEM_PATH RAILS_ENV RACK_ENV}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "can generate an env_variable_string which is passed through sudo to chef-solo" do
|
43
|
+
ENV["FOO"]="BAR"
|
44
|
+
ENV["FAZ"]="FUZ"
|
45
|
+
@generator.stub!(:preserved_environment_variables).and_return(["FOO", "FAZ"])
|
46
|
+
@generator.preserved_environment_variables_string.should == "FOO=BAR FAZ=FUZ"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "adds any environment variables that are switched in the config" do
|
50
|
+
@config = <<-CONFIG
|
51
|
+
cookbook_paths:
|
52
|
+
- ./chef/cookbooks/
|
53
|
+
recipes:
|
54
|
+
- pivotal_workstation::ack
|
55
|
+
env_variable_switches:
|
56
|
+
ME_TOO:
|
57
|
+
development:
|
58
|
+
cookbook_paths:
|
59
|
+
- ./chef/dev_cookbooks/
|
60
|
+
recipes:
|
61
|
+
- pivotal_dev::foo
|
62
|
+
CONFIG
|
63
|
+
@generator = ChefConfigGenerator.new(@config, "")
|
64
|
+
@generator.preserved_environment_variables.should =~ %w{PATH BUNDLE_PATH GEM_HOME GEM_PATH RAILS_ENV RACK_ENV ME_TOO}
|
65
|
+
end
|
66
|
+
end
|
36
67
|
end
|
37
68
|
|
38
69
|
describe "yaml config values" do
|
@@ -64,7 +95,6 @@ CONFIG
|
|
64
95
|
@generator.json_hash.should == { "recipes" => ["pivotal_workstation::ack"]}
|
65
96
|
end
|
66
97
|
end
|
67
|
-
|
68
98
|
|
69
99
|
describe "environment variable merging" do
|
70
100
|
before do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soloist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew Kocher
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-09 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|