Class: PuppetHerald::Models::Report
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- PuppetHerald::Models::Report
- Defined in:
- lib/puppet-herald/models/report.rb
Overview
A model for Report
Class Method Summary collapse
-
.create_from_yaml(yaml) ⇒ Report
Creates a report from given YAML report file.
-
.purge_older_then(date) ⇒ Integer
Purges older reports then given date.
-
.with_log_entries(id) ⇒ Report?
Gets a report with prefetched log entries.
Class Method Details
.create_from_yaml(yaml) ⇒ Report
Creates a report from given YAML report file
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/puppet-herald/models/report.rb', line 26 def create_from_yaml(yaml) parsed = parse_yaml yaml report = nil transaction do report = Report.new parse_properties parsed, report parse_logs parsed, report node = parse_node parsed, report report.save node.save end report end |
.purge_older_then(date) ⇒ Integer
Purges older reports then given date
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/puppet-herald/models/report.rb', line 46 def purge_older_then(date) deleted = 0 query = ['"reports"."time" < ?', date] return 0 if where(query).count == 0 transaction do idss = joins(:log_entries).where(query).collect(&:id).uniq PuppetHerald::Models::LogEntry.where(['"report_id" IN (?)', idss]).delete_all unless idss.empty? where(['"id" IN (?)', idss]).delete_all unless idss.empty? PuppetHerald::Models::Node.delete_empty deleted = idss.length end deleted end |