Class: EbDeployer::CloudFormationProvisioner
- Inherits:
-
Object
- Object
- EbDeployer::CloudFormationProvisioner
- Defined in:
- lib/eb_deployer/cloud_formation_provisioner.rb
Constant Summary collapse
- SUCCESS_STATS =
[:create_complete, :update_complete, :update_rollback_complete]
- FAILED_STATS =
[:create_failed, :update_failed]
Instance Method Summary collapse
-
#initialize(stack_name, cf_driver) ⇒ CloudFormationProvisioner
constructor
A new instance of CloudFormationProvisioner.
- #output(key) ⇒ Object
- #provision(resources) ⇒ Object
- #transform_outputs(resources) ⇒ Object
Constructor Details
#initialize(stack_name, cf_driver) ⇒ CloudFormationProvisioner
Returns a new instance of CloudFormationProvisioner.
9 10 11 12 |
# File 'lib/eb_deployer/cloud_formation_provisioner.rb', line 9 def initialize(stack_name, cf_driver) @stack_name = stack_name @cf_driver = cf_driver end |
Instance Method Details
#output(key) ⇒ Object
30 31 32 33 34 |
# File 'lib/eb_deployer/cloud_formation_provisioner.rb', line 30 def output(key) @cf_driver.query_output(@stack_name, key) rescue AWS::CloudFormation::Errors::ValidationError => e raise ResourceNotInReadyState.new("Resource stack not in ready state yet, perhaps you should provision it first?") end |
#provision(resources) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/eb_deployer/cloud_formation_provisioner.rb', line 14 def provision(resources) resources = symbolize_keys(resources) template = File.read(resources[:template]) capabilities = resources[:capabilities] || [] params = resources[:inputs] || resources[:parameters] || {} stack_exists? ? update_stack(template, params, capabilities) : create_stack(template, params, capabilities) wait_for_stack_op_terminate end |
#transform_outputs(resources) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/eb_deployer/cloud_formation_provisioner.rb', line 23 def transform_outputs(resources) resources = symbolize_keys(resources) outputs = resources[:outputs] || {} transforms = resources[:transforms] || {} transform_output_to_settings(convert_to_transforms(outputs).merge(transforms)) end |