vm_shepherd 1.10.0 → 1.10.1

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: 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.