vm_shepherd 1.11.5 → 1.11.6

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