|
1 | 1 | describe ManageIQ::Providers::Vmware::InfraManager::Provision::Cloning do |
2 | | - let(:ems) { FactoryBot.create(:ems_vmware_with_authentication) } |
| 2 | + let(:zone) { EvmSpecHelper.local_miq_server.zone } |
| 3 | + let(:ems) { FactoryBot.create(:ems_vmware_with_authentication, :zone => zone) } |
3 | 4 | let(:user_admin) { FactoryBot.create(:user_admin) } |
4 | 5 | let(:template) { FactoryBot.create(:template_vmware, :name => "template1", :ext_management_system => ems, :cpu_limit => -1, :cpu_reserve => 0) } |
5 | 6 | let(:provision) { FactoryBot.create(:miq_provision_vmware, :userid => user_admin.userid, :miq_request => provision_request, :source => template, :request_type => 'template', :state => 'pending', :status => 'Ok', :options => options) } |
|
35 | 36 | provision.dest_folder |
36 | 37 | end |
37 | 38 | end |
| 39 | + |
| 40 | + context "#start_clone" do |
| 41 | + let(:folder) { FactoryBot.create(:vmware_folder_vm, :ext_management_system => ems) } |
| 42 | + let(:host) { FactoryBot.create(:host_vmware_esx, :ext_management_system => ems, :ems_ref => "host-1") } |
| 43 | + 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") } |
| 45 | + let(:datastore) { FactoryBot.create(:storage_vmware, :ext_management_system => ems) } |
| 46 | + |
| 47 | + let(:clone_options) do |
| 48 | + { |
| 49 | + :name => "clone test", |
| 50 | + :folder => folder, |
| 51 | + :host => host, |
| 52 | + :pool => pool, |
| 53 | + :snapshot => snapshot, |
| 54 | + :datastore => datastore |
| 55 | + } |
| 56 | + end |
| 57 | + |
| 58 | + # Building the disk relocate spec has to connect to the ems so we need to |
| 59 | + # stub that out here. |
| 60 | + before { allow(provision).to receive(:build_disk_relocate_spec) } |
| 61 | + |
| 62 | + it "converts AR objects to VimTypes" do |
| 63 | + expect(provision) |
| 64 | + .to receive(:clone_vm) |
| 65 | + .with( |
| 66 | + hash_including( |
| 67 | + :folder => folder.ems_ref_obj, |
| 68 | + :host => host.ems_ref_obj, |
| 69 | + :pool => pool.ems_ref_obj, |
| 70 | + :snapshot => VimString.new(snapshot.ems_ref, snapshot.ems_ref_type, :ManagedObjectReference) |
| 71 | + ) |
| 72 | + ) |
| 73 | + |
| 74 | + provision.start_clone(clone_options) |
| 75 | + end |
| 76 | + end |
38 | 77 | end |
0 commit comments