Class: ChangesetUtil
- Inherits:
-
Object
- Object
- ChangesetUtil
- Defined in:
- lib/changeset_util.rb
Instance Method Summary collapse
-
#changes_that_modify_or_remove(stack_name:, template_body:, parameters: []) ⇒ Object
hmmmm how to handle parameters? if it uses the previous value…?.
- #immutable_resources_that_would_change(stack_name:, template_body:) ⇒ Object
Instance Method Details
#changes_that_modify_or_remove(stack_name:, template_body:, parameters: []) ⇒ Object
hmmmm how to handle parameters? if it uses the previous value…?
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/changeset_util.rb', line 28 def changes_that_modify_or_remove(stack_name:, template_body:, parameters: []) change_set_name = "changeSet#{Time.now.to_i}" client_token = "clientToken#{Time.now.to_i}" create_change_set_response = cloudformation_client.create_change_set stack_name: stack_name, template_body: template_body, capabilities: %w(CAPABILITY_IAM), change_set_name: change_set_name, client_token: client_token, parameters: convert_parameters(parameters) change_set_id = create_change_set_response.id describe_change_set_response = describe_change_set change_set_id: change_set_id STDERR.puts describe_change_set_response.changes describe_change_set_response.changes.select { |change| %w(Modify Remove).include? change.resource_change.action } end |
#immutable_resources_that_would_change(stack_name:, template_body:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/changeset_util.rb', line 6 def immutable_resources_that_would_change(stack_name:, template_body:) potentially_unsafe_changes = changes_that_modify_or_remove stack_name: stack_name, template_body: template_body logical_resource_ids = potentially_unsafe_changes.map { |change| change.resource_change.logical_resource_id } logical_resource_ids.each do |logical_resource_id| = CloudFormationTagParser.new. cloudformation_json: template_body, logical_resource_id: logical_resource_id if .find { |tag| tag['Key'] == 'immutable' and tag['Value'] == 'true' } return logical_resource_id end end nil end |