Class: StackMaster::ChangeSet
- Inherits:
-
Object
- Object
- StackMaster::ChangeSet
- Defined in:
- lib/stack_master/change_set.rb
Constant Summary collapse
- END_STATES =
[ 'CREATE_COMPLETE', 'DELETE_COMPLETE', 'FAILED' ]
Class Method Summary collapse
- .cf ⇒ Object
- .create(create_options) ⇒ Object
- .delete(id) ⇒ Object
- .execute(id, stack_name) ⇒ Object
- .find(id) ⇒ Object
- .generate_change_set_name(stack_name) ⇒ Object
Instance Method Summary collapse
- #display(io) ⇒ Object
- #failed? ⇒ Boolean
- #id ⇒ Object
-
#initialize(describe_change_set_response) ⇒ ChangeSet
constructor
A new instance of ChangeSet.
- #status_reason ⇒ Object
Constructor Details
#initialize(describe_change_set_response) ⇒ ChangeSet
Returns a new instance of ChangeSet.
40 41 42 |
# File 'lib/stack_master/change_set.rb', line 40 def initialize(describe_change_set_response) @response = describe_change_set_response end |
Class Method Details
.cf ⇒ Object
36 37 38 |
# File 'lib/stack_master/change_set.rb', line 36 def self.cf StackMaster.cloud_formation_driver end |
.create(create_options) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/stack_master/change_set.rb', line 13 def self.create() cf = StackMaster.cloud_formation_driver change_set_name = generate_change_set_name(.fetch(:stack_name)) change_set_id = cf.create_change_set(.merge(change_set_name: change_set_name)).id find(change_set_id) end |
.delete(id) ⇒ Object
27 28 29 |
# File 'lib/stack_master/change_set.rb', line 27 def self.delete(id) cf.delete_change_set({ change_set_name: id }) end |
.execute(id, stack_name) ⇒ Object
31 32 33 34 |
# File 'lib/stack_master/change_set.rb', line 31 def self.execute(id, stack_name) cf.execute_change_set({ change_set_name: id, stack_name: stack_name }) end |
.find(id) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/stack_master/change_set.rb', line 20 def self.find(id) begin response = PagedResponseAccumulator.call(cf, :describe_change_set, { change_set_name: id }, :changes) end while !END_STATES.include?(response.status) new(response) end |
.generate_change_set_name(stack_name) ⇒ Object
9 10 11 |
# File 'lib/stack_master/change_set.rb', line 9 def self.generate_change_set_name(stack_name) stack_name + '-StackMaster' + Time.now.strftime('%Y-%m-%d-%H%M-%s') end |
Instance Method Details
#display(io) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/stack_master/change_set.rb', line 44 def display(io) io.puts <<-EOL ======================================== Proposed change set: EOL @response.changes.each do |change| display_resource_change(io, change.resource_change) end io.puts "========================================" end |
#failed? ⇒ Boolean
56 57 58 |
# File 'lib/stack_master/change_set.rb', line 56 def failed? @response.status == 'FAILED' end |
#id ⇒ Object
64 65 66 |
# File 'lib/stack_master/change_set.rb', line 64 def id @response.change_set_id end |
#status_reason ⇒ Object
60 61 62 |
# File 'lib/stack_master/change_set.rb', line 60 def status_reason @response.status_reason end |