elbas 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
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