diff options
-rw-r--r-- | lib/mauve/alert.rb | 5 | ||||
-rw-r--r-- | lib/mauve/history.rb | 16 | ||||
-rw-r--r-- | lib/mauve/notifiers/debug.rb | 2 | ||||
-rw-r--r-- | lib/mauve/person.rb | 6 | ||||
-rw-r--r-- | lib/mauve/pop3_server.rb | 2 |
5 files changed, 22 insertions, 9 deletions
diff --git a/lib/mauve/alert.rb b/lib/mauve/alert.rb index 027cc8c..20a0861 100644 --- a/lib/mauve/alert.rb +++ b/lib/mauve/alert.rb @@ -78,7 +78,8 @@ module Mauve property :will_raise_at, DateTime property :will_unacknowledge_at, DateTime has n, :changes, :model => AlertChanged - has n, :histories, :model => Mauve::History + has n, :histories, :through => :alerthistory + has 1, :alert_earliest_date before :save, :take_copy_of_changes @@ -209,7 +210,7 @@ module Mauve (self.update_type == "raised" and (is_a_new_alert or is_a_change)) self.notify - h = History.new(:alert_id => self.id, :type => "update") + h = History.new(:alerts => [self], :type => "update") if self.update_type == "acknowledged" h.event = "ACKNOWLEDGED by #{self.acknowledged_by} until #{self.will_unacknowledge_at}" diff --git a/lib/mauve/history.rb b/lib/mauve/history.rb index 1c2cdf4..086fc6d 100644 --- a/lib/mauve/history.rb +++ b/lib/mauve/history.rb @@ -3,6 +3,16 @@ require 'mauve/datamapper' require 'log4r' module Mauve + class AlertHistory + include DataMapper::Resource + + property :alert_id, Integer, :key => true + property :history_id, Integer, :key => true + + belongs_to :alert + belongs_to :history + end + class History include DataMapper::Resource @@ -10,12 +20,12 @@ module Mauve default_scope(:default).update(:order => [:created_at.desc, :id.desc]) property :id, Serial - property :alert_id, Integer, :required => true +# property :alert_id, String, :required => true property :type, String, :required => true, :default => "unknown" property :event, Text, :required => true, :default => "Nothing set" property :created_at, DateTime, :required => true - belongs_to :alert + has n, :alerts, :through => :alerthistory before :valid?, :set_created_at @@ -29,4 +39,6 @@ module Mauve end + end + diff --git a/lib/mauve/notifiers/debug.rb b/lib/mauve/notifiers/debug.rb index 889a428..775364d 100644 --- a/lib/mauve/notifiers/debug.rb +++ b/lib/mauve/notifiers/debug.rb @@ -47,7 +47,7 @@ module Mauve #FileUtils.touch(lock_file) File.open("#{deliver_to_file}", "a+") do |fh| fh.flock(File::LOCK_EX) - fh.print("#{MauveTime.now} from #{self.class}: " + message + "\n") + fh.print("#{Time.now} from #{self.class}: " + message + "\n") fh.flush() end #FileUtils.rm(lock_file) diff --git a/lib/mauve/person.rb b/lib/mauve/person.rb index 1a5f2c9..58d696c 100644 --- a/lib/mauve/person.rb +++ b/lib/mauve/person.rb @@ -72,10 +72,10 @@ module Mauve # Log the result note = "#{@alert.update_type.capitalize} #{name} notification to #{@person.username} (#{destination}) " + (res ? "succeeded" : "failed" ) logger.info note+" about #{@alert}." - h = History.new(:alert_id => @alert.id, :type => "notification", :event => note) + h = History.new(:alerts => [@alert], :type => "notification", :event => note) logger.error "Unable to save history due to #{h.errors.inspect}" if !h.save - res + return res end end @@ -191,7 +191,7 @@ module Mauve if was_suppressed and self.suppressed? note = "#{alert.update_type.capitalize} notification to #{self.username} suppressed" logger.info note + " about #{alert}." - History.create(:alert_id => alert.id, :type => "notification", :event => note) + History.create(:alerts => [alert], :type => "notification", :event => note) return true end diff --git a/lib/mauve/pop3_server.rb b/lib/mauve/pop3_server.rb index e455591..ef307d5 100644 --- a/lib/mauve/pop3_server.rb +++ b/lib/mauve/pop3_server.rb @@ -258,7 +258,7 @@ module Mauve send_data ["+OK #{msg.length} octets", msg, "."].join(CRLF) note = "#{alert_changed.update_type.capitalize} notification downloaded via POP3 by #{@user}" logger.info note+" about #{alert_changed}." - h = History.new(:alert_id => alert_changed.alert_id, :type => "notification", :event => note) + h = History.new(:alerts => [alert_changed.alert_id], :type => "notification", :event => note) logger.error "Unable to save history due to #{h.errors.inspect}" if !h.save else send_data "-ERR Message not found." |