From a49ef286e80f1659f151f90b6226d11526a101fe Mon Sep 17 00:00:00 2001 From: Raphael Randschau Date: Fri, 24 Feb 2012 20:18:38 +0100 Subject: [PATCH] all specs are passing --- data/export/supervisord/app.conf.erb | 21 ++++++++++++------- spec/foreman/export/supervisord_spec.rb | 18 ++++++++++------ .../export/supervisord/app-alpha-2.conf | 21 +++++++++++++++++++ spec/resources/export/supervisord/app.conf | 12 +++++------ 4 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 spec/resources/export/supervisord/app-alpha-2.conf diff --git a/data/export/supervisord/app.conf.erb b/data/export/supervisord/app.conf.erb index 50ae6b0..6ee197c 100644 --- a/data/export/supervisord/app.conf.erb +++ b/data/export/supervisord/app.conf.erb @@ -1,16 +1,21 @@ -<% engine.procfile.entries.each do |process| - p self.concurrency[process.name] +<% +engine.procfile.entries.each do |process| next if (conc = self.concurrency[process.name]) < 1 1.upto(self.concurrency[process.name]) do |num| - port = engine.port_for(process, num, self.port) %> -[program:<%= app %>-<%= process.name %>] + port = engine.port_for(process, num, self.port) + name = if (conc > 1); "#{process.name}-#{num}" else process.name; end + environment = (engine.environment.each_pair { |var,env| "#{var.upcase}=#{env}" }.to_a << "PORT=#{port}") +%> +[program:<%= app %>-<%= name %>] command=<%= process.command %> autostart=true autorestart=true stopsignal=QUIT -stdout_logfile=<%= log_root %>/<%=process.name%>-<%=num%>.log -stderr_logfile=<%= log_root %>/<%=process.name%>-<%=num%>err.log +stdout_logfile=<%= log_root %>/<%=process.name%>-<%=num%>-out.log +stderr_logfile=<%= log_root %>/<%=process.name%>-<%=num%>-err.log user=<%= user %> directory=<%= engine.directory %> -environment=<% (engine.environment.each_pair { |var,env| "#{var.upcase}=#{env}" }.to_a + ["PORT=#{port}"]).join(',') -end end %> +environment=<%= environment.join(',') %><% + end +end +%> \ No newline at end of file diff --git a/spec/foreman/export/supervisord_spec.rb b/spec/foreman/export/supervisord_spec.rb index c6661a1..c87d056 100644 --- a/spec/foreman/export/supervisord_spec.rb +++ b/spec/foreman/export/supervisord_spec.rb @@ -29,21 +29,25 @@ describe Foreman::Export::Supervisord, :fakefs do let(:options) { Hash[:concurrency => "alpha=2"] } it "exports to the filesystem with concurrency" do - pending + supervisord.export + + File.read("/tmp/init/app.conf").should == example_export_file("supervisord/app-alpha-2.conf") end end context "with alternate templates" do let(:template_root) { "/tmp/alternate" } - let(:supervisord) { Foreman::Export::Upstart.new("/tmp/init", engine, :template => template_root) } + let(:supervisord) { Foreman::Export::Supervisord.new("/tmp/init", engine, :template => template_root) } before do FileUtils.mkdir_p template_root - File.open("#{template_root}/master.conf.erb", "w") { |f| f.puts "alternate_template" } + File.open("#{template_root}/app.conf.erb", "w") { |f| f.puts "alternate_template" } end it "can export with alternate template files" do - pending + supervisord.export + + File.read("/tmp/init/app.conf").should == "alternate_template\n" end end @@ -54,7 +58,7 @@ describe Foreman::Export::Supervisord, :fakefs do ENV['_FOREMAN_SPEC_HOME'] = ENV['HOME'] ENV['HOME'] = "/home/appuser" FileUtils.mkdir_p default_template_root - File.open("#{default_template_root}/master.conf.erb", "w") { |f| f.puts "default_alternate_template" } + File.open("#{default_template_root}/app.conf.erb", "w") { |f| f.puts "default_alternate_template" } end after do @@ -62,7 +66,9 @@ describe Foreman::Export::Supervisord, :fakefs do end it "can export with alternate template files" do - pending + supervisord.export + + File.read("/tmp/init/app.conf").should == "default_alternate_template\n" end end diff --git a/spec/resources/export/supervisord/app-alpha-2.conf b/spec/resources/export/supervisord/app-alpha-2.conf new file mode 100644 index 0000000..210ec71 --- /dev/null +++ b/spec/resources/export/supervisord/app-alpha-2.conf @@ -0,0 +1,21 @@ + +[program:app-alpha-1] +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=PORT=5000 +[program:app-alpha-2] +command=./alpha +autostart=true +autorestart=true +stopsignal=QUIT +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 diff --git a/spec/resources/export/supervisord/app.conf b/spec/resources/export/supervisord/app.conf index e8e720e..15ed279 100644 --- a/spec/resources/export/supervisord/app.conf +++ b/spec/resources/export/supervisord/app.conf @@ -4,18 +4,18 @@ command=./alpha autostart=true autorestart=true stopsignal=QUIT -stdout_logfile=/var/log/app/alpha-1.log -stderr_logfile=/var/log/app/alpha-1err.log +stdout_logfile=/var/log/app/alpha-1-out.log +stderr_logfile=/var/log/app/alpha-1-err.log user=app directory=/tmp/app -environment= +environment=PORT=5000 [program:app-bravo] command=./bravo autostart=true autorestart=true stopsignal=QUIT -stdout_logfile=/var/log/app/bravo-1.log -stderr_logfile=/var/log/app/bravo-1err.log +stdout_logfile=/var/log/app/bravo-1-out.log +stderr_logfile=/var/log/app/bravo-1-err.log user=app directory=/tmp/app -environment= +environment=PORT=5100