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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1fce84934b1f7e9b085ceef03f595043fa87826
|
4
|
+
data.tar.gz: 52fe82935e0695493ec950e134f10d1afd43b236
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
10
|
-
clean_vapps(vapp_names, logger
|
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
|
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)
|
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
|
-
|
44
|
-
vapp.
|
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
|
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
|
43
|
+
clean_catalog_and_vapps(catalog: catalog, vapp_names: vapp_names, logger: @logger)
|
44
44
|
end
|
45
45
|
|
46
46
|
private
|
data/lib/vm_shepherd/version.rb
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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.
|
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-
|
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
|