minimal_pipeline 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fa45c8ed076247156a234c9a2d532c420c7e77344f78d0a0c99f4189ab48456
4
- data.tar.gz: e514bbbbc49a5f1204a77c226d7632adf5ec583ed56d9d8eea20779aab1e24d7
3
+ metadata.gz: 70ee3fc89fe1178164328913afe51b3a51d192978bd7168e742fb63d9b109621
4
+ data.tar.gz: 33eb25e6e4adf7c97019622fdc42ae1ec63cc65e5f6c6d3d48ad4fe63296270c
5
5
  SHA512:
6
- metadata.gz: 84643b831e8897334088a4e5d9700efe514310642c05ca71d16ad84e17717fbab3eb1a04a39a1ec69dad9e9cba9523240399409f993473e169b7f30454ba47e2
7
- data.tar.gz: aaa740baff9a5ff771e8f3fe003e47f56b8aa4fc98b5827d7f0dea83b70010bb25e3bd09ba6efbaddd19ac6753859e876e6886ce25ffa339ad28710b4a37e5f5
6
+ metadata.gz: c02f89eb7fca1e0fb2b21c572597f9550d1ae059d56a43cdb1facdcb5bee923e4778e07b542a0f00bb3408ac4ddff52d7f0dc44d5209ff047d9b9aa0893448bb
7
+ data.tar.gz: e73597301e43d16a5ce8fd3303a1e4b616eecc01613a0fbb28b6676499c53b612f51dbd7dc5dd98febc337ae82ceb42a6b2e8557db53701d3cfe8b5c432f1662
@@ -31,15 +31,24 @@ class MinimalPipeline
31
31
  class Cloudformation
32
32
  # Instance of `Aws::CloudFormation::Client`
33
33
  attr_reader(:client)
34
+ attr_accessor(:wait_max_attempts)
35
+ attr_accessor(:wait_delay)
34
36
 
35
37
  # Sets up `Aws::CloudFormation::Client`
36
38
  # Requires environment variable `AWS_REGION` or `region` to be set.
37
- def initialize
39
+ #
40
+ # @param wait_max_attempts [Fixnum] Number of attempts to wait until all
41
+ # stack create or update is complete.
42
+ # @param wait_delay [Fixnum] The sleep interval for checking the status of
43
+ # a stack's status
44
+ def initialize(wait_max_attempts = 120, wait_delay = 30)
38
45
  raise 'You must set env variable AWS_REGION or region.' \
39
46
  if ENV['AWS_REGION'].nil? && ENV['region'].nil?
40
47
 
41
48
  region = ENV['AWS_REGION'] || ENV['region']
42
49
  @client = Aws::CloudFormation::Client.new(region: region)
50
+ @wait_max_attempts = wait_max_attempts
51
+ @wait_delay = wait_delay
43
52
  end
44
53
 
45
54
  # Converts a parameter Hash into a CloudFormation friendly structure
@@ -79,10 +88,16 @@ class MinimalPipeline
79
88
  # @param stack_name [String] The name of the CloudFormation stack
80
89
  # @param stack_parameters [Hash] Parameters to be passed into the stack
81
90
  def deploy_stack(stack_name, stack_parameters)
91
+ wait_options = {
92
+ max_attempts: @wait_max_attempts,
93
+ delay: @wait_delay
94
+ }
95
+
82
96
  unless @client.describe_stacks(stack_name: stack_name).stacks.empty?
83
97
  puts 'Updating the existing stack' if ENV['DEBUG']
84
98
  @client.update_stack(stack_parameters)
85
- @client.wait_until(:stack_update_complete, stack_name: stack_name)
99
+ @client.wait_until(:stack_update_complete, { stack_name: stack_name },
100
+ wait_options)
86
101
  end
87
102
  rescue Aws::CloudFormation::Errors::ValidationError => error
88
103
  if error.to_s.include? 'No updates are to be performed.'
@@ -92,7 +107,8 @@ class MinimalPipeline
92
107
  else
93
108
  puts 'Creating a new stack' if ENV['DEBUG']
94
109
  @client.create_stack(stack_parameters)
95
- @client.wait_until(:stack_create_complete, stack_name: stack_name)
110
+ @client.wait_until(:stack_create_complete, { stack_name: stack_name },
111
+ wait_options)
96
112
  end
97
113
  end
98
114
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minimal_pipeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mayowa Aladeojebi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-08 00:00:00.000000000 Z
12
+ date: 2018-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk