vm_shepherd 1.10.0 → 1.10.1

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: 32390871776d9ded0d615b3b4e453d0c4e798ce6
4
- data.tar.gz: 23a6de2acdb418b1862ae472d66149f0b1d37e27
3
+ metadata.gz: 4c28ff60aceef4bca731813761ce712123b7f941
4
+ data.tar.gz: 055d66480ba8775dab95bd80554556654da54c55
5
5
  SHA512:
6
- metadata.gz: 2c3295257e06d661a1a8d98033ada7867ba1fa6229ade524441864fbfb0347d3991c27ea4e3f056afc58403307d820f60566162504a5328f7ab5dec610cb376f
7
- data.tar.gz: d47c7cff06d2f0046c2cb0dc8cd19d497b7a0906dd05e706c583b8b18302a1ed18292828ba8a5ec5ea2adf2db168f3a7ca65c3b81a95d8afa523de6e4fb831cc
6
+ metadata.gz: 930db4b3aba4201353764122080c6badbc9ba2021c5ada38018738647bdbcfb14f65a647113abebb80b3d1a9bb9f04fe1cf051ebcf13ffcc3ccf002f7146310a
7
+ data.tar.gz: f9fa8ea157d70fb41454e44716616b1b682d868d9c23cfab097e8e8d895c5302e5f65422552bccdc7e52338d42c731c1d42059a9050d9d0153d8037bcfe708cf
@@ -1,7 +1,10 @@
1
1
  require 'fog'
2
+ require 'vm_shepherd/retry_helper'
2
3
 
3
4
  module VmShepherd
4
5
  class OpenstackManager
6
+ include VmShepherd::RetryHelper
7
+
5
8
  def initialize(auth_url:, username:, api_key:, tenant:)
6
9
  @auth_url = auth_url
7
10
  @username = username
@@ -75,6 +78,12 @@ module VmShepherd
75
78
  server.destroy
76
79
  end
77
80
 
81
+ retry_until(retry_limit: 30) do
82
+ server_count = service.servers.count
83
+ say(" Waiting for #{server_count} servers to be destroyed")
84
+ server_count == 0
85
+ end
86
+
78
87
  private_images = image_service.images.reject(&:is_public)
79
88
 
80
89
  say("Destroying #{private_images.size} images:")
@@ -1,3 +1,3 @@
1
1
  module VmShepherd
2
- VERSION = '1.10.0'.freeze
2
+ VERSION = '1.10.1'.freeze
3
3
  end
@@ -322,6 +322,20 @@ module VmShepherd
322
322
  }.to change { openstack_vm_manager.service.servers.size }.from(2).to(0)
323
323
  end
324
324
 
325
+ it 'waits until there are no servers before deleting images' do
326
+ stub_const("VmShepherd::RetryHelper::RETRY_INTERVAL", 0)
327
+
328
+ servers = instance_double(Array)
329
+ allow(openstack_vm_manager.service).to receive(:servers).and_return(servers)
330
+
331
+ allow(servers).to receive(:size)
332
+ allow(servers).to receive(:each).and_return([])
333
+ expect(servers).to receive(:count).and_return(1,0).ordered
334
+ expect(openstack_vm_manager.image_service).to receive(:images).and_return([]).ordered
335
+
336
+ openstack_vm_manager.clean_environment
337
+ end
338
+
325
339
  it 'deletes all private images' do
326
340
  expect {
327
341
  openstack_vm_manager.clean_environment
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.10.0
4
+ version: 1.10.1
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-07-23 00:00:00.000000000 Z
11
+ date: 2015-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-v1
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  version: '0'
210
210
  requirements: []
211
211
  rubyforge_project:
212
- rubygems_version: 2.4.7
212
+ rubygems_version: 2.4.6
213
213
  signing_key:
214
214
  specification_version: 4
215
215
  summary: A tool for booting and tearing down Ops Manager VMs on various Infrastructures.