class Rummager::ContainerStartTask
Attributes
args_start[RW]
binds[RW]
exec_on_start[RW]
port_bindings[RW]
publishall[RW]
start_once[RW]
volumes_from[RW]
Public Class Methods
new(task_name, app)
click to toggle source
Calls superclass method
# File lib/rummager/containers.rb, line 147 def initialize(task_name, app) super(task_name,app) @actions << Proc.new { start_args = @args_start if @volumes_from puts "using VF:#{@volumes_from}" if Rake.verbose == true start_args.merge!( {'VolumesFrom' => @volumes_from} ) end if @binds puts "using BINDS:#{@binds}" if Rake.verbose == true start_args['Binds'] = @binds end if @port_bindings puts "using PortBindings:#{@port_bindings}" if Rake.verbose == true start_args['PortBindings'] = @port_bindings end if @publishall start_args['PublishAllPorts'] = true end puts "Starting: #{@container_name}" docker_obj.start( start_args ) if @exec_on_start begin puts "issuing exec calls" if Rake.verbose == true exec_on_start.each do |ae| if ae.delete(:hide_output) docker_obj.exec(ae.delete(:cmd),ae) else docker_obj.exec(ae.delete(:cmd),ae) { |stream,chunk| puts "#{chunk}" } end puts "all exec calls complete" if Rake.verbose == true end rescue => ex raise IOError, "exec failed:#{ex.message}" end end # @exec_on_start } end
Public Instance Methods
needed?()
click to toggle source
# File lib/rummager/containers.rb, line 124 def needed? if has_container? puts "checking if #{@container_name} is running" if Rake.verbose == true if docker_obj.json['State']['Running'] == false puts "#{@container_name} is NOT running" if Rake.verbose == true if Time.parse(docker_obj.json['State']['StartedAt']) != Time.parse('0001-01-01T00:00:00Z') puts "#{@container_name} previously ran" if Rake.verbose == true if @start_once == true puts "#{@container_name} is a start_once container, not needed" if Rake.verbose == true return false end else puts "#{@container_name} has never run" if Rake.verbose == true end else puts "#{@container_name} is running" if Rake.verbose == true end else puts "#{@container_name} doesnt exist" if Rake.verbose == true end true end