Class: Heroku::Kensa::AllCheck

Inherits:
Check
  • Object
show all
Defined in:
lib/heroku/kensa/check.rb

Overview

On Testing:

I've opted to not write tests for this
due to the simple nature it's currently in.
If this becomes more complex in even the
least amount, find me (blake) and I'll
help get tests in.

Instance Attribute Summary

Attributes inherited from Check

#data, #screen

Instance Method Summary collapse

Methods inherited from Check

#api_requires?, #call, #check, #env, #error, #initialize, #run, #test, #to_proc, #url

Constructor Details

This class inherits a constructor from Heroku::Kensa::Check

Instance Method Details

#call!Object



566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
# File 'lib/heroku/kensa/check.rb', line 566

def call!
  args = data[:args]
  run ManifestCheck, data
  run ProvisionCheck, data

  response = data[:provision_response]
  data.merge!(:id => response["id"])
  config = response["config"] || Hash.new

  if args
    screen.message "\n\n"
    screen.message "Starting #{args.first}..."
    screen.message "\n\n"

    run_in_env(config) { system(*args) }
    error("run exited abnormally, expected 0, got #{$?.to_i}") unless $?.to_i == 0

    screen.message "\n"
    screen.message "End of #{args.first}\n"
  end

  data[:plan] ||= 'foo'
  run PlanChangeCheck, data
  run DeprovisionCheck, data
end

#run_in_env(env) ⇒ Object



592
593
594
595
596
# File 'lib/heroku/kensa/check.rb', line 592

def run_in_env(env)
  env.each {|key, value| ENV[key] = value }
  yield
  env.keys.each {|key| ENV.delete(key) }
end