Skip to content

Commit f15fa76

Browse files
authored
Merge pull request #828 from agrare/subclass_snapshot
2 parents 073859a + 108b171 commit f15fa76

File tree

6 files changed

+13
-7
lines changed

6 files changed

+13
-7
lines changed

app/models/manageiq/providers/vmware/infra_manager.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Vmware::InfraManager < InfraManager
2222
require_nested :Refresher
2323
require_nested :RefreshWorker
2424
require_nested :ResourcePool
25+
require_nested :Snapshot
2526
require_nested :Storage
2627
require_nested :StorageCluster
2728
require_nested :Template

app/models/manageiq/providers/vmware/infra_manager/provision/cloning.rb

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,13 @@ def start_clone(clone_options)
117117

118118
[:config, :customization, :linked_clone].each { |key| vim_clone_options[key] = clone_options[key] }
119119

120-
[:folder, :host, :pool].each do |key|
120+
%i[folder host pool snapshot].each do |key|
121121
ci = clone_options[key]
122122
next if ci.nil?
123123

124124
vim_clone_options[key] = ci.ems_ref_obj
125125
end
126126

127-
if clone_options[:snapshot]
128-
ci = clone_options[:snapshot]
129-
vim_clone_options[:snapshot] = VimString.new(ci.ems_ref, ci.ems_ref_type, :ManagedObjectReference) if ci.ems_ref.present? && ci.ems_ref_type.present?
130-
end
131-
132127
vim_clone_options[:datastore] = datastore_ems_ref(clone_options)
133128
vim_clone_options[:disk] = build_disk_relocate_spec(vim_clone_options[:datastore])
134129
vim_clone_options[:storage_profile] = build_storage_profile(clone_options[:storage_profile]) unless clone_options[:storage_profile].nil?
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class ManageIQ::Providers::Vmware::InfraManager::Snapshot < ::Snapshot
2+
include ManageIQ::Providers::Vmware::InfraManager::EmsRefObjMixin
3+
end

spec/factories/snapshot.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FactoryBot.define do
2+
factory :snapshot_vmware, :class => "ManageIQ::Providers::Vmware::InfraManager::Snapshot", :parent => :snapshot do
3+
sequence(:ems_ref) { |n| "snapshot-#{seq_padded_for_sorting(n)}" }
4+
ems_ref_type { "Snapshot" }
5+
end
6+
end

spec/models/manageiq/providers/vmware/infra_manager/provision/cloning_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
let(:folder) { FactoryBot.create(:vmware_folder_vm, :ext_management_system => ems) }
4242
let(:host) { FactoryBot.create(:host_vmware_esx, :ext_management_system => ems, :ems_ref => "host-1") }
4343
let(:pool) { FactoryBot.create(:resource_pool_vmware, :ext_management_system => ems) }
44-
let(:snapshot) { FactoryBot.create(:snapshot, :ems_ref => "snapshot-1", :ems_ref_type => "Snapshot") }
44+
let(:snapshot) { FactoryBot.create(:snapshot_vmware) }
4545
let(:datastore) { FactoryBot.create(:storage_vmware, :ext_management_system => ems) }
4646

4747
let(:clone_options) do

spec/models/manageiq/providers/vmware/infra_manager/refresher_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@
384384

385385
expect(vm.snapshots.count).to eq(1)
386386
expect(vm.snapshots.first).to have_attributes(
387+
:type => "ManageIQ::Providers::Vmware::InfraManager::Snapshot",
387388
:uid_ems => "2018-05-19T06:47:56.000000Z",
388389
:uid => "2018-05-19T06:47:56.000000Z",
389390
:parent_uid => nil,

0 commit comments

Comments
 (0)