Commit c378c665 authored by Terence Lee's avatar Terence Lee

move tmpdir handling into ProxyRunner

parent a9d6c9ed
...@@ -17,7 +17,6 @@ class AppRunner ...@@ -17,7 +17,6 @@ class AppRunner
def initialize(fixture, proxy = nil, env = {}, debug = false, delete = true) def initialize(fixture, proxy = nil, env = {}, debug = false, delete = true)
@run = false @run = false
@debug = debug @debug = debug
@tmpdir = nil
@proxy = nil @proxy = nil
@delete = delete @delete = delete
env.merge!("STATIC_DEBUG" => "true") if @debug env.merge!("STATIC_DEBUG" => "true") if @debug
...@@ -32,16 +31,7 @@ class AppRunner ...@@ -32,16 +31,7 @@ class AppRunner
} }
if proxy if proxy
if proxy.is_a?(String) @proxy = ProxyRunner.new(proxy, @delete)
@tmpdir = Dir.mktmpdir
File.open("#{@tmpdir}/config.ru", "w") do |file|
file.puts %q{require "sinatra"}
file.puts proxy
file.puts "run Sinatra::Application"
end
end
@proxy = ProxyRunner.new(@tmpdir, @delete)
app_options["Links"] = ["#{@proxy.id}:proxy"] app_options["Links"] = ["#{@proxy.id}:proxy"]
@proxy.start @proxy.start
...@@ -107,8 +97,6 @@ class AppRunner ...@@ -107,8 +97,6 @@ class AppRunner
end end
@router.destroy @router.destroy
@app.delete(force: true) if @delete @app.delete(force: true) if @delete
ensure
FileUtils.rm_rf(@tmpdir) if @tmpdir
end end
private private
......
require "tmpdir"
require_relative "proxy_builder" require_relative "proxy_builder"
require_relative "container_runner" require_relative "container_runner"
class ProxyRunner < ContainerRunner class ProxyRunner < ContainerRunner
def initialize(config_ru = nil, delete = true) def initialize(config_ru = nil, delete = true)
@tmpdir = write_config_ru(config_ru)
options = { options = {
"Image" => ProxyBuilder::TAG "Image" => ProxyBuilder::TAG
} }
options["HostConfig"] = { "Binds" => ["#{config_ru}:/app/config/"] } if config_ru options["HostConfig"] = { "Binds" => ["#{@tmpdir}:/app/config/"] } if @tmpdir
super(options, delete) super(options, delete)
end end
def destroy
super
ensure
FileUtils.rm_rf(@tmpdir) if @tmpdir
end
private
def write_config_ru(config_ru)
tmpdir = nil
if config_ru && config_ru.is_a?(String)
tmpdir = Dir.mktmpdir
File.open("#{tmpdir}/config.ru", "w") do |file|
file.puts %q{require "sinatra"}
file.puts config_ru
file.puts "run Sinatra::Application"
end
end
tmpdir
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment