Skip to content

Commit

Permalink
Add src_vm_or_dest_host_refresh_target.
Browse files Browse the repository at this point in the history
If the VM was migrated off of the host before refresh adds the VM to the database then the src_vm target
for this "/System/event_handlers/event_action_refresh?target=src_vm" won't work.
We need to refresh the dest_host.

https://bugzilla.redhat.com/show_bug.cgi?id=1696889
  • Loading branch information
lfu committed May 13, 2019
1 parent 54bc9a8 commit 267daea
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
4 changes: 4 additions & 0 deletions app/models/ems_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,10 @@ def vm_refresh_target
end
alias_method :src_vm_refresh_target, :vm_refresh_target

def src_vm_or_dest_host_refresh_target
vm_or_template ? vm_refresh_target : dest_host_refresh_target
end

def host_refresh_target
(host && host.ext_management_system ? host : ems_refresh_target)
end
Expand Down
19 changes: 19 additions & 0 deletions spec/models/ems_event_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -393,4 +393,23 @@
end
end
end

context 'refresh target' do
describe 'src_vm_or_dest_host_refresh_target' do
let(:ems) { FactoryBot.create(:ems_vmware) }
let(:vm) { FactoryBot.create(:vm_vmware, :ext_management_system => ems) }
let(:host1) { FactoryBot.create(:host, :ext_management_system => ems) }
let(:host2) { FactoryBot.create(:host, :ext_management_system => ems) }

it 'returns src_vm when it exists' do
event = FactoryBot.create(:ems_event, :vm_or_template => vm, :host => host1, :dest_host => host2)
expect(event.get_target("src_vm_or_dest_host_refresh_target")).to eq(vm)
end

it 'returns dest_host when src_vm not exists' do
event = FactoryBot.create(:ems_event, :vm_or_template_id => 123, :host => host1, :dest_host => host2)
expect(event.get_target("src_vm_or_dest_host_refresh_target")).to eq(host2)
end
end
end
end

0 comments on commit 267daea

Please sign in to comment.