diff --git a/app/views/unattended/report_templates/host_-_products.erb b/app/views/unattended/report_templates/host_-_products.erb new file mode 100644 index 000000000000..7be2d88fe3cc --- /dev/null +++ b/app/views/unattended/report_templates/host_-_products.erb @@ -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, :pools => [:subscription]]).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 -%> diff --git a/app/views/unattended/report_templates/subscription_-_entitlement_report.erb b/app/views/unattended/report_templates/subscription_-_entitlement_report.erb index 2b363fc67740..0863c746e82a 100644 --- a/app/views/unattended/report_templates/subscription_-_entitlement_report.erb +++ b/app/views/unattended/report_templates/subscription_-_entitlement_report.erb @@ -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' -%> @@ -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 -%> +<%= report_render -%> \ No newline at end of file diff --git a/db/migrate/20231016000000_introduce_host_products_report.rb b/db/migrate/20231016000000_introduce_host_products_report.rb new file mode 100644 index 000000000000..a4b0e5654bef --- /dev/null +++ b/db/migrate/20231016000000_introduce_host_products_report.rb @@ -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