vm_shepherd 1.11.8 → 1.12.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: 7c1b8a594106445d0a53b8ee6781ac35465eadb2
4
- data.tar.gz: 71fa0d8ce5df7067cd5cfae957dbc35ce20878b6
3
+ metadata.gz: 128595ea5d161fca2968a78cf51497f78f2ec9a5
4
+ data.tar.gz: d1a7136a462f00640aa928e9aae9a6cd88475212
5
5
  SHA512:
6
- metadata.gz: 08fa5e38593f20c3d77bee6d27e352e1508e3003b0adfdc6627a531fe447c7fc1e647a20c8e192c08a062eb2591003319fce3ca4969de8b8dc41aa44c8e2ce13
7
- data.tar.gz: 18d9f25f8f839d9ca94e91356be67364c167adb05a05faa5d272fbcad7487effedc9b74c92caae6449b4635acc1b0830875c8af0de8c0680e42a3ffc2e506c1c
6
+ metadata.gz: b723a9e0f0323bbac7f4a50bbfdd021987681c57183ddcb344c11d473997158eb656e86f53c6a41535cbddc766e215d5d5bf7e9396c4516971cef8559477408d
7
+ data.tar.gz: 695902d740ada2ecb721d7b6ce5b66f7b2faf4be5a71da1cff28d583d3e882cf278e2bc3e8cb0ddb999f8dc960a89b46dd6b43496f123782dae1b2a768da1355
@@ -34,7 +34,7 @@ module VmShepherd
34
34
  stack = cfm.stacks.create(env_config.fetch(:stack_name), template, parameters: env_config.fetch(:parameters), capabilities: ['CAPABILITY_IAM'])
35
35
 
36
36
  logger.info("Waiting for status: #{CREATE_COMPLETE}")
37
- retry_until(retry_limit: 30) do
37
+ retry_until(retry_limit: 30, retry_interval: 300) do
38
38
  status = stack.status
39
39
  logger.info("current stack status: #{status}")
40
40
  case status
@@ -239,7 +239,7 @@ module VmShepherd
239
239
  logger.info('deleting CloudFormation stack')
240
240
  stack.delete
241
241
  logger.info("waiting until status: #{DELETE_COMPLETE}")
242
- retry_until(retry_limit: 30) do
242
+ retry_until(retry_limit: 30, retry_interval: 300) do
243
243
  begin
244
244
  status = stack.status
245
245
  logger.info("current stack status: #{status}")
@@ -6,7 +6,7 @@ module VmShepherd
6
6
  RETRY_LIMIT = 10
7
7
  RETRY_INTERVAL = 60
8
8
 
9
- def retry_until(retry_limit: RETRY_LIMIT, &block)
9
+ def retry_until(retry_limit: RETRY_LIMIT, retry_interval: RETRY_INTERVAL, &block)
10
10
  tries = 0
11
11
  condition_reached = false
12
12
  loop do
@@ -14,7 +14,7 @@ module VmShepherd
14
14
  raise(RetryLimitExceeded) if tries > retry_limit
15
15
  condition_reached = block.call
16
16
  break if condition_reached
17
- sleep RETRY_INTERVAL
17
+ sleep retry_interval
18
18
  end
19
19
  condition_reached
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module VmShepherd
2
- VERSION = '1.11.8'.freeze
2
+ VERSION = '1.12.0'.freeze
3
3
  end
@@ -71,6 +71,12 @@ module VmShepherd
71
71
  end
72
72
 
73
73
  describe 'cloudformation' do
74
+ it 'polls the status every 300 seconds' do
75
+ expect(ami_manager).to receive(:retry_until).with(retry_limit: 30, retry_interval: 300)
76
+
77
+ ami_manager.prepare_environment(cloudformation_template_file.path)
78
+ end
79
+
74
80
  it 'creates the stack with the correct parameters' do
75
81
  expect(stack_collection).to receive(:create).with(
76
82
  'aws-stack-name',
@@ -89,7 +95,7 @@ module VmShepherd
89
95
  ami_manager.prepare_environment(cloudformation_template_file.path)
90
96
  end
91
97
 
92
- it 'stops retrying after 360 times' do
98
+ it 'stops retrying after 30 times' do
93
99
  expect(stack).to receive(:status).and_return('CREATE_IN_PROGRESS').
94
100
  exactly(30).times
95
101
 
@@ -366,6 +372,12 @@ module VmShepherd
366
372
  ami_manager.clean_environment
367
373
  end
368
374
 
375
+ it 'polls the status every 300 seconds' do
376
+ expect(ami_manager).to receive(:retry_until).with(retry_limit: 30, retry_interval: 300)
377
+
378
+ ami_manager.clean_environment
379
+ end
380
+
369
381
  it 'deletes the stack' do
370
382
  expect(stack_collection).to receive(:[]).with('aws-stack-name').and_return(stack)
371
383
  expect(stack).to receive(:delete)
@@ -378,13 +390,15 @@ module VmShepherd
378
390
  ami_manager.clean_environment
379
391
  end
380
392
 
381
- it 'stops retrying after 360 times' do
393
+ it 'stops retrying after 30 times' do
382
394
  expect(stack).to receive(:status).and_return('DELETE_IN_PROGRESS').
383
395
  exactly(30).times
384
396
 
385
397
  expect { ami_manager.clean_environment }.to raise_error(AwsManager::RetryLimitExceeded)
386
398
  end
387
399
 
400
+
401
+
388
402
  it 'aborts if stack reports unexpected status' do
389
403
  expect(stack).to receive(:status).and_return('DELETE_IN_PROGRESS', 'UNEXPECTED_STATUS').ordered
390
404
  expect {
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ['lib']
19
19
 
20
20
  spec.add_dependency 'aws-sdk-v1'
21
- spec.add_dependency 'fog'
21
+ spec.add_dependency 'fog', '1.34.0'
22
22
 
23
23
  spec.add_dependency 'ruby_vcloud_sdk', '0.7.2'
24
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vm_shepherd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.8
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ops Manager Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-16 00:00:00.000000000 Z
11
+ date: 2015-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-v1
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: fog
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 1.34.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 1.34.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ruby_vcloud_sdk
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -217,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
217
  version: '0'
218
218
  requirements: []
219
219
  rubyforge_project:
220
- rubygems_version: 2.4.5
220
+ rubygems_version: 2.4.8
221
221
  signing_key:
222
222
  specification_version: 4
223
223
  summary: A tool for booting and tearing down Ops Manager VMs on various Infrastructures.