vm_shepherd 1.11.5 → 1.11.6

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: eccf2d989298fbd37af2ac556c0df012ba7801dd
4
- data.tar.gz: cdc11913f4789dc33e776714cd4167adac22aca1
3
+ metadata.gz: b1fce84934b1f7e9b085ceef03f595043fa87826
4
+ data.tar.gz: 52fe82935e0695493ec950e134f10d1afd43b236
5
5
  SHA512:
6
- metadata.gz: dc2f086841402650754a13cf3263d603af8ac889dd2c2ed45776bb5f6618969f2e752a778238ac7e12675438c26d2a40bc651d6641081075bbbcb708f5e24123
7
- data.tar.gz: ca6f70713dd659001b0ead1a5941a097a7feb4d75ca0836f4a3f124af2defc406775a9b69c0fe14aec4c62e90bc0f24b163aea5665da5c872b0c405eff79fda4
6
+ metadata.gz: af63f5cc1bdacd6ebc0103ea8e10a69fb48a26de0d98c75e2db01f3f99c1db65c079c011fb1ddae53f258aab65ecd4a5cc8320fb2ab08e1520189b2ba5e22cdb
7
+ data.tar.gz: f749e89e48cdde0683fd8bea20eca068b6690902bfca2fb860fea28cbea60997696fd379994e6f8151aaf3aaba8396ae135a0b3f763d375e04ef44f52e0a5e27
@@ -6,8 +6,8 @@ module VmShepherd
6
6
  @vdc_name = vdc_name
7
7
  end
8
8
 
9
- def clean_catalog_and_vapps(catalog:, vapp_names:, logger:, delete_vapps:)
10
- clean_vapps(vapp_names, logger, delete_vapps)
9
+ def clean_catalog_and_vapps(catalog:, vapp_names:, logger:)
10
+ clean_vapps(vapp_names, logger)
11
11
  delete_catalog(catalog)
12
12
  end
13
13
 
@@ -17,11 +17,11 @@ module VmShepherd
17
17
  @vdc ||= @client.find_vdc_by_name(@vdc_name)
18
18
  end
19
19
 
20
- def clean_vapps(vapp_names, logger, delete_vapps)
20
+ def clean_vapps(vapp_names, logger)
21
21
  vapp_names.each do |vapp_name|
22
22
  begin
23
23
  clean_vapp(vapp_name)
24
- delete_vapp(vapp_name) if delete_vapps
24
+ delete_vapp(vapp_name)
25
25
  rescue VCloudSdk::ObjectNotFoundError => e
26
26
  logger.debug "Could not delete vapp '#{vapp_name}': #{e.inspect}"
27
27
  end
@@ -40,8 +40,11 @@ module VmShepherd
40
40
 
41
41
  def delete_vapp(vapp_name)
42
42
  vapp = vdc.find_vapp_by_name(vapp_name)
43
- vapp.power_off
44
- vapp.delete
43
+
44
+ if vapp.vms.any?
45
+ vapp.power_off
46
+ vapp.delete
47
+ end
45
48
  end
46
49
 
47
50
  def delete_catalog(catalog)
@@ -35,12 +35,12 @@ module VmShepherd
35
35
 
36
36
  def destroy(vapp_names, catalog)
37
37
  VmShepherd::Vcloud::Destroyer.new(client: client, vdc_name: @vdc_name).
38
- clean_catalog_and_vapps(catalog: catalog, vapp_names: vapp_names, logger: @logger, delete_vapps: true)
38
+ clean_catalog_and_vapps(catalog: catalog, vapp_names: vapp_names, logger: @logger)
39
39
  end
40
40
 
41
41
  def clean_environment(vapp_names, catalog)
42
42
  VmShepherd::Vcloud::Destroyer.new(client: client, vdc_name: @vdc_name).
43
- clean_catalog_and_vapps(catalog: catalog, vapp_names: vapp_names, logger: @logger, delete_vapps: false)
43
+ clean_catalog_and_vapps(catalog: catalog, vapp_names: vapp_names, logger: @logger)
44
44
  end
45
45
 
46
46
  private
@@ -1,3 +1,3 @@
1
1
  module VmShepherd
2
- VERSION = '1.11.5'.freeze
2
+ VERSION = '1.11.6'.freeze
3
3
  end
@@ -35,7 +35,7 @@ module VmShepherd
35
35
  end
36
36
 
37
37
  it 'deletes the catalog' do
38
- destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: [], logger: fake_logger, delete_vapps: false)
38
+ destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: [], logger: fake_logger)
39
39
 
40
40
  expect(client).to have_received(:delete_catalog_by_name).with('CATALOG_NAME')
41
41
  end
@@ -47,31 +47,35 @@ module VmShepherd
47
47
  end
48
48
 
49
49
  it 'skips deleting the catalog' do
50
- destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: [], logger: fake_logger, delete_vapps: false)
50
+ destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: [], logger: fake_logger)
51
51
 
52
52
  expect(client).not_to have_received(:delete_catalog_by_name).with('CATALOG_NAME')
53
53
  end
54
54
  end
55
55
 
56
56
  it 'detaches and deletes persistent disks' do
57
- destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger, delete_vapps: false)
57
+ destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger)
58
58
 
59
59
  expect(vm).to have_received(:detach_disk).with(disk)
60
60
  expect(vdc).to have_received(:delete_disk_by_name).with('DISK_NAME')
61
61
  end
62
62
 
63
- context 'when the delete_vapps flag is true' do
63
+ context 'when there are VMs in the vApp' do
64
64
  it 'deletes the vapps' do
65
- destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger, delete_vapps: true)
65
+ destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger)
66
66
 
67
67
  expect(vapp).to have_received(:power_off).ordered
68
68
  expect(vapp).to have_received(:delete).ordered
69
69
  end
70
70
  end
71
71
 
72
- context 'when the delete_vapps flag is false' do
72
+ context 'when there are no VMs in the vApp' do
73
+ before do
74
+ allow(vapp).to receive(:vms).and_return([])
75
+ end
76
+
73
77
  it 'does not delete the vapps' do
74
- destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger, delete_vapps: false)
78
+ destroyer.clean_catalog_and_vapps(catalog: 'CATALOG_NAME', vapp_names: ['VAPP_NAME'], logger: fake_logger)
75
79
 
76
80
  expect(vapp).not_to have_received(:power_off)
77
81
  expect(vapp).not_to have_received(:delete)
@@ -274,7 +274,7 @@ module VmShepherd
274
274
  it 'destroys everything including vapps' do
275
275
  destroyer = instance_double(VmShepherd::Vcloud::Destroyer)
276
276
  expect(VmShepherd::Vcloud::Destroyer).to receive(:new).with(client: client, vdc_name: vdc_name).and_return(destroyer)
277
- expect(destroyer).to receive(:clean_catalog_and_vapps).with(catalog: vapp_catalog, vapp_names: [vapp_name], logger: logger, delete_vapps: true)
277
+ expect(destroyer).to receive(:clean_catalog_and_vapps).with(catalog: vapp_catalog, vapp_names: [vapp_name], logger: logger)
278
278
 
279
279
  vcloud_manager.destroy([vapp_name], vapp_catalog)
280
280
  end
@@ -292,7 +292,7 @@ module VmShepherd
292
292
  it 'destroys the environment expect for vapps' do
293
293
  destroyer = instance_double(VmShepherd::Vcloud::Destroyer)
294
294
  expect(VmShepherd::Vcloud::Destroyer).to receive(:new).with(client: client, vdc_name: vdc_name).and_return(destroyer)
295
- expect(destroyer).to receive(:clean_catalog_and_vapps).with(catalog: vapp_catalog, vapp_names: [vapp_name], logger: logger, delete_vapps: false)
295
+ expect(destroyer).to receive(:clean_catalog_and_vapps).with(catalog: vapp_catalog, vapp_names: [vapp_name], logger: logger)
296
296
 
297
297
  vcloud_manager.clean_environment([vapp_name], vapp_catalog)
298
298
  end
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.5
4
+ version: 1.11.6
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-09-21 00:00:00.000000000 Z
11
+ date: 2015-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-v1