per default wrap every environment value in quotes

This commit is contained in:
Raphael Randschau
2012-04-20 21:15:43 +02:00
parent b8ea6fd4b3
commit b721fd894e
7 changed files with 63 additions and 14 deletions

View File

@@ -5,7 +5,7 @@ engine.procfile.entries.each do |process|
1.upto(self.concurrency[process.name]) do |num|
port = engine.port_for(process, num, self.port)
name = if (conc > 1); "#{process.name}-#{num}" else process.name; end
environment = (engine.environment.map{ |var,env| "#{var.upcase}=#{wrap_environment env}" } + ["PORT=#{port}"])
environment = (engine.environment.map{ |var,env| "#{var.upcase}=#{wrap_environment env}" } + ["PORT=#{wrap_environment port}"])
app_name = "#{app}-#{name}"
app_names << app_name
%>

View File

@@ -24,11 +24,7 @@ class Foreman::Export::Supervisord < Foreman::Export::Base
end
def wrap_environment env
if env.index(',').nil?
env
else
"\"#{env}\""
end
"\"#{env}\""
end
end

View File

@@ -73,12 +73,20 @@ describe Foreman::Export::Supervisord, :fakefs do
end
context "environment export" do
it "returns the original environment if it contains no comma" do
supervisord.wrap_environment("production").should == "production"
it "wraps the original environment with quotes" do
supervisord.wrap_environment("slowqueue,fastqueue").should == '"slowqueue,fastqueue"'
end
it "wraps the original environment with quotes if it contains a comma" do
supervisord.wrap_environment("slowqueue,fastqueue").should == '"slowqueue,fastqueue"'
it "correctly translates environment when exporting" do
File.open("/tmp/supervisord_env", "w") { |f| f.puts("QUEUE=fastqueue,slowqueue\nVERBOSE=1") }
engine = Foreman::Engine.new(procfile,:env => "/tmp/supervisord_env")
supervisor = Foreman::Export::Supervisord.new("/tmp/init", engine, options)
stub(supervisor).say
supervisor.export
File.read("/tmp/init/app.conf").should == example_export_file("supervisord/app-env-with-comma.conf")
end
end

View File

@@ -8,7 +8,7 @@ stdout_logfile=/var/log/app/alpha-1-out.log
stderr_logfile=/var/log/app/alpha-1-err.log
user=app
directory=/tmp/app
environment=PORT=5000
environment=PORT="5000"
[program:app-alpha-2]
command=./alpha
autostart=true
@@ -18,7 +18,7 @@ stdout_logfile=/var/log/app/alpha-2-out.log
stderr_logfile=/var/log/app/alpha-2-err.log
user=app
directory=/tmp/app
environment=PORT=5001
environment=PORT="5001"
[group:app]
programs=app-alpha-1,app-alpha-2

View File

@@ -0,0 +1,24 @@
[program:app-alpha]
command=./alpha
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/app/alpha-1-out.log
stderr_logfile=/var/log/app/alpha-1-err.log
user=app
directory=/tmp/app
environment=QUEUE="fastqueue,slowqueue",VERBOSE="1",PORT="5000"
[program:app-bravo]
command=./bravo
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/app/bravo-1-out.log
stderr_logfile=/var/log/app/bravo-1-err.log
user=app
directory=/tmp/app
environment=QUEUE="fastqueue,slowqueue",VERBOSE="1",PORT="5100"
[group:app]
programs=app-alpha,app-bravo

View File

@@ -0,0 +1,21 @@
[program:app-alpha]
command=./alpha
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/app/alpha-1-out.log
stderr_logfile=/var/log/app/alpha-1-err.log
user=app
directory=/tmp/app
environment=FOO="bar",PORT="5000"
[program:app-bravo]
command=./bravo
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/app/bravo-1-out.log
stderr_logfile=/var/log/app/bravo-1-err.log
user=app
directory=/tmp/app
environment=FOO="bar",PORT="5100"

View File

@@ -8,7 +8,7 @@ stdout_logfile=/var/log/app/alpha-1-out.log
stderr_logfile=/var/log/app/alpha-1-err.log
user=app
directory=/tmp/app
environment=PORT=5000
environment=PORT="5000"
[program:app-bravo]
command=./bravo
autostart=true
@@ -18,7 +18,7 @@ stdout_logfile=/var/log/app/bravo-1-out.log
stderr_logfile=/var/log/app/bravo-1-err.log
user=app
directory=/tmp/app
environment=PORT=5100
environment=PORT="5100"
[group:app]
programs=app-alpha,app-bravo