Module: Kontena::Cli::Stacks::StacksHelper

Included in:
Registry::CreateCommand, DeployCommand, Vpn::CreateCommand
Defined in:
lib/kontena/cli/stacks/stacks_helper.rb

Instance Method Summary collapse

Instance Method Details

#wait_for_deploy_to_finish(deployment, timeout = 600) ⇒ Boolean

Parameters:

  • deployment (Hash)

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/kontena/cli/stacks/stacks_helper.rb', line 7

def wait_for_deploy_to_finish(deployment, timeout = 600)
  deployed = false
  states = %w(success error)
  Timeout::timeout(timeout) do
    until deployed
      deployment = client.get("stacks/#{deployment['stack_id']}/deploys/#{deployment['id']}")
      deployed = true if states.include?(deployment['state'])
      sleep 1
    end
    if deployment['state'] == 'error'
      deployment['service_deploys'].each do |service_deploy|
        if service_deploy['state'] == 'error'
          puts "        #{service_deploy['reason']}"
        end
      end

      raise 'deploy failed'
    end
  end

  deployed
rescue Timeout::Error
  raise 'deploy timed out'
end