vm_shepherd 1.8.4 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vm_shepherd/version.rb +1 -1
- data/lib/vm_shepherd/vsphere_manager.rb +23 -2
- data/spec/vm_shepherd/vsphere_manager_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9005c41f3252dada8327d25150585f18eab17a14
|
4
|
+
data.tar.gz: c1b4637cbe43854e4a1a3e1569beffa64c333adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3545eaa72f1f99a5896eb1a2660ea995bc08ffe810a45f5368111e05ef9500eb222326d1000b6257d2bfdeda899bfa63b6f3ef4b67ca470dc30e3515a9def169
|
7
|
+
data.tar.gz: bf1964936e38d28329afa32d70c83e506f129ec8b879bd65fdd0367790c536af3113213c2a54b5e609b31c541bc35aec8faef79984b4dc4b003847395f5e3f80
|
data/lib/vm_shepherd/version.rb
CHANGED
@@ -41,7 +41,7 @@ module VmShepherd
|
|
41
41
|
begin
|
42
42
|
logger.info("BEGIN datastore_folder.destroy_task folder=#{folder_name}")
|
43
43
|
|
44
|
-
|
44
|
+
file_manager.DeleteDatastoreFile_Task(
|
45
45
|
datacenter: datacenter,
|
46
46
|
name: "[#{datastore}] #{folder_name}"
|
47
47
|
).wait_for_completion
|
@@ -124,7 +124,10 @@ module VmShepherd
|
|
124
124
|
3.times do |attempt|
|
125
125
|
break unless (folder = datacenter.vmFolder.traverse(folder_name))
|
126
126
|
|
127
|
-
find_vms(folder).each
|
127
|
+
find_vms(folder).each do |vm|
|
128
|
+
power_off_vm(vm)
|
129
|
+
destroy_vm_datastore_folder(vm)
|
130
|
+
end
|
128
131
|
|
129
132
|
begin
|
130
133
|
logger.info("BEGIN folder.destroy_task folder=#{folder_name} attempt ##{attempt}")
|
@@ -162,6 +165,18 @@ module VmShepherd
|
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
168
|
+
|
169
|
+
def destroy_vm_datastore_folder(vm)
|
170
|
+
begin
|
171
|
+
vm_datastore_folder = vm.config.files.snapshotDirectory
|
172
|
+
logger.info("BEGIN vm_datastore_folder.delete_datastore_file_task folder=#{vm_datastore_folder}")
|
173
|
+
file_manager.DeleteDatastoreFile_Task(name: vm_datastore_folder, datacenter: datacenter).wait_for_completion
|
174
|
+
logger.info("END vm_datastore_folder.delete_datastore_file_task folder=#{vm_datastore_folder}")
|
175
|
+
rescue RbVmomi::Fault => e
|
176
|
+
logger.info("ERROR vm_datastore_folder.delete_datastore_file_task. Skipping ... folder=#{vm_datastore_folder} #{e.inspect}")
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
165
180
|
def deploy_ovf_template(ovf_file_path, vsphere_config)
|
166
181
|
template_name = [TEMPLATE_PREFIX, Time.new.strftime('%F-%H-%M'), cluster(vsphere_config).name].join('-')
|
167
182
|
logger.info("BEGIN deploy_ovf ovf_file=#{ovf_file_path} template_name=#{template_name}")
|
@@ -312,6 +327,12 @@ module VmShepherd
|
|
312
327
|
end
|
313
328
|
end
|
314
329
|
|
330
|
+
def file_manager
|
331
|
+
connection.serviceContent.fileManager.tap do |fm|
|
332
|
+
fail("ERROR finding filemanager") unless fm.is_a?(RbVmomi::VIM::FileManager)
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
315
336
|
def target_folder(vsphere_config)
|
316
337
|
datacenter.vmFolder.traverse(vsphere_config[:folder], RbVmomi::VIM::Folder, true)
|
317
338
|
end
|
@@ -36,9 +36,9 @@ module VmShepherd
|
|
36
36
|
allow(datacenter).to receive(:vmFolder).and_return(folder)
|
37
37
|
allow(folder).to receive(:traverse).with('FAKE_DATACENTER_FOLDERS').and_return(folder)
|
38
38
|
allow(service_content).to receive(:fileManager).and_return(filemanager)
|
39
|
+
allow(filemanager).to receive(:is_a?).with(RbVmomi::VIM::FileManager).and_return(true)
|
39
40
|
# stubbed private methods:
|
40
41
|
allow(subject).to receive(:find_vms).and_return(vms)
|
41
|
-
allow(subject).to receive(:power_off_vm)
|
42
42
|
allow(subject).to receive(:delete_folder_and_vms)
|
43
43
|
end
|
44
44
|
|
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.
|
4
|
+
version: 1.9.0
|
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-06-
|
11
|
+
date: 2015-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-v1
|