diff --git a/app/models/concerns/rh_cloud_host.rb b/app/models/concerns/rh_cloud_host.rb index e776ae84..4436f59f 100644 --- a/app/models/concerns/rh_cloud_host.rb +++ b/app/models/concerns/rh_cloud_host.rb @@ -21,5 +21,10 @@ module RhCloudHost scoped_search :relation => :inventory_sync_status_object, :on => :status, :rename => :insights_inventory_sync_status, :complete_value => { :disconnect => ::InventorySync::InventoryStatus::DISCONNECT, :sync => ::InventorySync::InventoryStatus::SYNC } + scoped_search :relation => :insights, :on => :uuid, :only_explicit => true, :rename => :insights_uuid + + def insights_facet + insights + end end end diff --git a/app/views/api/v2/hosts/insights/base.rabl b/app/views/api/v2/hosts/insights/base.rabl new file mode 100644 index 00000000..2afff2b0 --- /dev/null +++ b/app/views/api/v2/hosts/insights/base.rabl @@ -0,0 +1,5 @@ +attributes :uuid + +node :insights_hit_details do |facet| + facet&.host&.facts('insights::hit_details')&.values&.first +end diff --git a/app/views/api/v2/hosts/insights/insights.rabl b/app/views/api/v2/hosts/insights/insights.rabl new file mode 100644 index 00000000..645bb595 --- /dev/null +++ b/app/views/api/v2/hosts/insights/insights.rabl @@ -0,0 +1,3 @@ +node :insights_attributes do + partial 'api/v2/hosts/insights/base', object: @object&.insights_facet +end diff --git a/lib/foreman_rh_cloud/engine.rb b/lib/foreman_rh_cloud/engine.rb index 69d3a57a..51f6fd99 100644 --- a/lib/foreman_rh_cloud/engine.rb +++ b/lib/foreman_rh_cloud/engine.rb @@ -112,6 +112,7 @@ def self.register_scheduled_task(task_class, cronline) register_facet InsightsFacet, :insights do configure_host do + api_view :list => 'api/v2/hosts/insights/insights' set_dependent_action :destroy end end @@ -151,6 +152,12 @@ def self.register_scheduled_task(task_class, cronline) end end + initializer "foreman_rh_cloud.add_rabl_view_path" do + Rabl.configure do |config| + config.view_paths << ForemanRhCloud::Engine.root.join('app', 'views') + end + end + initializer 'foreman_rh_cloud.register_scheduled_tasks', :before => :finisher_hook do |_app| # skip database manipulations while tables do not exist, like in migrations # skip object creation when admin user is not present, for example in test DB