class OpenStax::Aws::Stack::Status

Public Class Methods

active_status_texts() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 81
def self.active_status_texts
  all_status_texts - %w(CREATE_FAILED DELETE_COMPLETE)
end
all_status_texts() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 54
def self.all_status_texts
  %w(
    CREATE_IN_PROGRESS
    CREATE_FAILED
    CREATE_COMPLETE
    ROLLBACK_IN_PROGRESS
    ROLLBACK_FAILED
    ROLLBACK_COMPLETE
    DELETE_IN_PROGRESS
    DELETE_FAILED
    DELETE_COMPLETE
    UPDATE_IN_PROGRESS
    UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
    UPDATE_COMPLETE
    UPDATE_ROLLBACK_IN_PROGRESS
    UPDATE_ROLLBACK_FAILED
    UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
    UPDATE_ROLLBACK_COMPLETE
    REVIEW_IN_PROGRESS
    IMPORT_IN_PROGRESS
    IMPORT_COMPLETE
    IMPORT_ROLLBACK_IN_PROGRESS
    IMPORT_ROLLBACK_FAILED
    IMPORT_ROLLBACK_COMPLETE
  )
end
does_not_exist_status_text() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 50
def self.does_not_exist_status_text
  "DOES_NOT_EXIST"
end
failure_status_texts() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 85
def self.failure_status_texts
  %w(
    UPDATE_ROLLBACK_COMPLETE
    ROLLBACK_COMPLETE
    ROLLBACK_IN_PROGRESS
    CREATE_FAILED
    ROLLBACK_FAILED
    DELETE_FAILED
    UPDATE_ROLLBACK_FAILED
    IMPORT_ROLLBACK_FAILED
  )
end
new(stack) click to toggle source
# File lib/openstax/aws/stack_status.rb, line 4
def initialize(stack)
  @stack = stack
end
success_status_texts() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 98
def self.success_status_texts
  %w(
    UPDATE_COMPLETE
    DELETE_COMPLETE
    CREATE_COMPLETE
  )
end

Public Instance Methods

creating?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 38
def creating?
  "CREATE_IN_PROGRESS" == status_text
end
deleting?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 42
def deleting?
  "DELETE_IN_PROGRESS" == status_text
end
exists?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 46
def exists?
  self.class.does_not_exist_status_text != status_text
end
failed?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 21
def failed?
  self.class.failure_status_texts.include?(status_text)
end
failed_events_since_last_user_event() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 106
def failed_events_since_last_user_event
  @stack.events.each_with_object([]) do |event, array|
    array.push(event) if event.failed? && event.status_reason  #if nil, don't push
    return array if event.user_initiated?
  end
end
status_text() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 8
def status_text
  begin
    @stack.aws_stack.stack_status
  rescue Aws::CloudFormation::Errors::ValidationError => ee
    case ee.message
    when /Stack.*does not exist/
      self.class.does_not_exist_status_text
    else
      raise
    end
  end
end
succeeded?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 25
def succeeded?
  self.class.success_status_texts.include?(status_text)
end
to_h() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 113
def to_h
  {
    status: status_text,
    failed_events_since_last_user_event: failed? ? failed_events_since_last_user_event : []
  }
end
to_json() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 120
def to_json
  to_h.to_json
end
updating?() click to toggle source
# File lib/openstax/aws/stack_status.rb, line 29
def updating?
  %w(
    UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
    UPDATE_IN_PROGRESS
    UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
    UPDATE_ROLLBACK_IN_PROGRESS
  ).include?(status_text)
end