Class: PuppetHerald::PurgeCronJob

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet-herald/purgecronjob.rb

Overview

A cron job for Herald

Constant Summary collapse

SECONDS_IN_DAY =

Number of seconds in a day

Returns:

  • (Integer)
86_400

Instance Method Summary collapse

Instance Method Details

#parse_limit(limit) ⇒ DateTime

Parse a limit and returns number of seconds

Parameters:

  • limit (String)

    a limit as string

Returns:

  • (DateTime)

    a date in the past - now minus limit



28
29
30
31
32
33
# File 'lib/puppet-herald/purgecronjob.rb', line 28

def parse_limit(limit)
  require 'rufus/scheduler'
  seconds = Rufus::Scheduler.parse limit
  now = DateTime.now
  now - Rational(seconds, SECONDS_IN_DAY)
end

#run!nil

Run a purge job

Returns:

  • (nil)


13
14
15
16
17
18
19
20
21
22
# File 'lib/puppet-herald/purgecronjob.rb', line 13

def run!
  require 'puppet-herald'
  require 'puppet-herald/models/report'
  limit = ENV['PUPPET_HERALD_PURGE_LIMIT'] || '90d'
  date = parse_limit limit
  PuppetHerald.logger.info "Running a purge reports job with limit: `#{limit}` that is `#{date}`..."
  reports = PuppetHerald::Models::Report.purge_older_then(date)
  PuppetHerald.logger.info "Job completed. Purged: #{reports} reports."
  nil
end