Skip to content

Commit

Permalink
Issue error log message only if there are invalid src_ids.
Browse files Browse the repository at this point in the history
  • Loading branch information
tinaafitz committed Jan 21, 2020
1 parent 7f7be46 commit 7435dce
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
2 changes: 1 addition & 1 deletion app/models/vm_or_template.rb
Expand Up @@ -349,7 +349,7 @@ def self.make_retire_request(*src_ids, requester, initiated_by: 'user')
vms = where(:id => src_ids)

missing_ids = src_ids - vms.pluck(:id)
_log.error("Retirement of [Vm] IDs: [#{missing_ids.join(', ')}] skipped - target(s) does not exist")
_log.error("Retirement of [Vm] IDs: [#{missing_ids.join(', ')}] skipped - target(s) does not exist") if missing_ids.present?

vms.each do |target|
target.check_policy_prevent('request_vm_retire', "retire_request_after_policy_check", requester.userid, :initiated_by => initiated_by)
Expand Down
25 changes: 23 additions & 2 deletions spec/models/vm/retirement_management_spec.rb
Expand Up @@ -167,15 +167,36 @@
end

it "with user as initiated_by" do
allow(MiqAeEngine).to receive_messages(:deliver => ['ok', 'success', ws])
log_stub = instance_double("_log")
expect(Vm).to receive(:_log).and_return(log_stub).at_least(:once)
expect(log_stub).to receive(:info).at_least(:once)
expect(log_stub).not_to receive(:error).with("Retirement of [Vm] IDs: [] skipped - target(s) does not exist")
Vm.make_retire_request(@vm.id, user, :initiated_by => user)

q = MiqQueue.first
allow(MiqAeEngine).to receive_messages(:deliver => ['ok', 'success', ws])
expect(q).to receive(:_log).and_return(log_stub).at_least(:once)
expect(log_stub).to receive(:error).with(/Validation failed: VmRetireRequest: Initiated by is not included in the list/)
expect(log_stub).to receive(:log_backtrace)
status, message, result = q.deliver

q.delivered(status, message, result)
end

it "with user as initiated_by, with unknown vm.id" do
log_stub = instance_double("_log")
expect(q).to receive(:_log).and_return(log_stub).at_least(:once)
expect(Vm).to receive(:_log).and_return(log_stub).at_least(:once)
expect(log_stub).to receive(:info).at_least(:once)
expect(log_stub).to receive(:error).with("Retirement of [Vm] IDs: [123] skipped - target(s) does not exist")
Vm.make_retire_request(@vm.id, 123, user, :initiated_by => user)

q = MiqQueue.first

allow(MiqAeEngine).to receive_messages(:deliver => ['ok', 'success', ws])
expect(q).to receive(:_log).and_return(log_stub).at_least(:once)
expect(log_stub).to receive(:error).with(/Validation failed: VmRetireRequest: Initiated by is not included in the list/)
expect(log_stub).to receive(:log_backtrace)
status, message, result = q.deliver
q.delivered(status, message, result)
end

Expand Down

0 comments on commit 7435dce

Please sign in to comment.