class KumoDockerCloud::StackChecker
Public Class Methods
new(specific_checks = {}, default_check = nil, timeout = 300)
click to toggle source
# File lib/kumo_dockercloud/stack_checker.rb, line 3 def initialize(specific_checks = {}, default_check = nil, timeout = 300) @checks = specific_checks @default_check = default_check @timeout = timeout end
Public Instance Methods
verify(stack)
click to toggle source
# File lib/kumo_dockercloud/stack_checker.rb, line 9 def verify(stack) raise InvalidStackError.new("The stack being verified is not a valid KumoDockerCloud::Stack.") unless stack.instance_of? KumoDockerCloud::Stack services = stack.services default_checks = services.reduce({}) { |result, service| result.merge(service.name => default_check) } service_checks = default_checks.merge(@checks) begin service_checker_threads = services.map do |service| Thread.new { ServiceChecker.new(service_checks[service.name], @timeout).verify(service) } end service_checker_threads.each(&:join) true rescue ServiceDeployError raise StackCheckError.new("The stack is not in the expected state.") end end
Private Instance Methods
default_check()
click to toggle source
# File lib/kumo_dockercloud/stack_checker.rb, line 30 def default_check @default_check ||= [ServiceCheck.new(lambda { |container| container.state == 'Running' }, "Service is not running")] end