elbas 0.15.0 → 0.16.0

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
  SHA1:
3
- metadata.gz: 777f9507be8cbb8ddff0bfee2f87a3a54da9b8bb
4
- data.tar.gz: a9a1a049de02acf64cba7ffb8a6fa178e463536f
3
+ metadata.gz: 82ca715d8f56637b72b016d89ad7a8e75d0938ca
4
+ data.tar.gz: ce2d53f9313fa1ced5771dfa158fb6881f1df693
5
5
  SHA512:
6
- metadata.gz: e9e70b8d18a4b041538514587811ecfbd33701f7268afcba1a4dd31b9bb772a1ce0c7583985163dcbb7b4b178c94aa6c0553cf1ef0c4de443dda402c98b36488
7
- data.tar.gz: b41ea79f9df49e617e222058b9213d1c8e823d210d67f7a22502c34b35d4ec086dfd187cb1640ea3771824bc15415f2dc7c5e0c9bf2b3bef0be8faf46429485e
6
+ metadata.gz: 056e29ee77eb2465ab4869de400b174df75db6bb086267459facb81c36db7f3c65f9f044a2910c0c4a4fa82d52b10c370012ceb4e431839e0a450dadc7a7170b
7
+ data.tar.gz: e9e5ad103b69da7472262d7790873633a3f2f9c7909f05ac060583e521aebf1b8a3520299ea52367867dbaedc4b68aff562e09a211377b4e6ea76287560e324a
data/README.md CHANGED
@@ -28,6 +28,7 @@ set :aws_access_key_id, ENV['AWS_ACCESS_KEY_ID']
28
28
  set :aws_secret_access_key, ENV['AWS_SECRET_ACCESS_KEY']
29
29
  set :aws_region, ENV['AWS_REGION']
30
30
 
31
+ set :aws_no_reboot_on_create_ami, true
31
32
  set :aws_autoscale_instance_size, 'm1.small'
32
33
  ```
33
34
 
data/lib/elbas.rb CHANGED
@@ -3,6 +3,7 @@ require 'capistrano/all'
3
3
  require 'active_support/concern'
4
4
 
5
5
  require 'elbas/version'
6
+ require 'elbas/retryable'
6
7
  require 'elbas/taggable'
7
8
  require 'elbas/logger'
8
9
  require 'elbas/aws/credentials'
@@ -12,6 +13,5 @@ require 'elbas/aws_resource'
12
13
  require 'elbas/ami'
13
14
  require 'elbas/launch_configuration'
14
15
 
15
-
16
16
  module Elbas
17
17
  end
data/lib/elbas/ami.rb CHANGED
@@ -16,7 +16,7 @@ module Elbas
16
16
  @aws_counterpart = ec2.images.create \
17
17
  name: name,
18
18
  instance_id: base_ec2_instance.id,
19
- no_reboot: true
19
+ no_reboot: fetch(:aws_no_reboot_on_create_ami, true)
20
20
  end
21
21
 
22
22
  def destroy(images = [])
@@ -39,4 +39,4 @@ module Elbas
39
39
  end
40
40
 
41
41
  end
42
- end
42
+ end
@@ -3,6 +3,7 @@ module Elbas
3
3
  include Capistrano::DSL
4
4
  include Elbas::AWS::AutoScaling
5
5
  include Elbas::AWS::EC2
6
+ include Elbas::Retryable
6
7
  include Logger
7
8
 
8
9
  attr_reader :aws_counterpart
@@ -0,0 +1,16 @@
1
+ module Elbas
2
+ module Retryable
3
+
4
+ def with_retry(max: 3, delay: 5)
5
+ tries ||= 0
6
+ tries += 1
7
+ yield
8
+ rescue => e
9
+ if tries < max
10
+ sleep delay
11
+ retry
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -2,10 +2,10 @@ module Elbas
2
2
  module Taggable
3
3
 
4
4
  def tag(tags = {})
5
- tags.each do |k, v|
6
- aws_counterpart.tags[k] = v
5
+ with_retry do
6
+ tags.each { |k, v| aws_counterpart.tags[k] = v }
7
7
  end
8
8
  end
9
9
 
10
10
  end
11
- end
11
+ end
data/lib/elbas/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Elbas
2
- VERSION = '0.15.0'
2
+ VERSION = '0.16.0'
3
3
  end
data/spec/ami_spec.rb ADDED
@@ -0,0 +1,10 @@
1
+ describe Elbas::AMI do
2
+ describe '#tag' do
3
+ subject { Elbas::AMI.new }
4
+
5
+ it 'retries the tag 3 times' do
6
+ expect(subject).to receive(:aws_counterpart).exactly(3).times { OpenStruct.new(tags: nil) }
7
+ subject.tag 'Test' => true
8
+ end
9
+ end
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elbas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Logan Serman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-28 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,9 +134,11 @@ files:
134
134
  - lib/elbas/capistrano.rb
135
135
  - lib/elbas/launch_configuration.rb
136
136
  - lib/elbas/logger.rb
137
+ - lib/elbas/retryable.rb
137
138
  - lib/elbas/taggable.rb
138
139
  - lib/elbas/tasks/elbas.rake
139
140
  - lib/elbas/version.rb
141
+ - spec/ami_spec.rb
140
142
  - spec/elbas_spec.rb
141
143
  - spec/spec_helper.rb
142
144
  - spec/support/stubs/CreateImage.200.xml
@@ -175,6 +177,7 @@ signing_key:
175
177
  specification_version: 4
176
178
  summary: Capistrano plugin for deploying to AWS AutoScale Groups.
177
179
  test_files:
180
+ - spec/ami_spec.rb
178
181
  - spec/elbas_spec.rb
179
182
  - spec/spec_helper.rb
180
183
  - spec/support/stubs/CreateImage.200.xml