Skip to content

Commit

Permalink
Merge pull request ManageIQ#11687 from yrudman/chargeback-by-service-…
Browse files Browse the repository at this point in the history
…report-for-ssui

added JSON generation of chargeback report for service to api
  • Loading branch information
gtanzillo committed Oct 21, 2016
2 parents 2de654b + 119094b commit 231fe9c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
10 changes: 10 additions & 0 deletions app/models/service.rb
Expand Up @@ -35,6 +35,7 @@ class Service < ApplicationRecord
virtual_has_one :custom_action_buttons
virtual_has_one :provision_dialog
virtual_has_one :user
virtual_has_one :chargeback_report

before_validation :set_tenant_from_group

Expand Down Expand Up @@ -242,6 +243,15 @@ def tenant_identity
user
end

def chargeback_report
report_result = MiqReportResult.find_by(:name => chargeback_report_name)
if report_result.nil?
{:results => []}
else
{:results => report_result.result_set}
end
end

def self.queue_chargeback_reports(options = {})
Service.all.each do |s|
s.queue_chargeback_report_generation(options) unless s.vms.empty?
Expand Down
19 changes: 13 additions & 6 deletions spec/models/service_spec.rb
Expand Up @@ -267,19 +267,19 @@
before do
@vm = FactoryGirl.create(:vm_vmware)
@vm_1 = FactoryGirl.create(:vm_vmware)

@service = FactoryGirl.create(:service)
@service.name = "Test_Service_1"
@service_c1 = FactoryGirl.create(:service, :service => @service)
@service_c1.name = "Test_Service_2"
@service << @vm
@service_c1 << @vm_1
@service.save
@service_c1.save
end

describe ".queue_chargeback_reports" do
it "queue request to generate chargeback report for each service" do
@service_c1 = FactoryGirl.create(:service, :service => @service)
@service_c1.name = "Test_Service_2"
@service_c1 << @vm_1
@service_c1.save

expect(MiqQueue).to receive(:put).twice
described_class.queue_chargeback_reports
end
Expand All @@ -288,7 +288,6 @@
describe "#chargeback_report_name" do
it "creates chargeback report's name" do
expect(@service.chargeback_report_name).to eq "Chargeback-Vm-Monthly-Test_Service_1"
expect(@service_c1.chargeback_report_name).to eq "Chargeback-Vm-Monthly-Test_Service_2"
end
end

Expand Down Expand Up @@ -337,6 +336,14 @@
expect(cols_from_yaml).to be_subset(cols_from_data)
end
end

describe "#chargeback_report" do
it "returns chargeback report" do
EvmSpecHelper.local_miq_server
@service.generate_chargeback_report
expect(@service.chargeback_report).to have_key(:results)
end
end
end

describe "#children" do
Expand Down

0 comments on commit 231fe9c

Please sign in to comment.