Class: Humidifier::SdkPayload

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/humidifier/sdk_payload.rb

Overview

The payload sent to the shim methods, representing the stack and the options

Defined Under Namespace

Classes: TemplateTooLargeError

Constant Summary collapse

MAX_TEMPLATE_BODY_SIZE =

The maximum size a template body can be before it has to be put somewhere and referenced through a URL

51_200
MAX_TEMPLATE_URL_SIZE =

The maximum size a template body can be inside of an S3 bucket

460_800
MAX_WAIT =

The maximum amount of time that Humidifier should wait for a stack to complete a CRUD operation

600

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stack, options) ⇒ SdkPayload

Returns a new instance of SdkPayload.



29
30
31
32
33
# File 'lib/humidifier/sdk_payload.rb', line 29

def initialize(stack, options)
  self.stack    = stack
  self.options  = options
  self.max_wait = options.delete(:max_wait) || MAX_WAIT
end

Instance Attribute Details

#max_waitObject

Returns the value of attribute max_wait.



24
25
26
# File 'lib/humidifier/sdk_payload.rb', line 24

def max_wait
  @max_wait
end

#optionsObject

Returns the value of attribute options.



24
25
26
# File 'lib/humidifier/sdk_payload.rb', line 24

def options
  @options
end

#stackObject

Returns the value of attribute stack.



24
25
26
# File 'lib/humidifier/sdk_payload.rb', line 24

def stack
  @stack
end

Instance Method Details

#==(other) ⇒ Object

True if the stack and options are the same as the other (used for testing)



36
37
38
# File 'lib/humidifier/sdk_payload.rb', line 36

def ==(other)
  stack == other.stack && options == other.options
end

#create_change_set_paramsObject

Param set for the #create_change_set SDK method



55
56
57
# File 'lib/humidifier/sdk_payload.rb', line 55

def create_change_set_params
  { stack_name: stack.identifier }.merge(template_param).merge(options)
end

#create_paramsObject

Param set for the #create_stack SDK method



60
61
62
# File 'lib/humidifier/sdk_payload.rb', line 60

def create_params
  { stack_name: stack.name }.merge(template_param).merge(options)
end

#delete_paramsObject

Param set for the #delete_stack SDK method



65
66
67
# File 'lib/humidifier/sdk_payload.rb', line 65

def delete_params
  { stack_name: stack.identifier }.merge(options)
end

#merge(new_options) ⇒ Object

Merge in options



41
42
43
# File 'lib/humidifier/sdk_payload.rb', line 41

def merge(new_options)
  self.options = new_options.merge(options)
end

#template_bodyObject

The body of the template



46
47
48
# File 'lib/humidifier/sdk_payload.rb', line 46

def template_body
  @template_body ||= stack.to_cf
end

#update_paramsObject

Param set for the #update_stack SDK method



70
71
72
# File 'lib/humidifier/sdk_payload.rb', line 70

def update_params
  { stack_name: stack.identifier }.merge(template_param).merge(options)
end

#validate_paramsObject

Param set for the #validate_template SDK method



75
76
77
# File 'lib/humidifier/sdk_payload.rb', line 75

def validate_params
  template_param.merge(options)
end