Skip to content

Commit

Permalink
Fixes #36826 - Add Host - Products report
Browse files Browse the repository at this point in the history
* Add system purpose role and usage to subscriptions entitlement report
  • Loading branch information
ianballou committed Oct 17, 2023
1 parent 2ae0516 commit 1c570fa
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 30 deletions.
40 changes: 40 additions & 0 deletions app/views/unattended/report_templates/host_-_products.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<%#
name: Host - Products
snippet: false
model: ReportTemplate
template_inputs:
- name: Hosts filter
required: false
input_type: user
description: Limit the report only on hosts found by this search query. Keep empty
to report on all available hosts.
advanced: false
value_type: search
resource_type: Host
require:
- plugin: katello
version: 4.11.0
-%>
<%- report_headers 'Host Name', 'Organization', 'Lifecycle Environment', 'Content View', 'Host Collections', 'Virtual', 'Guest of Host', 'OS', 'Arch', 'Sockets', 'RAM', 'Cores', 'SLA', 'Role', 'Usage', 'Products', 'Last Checkin' -%>
<%- load_hosts(search: input('Hosts filter'), includes: [:operatingsystem, :architecture, :content_view_environments, :organization, :reported_data, :subscription_facet]).each_record do |host| -%>
<%- report_row(
'Host Name': host.name,
'Organization': host.organization,
'Lifecycle Environment': host.single_lifecycle_environment,
'Content View': host.single_content_view,
'Host Collections': host_collections_names(host),
'Virtual': host.virtual,
'Guest of Host': host.hypervisor_host,
'OS': host.operatingsystem,
'Arch': host.architecture,
'Sockets': host.sockets,
'RAM': host.ram,
'Cores': host.cores,
'SLA': host_sla(host),
'Role': host.purpose_role_status_label,
'Usage': host.purpose_usage_status_label,
'Products': host_products_names_and_ids(host),
'Last Checkin': last_checkin(host).to_s,
) -%>
<%- end -%>
<%= report_render -%>
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ template_inputs:
options: "no limit\r\n7\r\n30\r\n60\r\n90\r\n120\r\n180"
require:
- plugin: katello
version: 4.8.0
version: 4.11.0
-%>
<%- days_from_now = input('Days from Now') -%>
<%- days_from_now = "" if days_from_now == 'no limit' -%>
Expand All @@ -22,35 +22,39 @@ require:
<%- search: should_filter && "pools_expiring_in_days = #{days_from_now}" -%>
<%- ).each_record do |host| -%>
<%- host.pools.expiring_in_days(days_from_now).sort_by { |p| p.end_date }.each do |pool| -%>
<%- report_row(
'Host Name': host.name,
'Organization': host.organization,
'Lifecycle Environment': host.single_lifecycle_environment.name,
'Content View': host.single_content_view.name,
'Host Collections': host_collections_names(host),
'Virtual': host.virtual,
'Guest of Host': host.hypervisor_host,
'OS': host.operatingsystem,
'Arch': host.architecture,
'Sockets': host.sockets,
'RAM': host.ram,
'Cores': host.cores,
'SLA': host_sla(host),
'Products': host_products_names(host),
'Last Checkin': last_checkin(host).to_s,
'Subscription Name': sub_name(pool),
'Subscription Type': pool.type,
'Subscription Total Quantity': pool.quantity,
'Subscription Total Consumed': pool.consumed,
'Subscriptions Consumed by Host': host.filtered_entitlement_quantity_consumed(pool),
'Subscription SKU': sub_sku(pool),
'Subscription Contract': pool.contract_number,
'Subscription Account': pool.account_number,
'Subscription Start': pool.start_date,
'Subscription End': pool.end_date,
'Subscription Guest': registered_through(host),
'Days Remaining': pool.days_until_expiration
) -%>
<%- unless host.organization.simple_content_access? -%>
<%- report_row(
'Host Name': host.name,
'Organization': host.organization,
'Lifecycle Environment': host.single_lifecycle_environment.name,
'Content View': host.single_content_view.name,
'Host Collections': host_collections_names(host),
'Virtual': host.virtual,
'Guest of Host': host.hypervisor_host,
'OS': host.operatingsystem,
'Arch': host.architecture,
'Sockets': host.sockets,
'RAM': host.ram,
'Cores': host.cores,
'SLA': host_sla(host),
'Role': host.purpose_role_status_label,
'Usage': host.purpose_usage_status_label,
'Products': host_products_names(host),
'Last Checkin': last_checkin(host).to_s,
'Subscription Name': sub_name(pool),
'Subscription Type': pool.type,
'Subscription Total Quantity': pool.quantity,
'Subscription Total Consumed': pool.consumed,
'Subscriptions Consumed by Host': host.filtered_entitlement_quantity_consumed(pool),
'Subscription SKU': sub_sku(pool),
'Subscription Contract': pool.contract_number,
'Subscription Account': pool.account_number,
'Subscription Start': pool.start_date,
'Subscription End': pool.end_date,
'Subscription Guest': registered_through(host),
'Days Remaining': pool.days_until_expiration
) -%>
<%- end -%>
<%- end -%>
<%- end -%>
<%= report_render -%>
10 changes: 10 additions & 0 deletions db/migrate/20231016000000_introduce_host_products_report.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class IntroduceHostProductsAndSubscriptionsReport < ActiveRecord::Migration[6.1]
def up
token = SecureRandom.base64(5)
ReportTemplate.unscoped.find_by(name: "Host - Products")&.update_columns(:name => "Host - Products #{token}")
end

def down
ReportTemplate.unscoped.find_by(name: "Host - Products")&.delete
end
end

0 comments on commit 1c570fa

Please sign in to comment.