Project

General

Profile

Bug #24257

Updated by Marek Hulán over 6 years ago

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1600450  

 The reports:expire doesn't work for ArfReport 

  # foreman-rake reports:expire days=0 report_type="ForemanOpenscap::ArfReport" 

 It produced a log 

 D, [2018-06-18T15:39:52.098271 #6509] DEBUG -- :     SQL (0.3ms)    DELETE FROM "reports" WHERE "reports"."type" IN ('ForemanOpenscap::ArfReport') AND (1=0) AND (reports.created_at < '2018-06-18 10:09:52') 
 I, [2018-06-18T15:39:52.098582 #6509]    INFO -- : 2018-06-18 10:09:52 UTC: Expired 0 Foreman openscap/arf reports 

 The above query has condition --> AND (1=0) 

 Workaround: 

 <pre> 
 diff --git a/lib/tasks/reports.rake b/lib/tasks/reports.rake 
 index fb4400d..e2b7cc2 100644 
 --- a/lib/tasks/reports.rake 
 +++ b/lib/tasks/reports.rake 
 @@ -30,8 +30,9 @@ namespace :reports do 
      conditions = {} 
      conditions[:timerange] = ENV['days'].to_i.days if ENV['days'] 
      conditions[:status] = ENV['status'].to_i if ENV['status'] 
 - 
 -      report_type.expire(conditions) 
 +      User.as_anonymous_admin do 
 +        report_type.expire(conditions) 
 +      end 
    end 
  end 
 </pre>

Back