Class: Flapjack::Data::State
- Inherits:
-
Object
- Object
- Flapjack::Data::State
- Includes:
- ActiveModel::Serializers::JSON, Extensions::Associations, Extensions::ShortName, Swagger::Blocks, Zermelo::Records::RedisSortedSet
- Defined in:
- lib/flapjack/data/state.rb
Constant Summary collapse
- ACTIONS =
%w(acknowledgement test_notifications)
Class Method Summary collapse
Instance Method Summary collapse
- #is_unlinked ⇒ Object
-
#perfdata ⇒ Object
TODO handle JSON exception.
-
#perfdata=(data) ⇒ Object
example perfdata: time=0.486630s;;;0.000000 size=909B;;;0.
Class Method Details
.jsonapi_associations ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
# File 'lib/flapjack/data/state.rb', line 184 def self.jsonapi_associations unless instance_variable_defined?('@jsonapi_associations') @jsonapi_associations = { :check => Flapjack::Gateways::JSONAPI::Data::JoinDescriptor.new( :get => true, :number => :singular, :link => true, :includable => true, :descriptions => { :get => "Returns the check the state data describes." } ) } populate_association_data(@jsonapi_associations) end @jsonapi_associations end |
.jsonapi_methods ⇒ Object
171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/flapjack/data/state.rb', line 171 def self.jsonapi_methods @jsonapi_methods ||= { :get => Flapjack::Gateways::JSONAPI::Data::MethodDescriptor.new( :attributes => [:created_at, :updated_at, :condition, :action, :summary, :details, :perfdata], :descriptions => { :singular => "Get data for a single check state record.", :multiple => "Get data for check state records." } ) } end |
.swagger_included_classes ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/flapjack/data/state.rb', line 108 def self.swagger_included_classes # hack -- hardcoding for now [ Flapjack::Data::Check, Flapjack::Data::Contact, Flapjack::Data::Medium, Flapjack::Data::Rule, Flapjack::Data::ScheduledMaintenance, Flapjack::Data::State, Flapjack::Data::Tag, Flapjack::Data::UnscheduledMaintenance ] end |
Instance Method Details
#is_unlinked ⇒ Object
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/flapjack/data/state.rb', line 202 def is_unlinked Flapjack.logger.debug "checking deletion of #{self.instance_variable_get('@attributes').inspect}" Flapjack.logger.debug "check #{self.check.nil?}" Flapjack.logger.debug "latest_notifications_check nil #{self.latest_notifications_check.nil?}" Flapjack.logger.debug "most_severe_check nil #{self.most_severe_check.nil?}" Flapjack.logger.debug "notification nil #{self.notification.nil?}" Flapjack.logger.debug "latest media empty #{self.latest_media.empty?}" return false unless self.check.nil? && self.latest_notifications_check.nil? && self.most_severe_check.nil? && self.notification.nil? && self.latest_media.empty? Flapjack.logger.debug "deleting" true end |
#perfdata ⇒ Object
TODO handle JSON exception
78 79 80 81 82 83 84 |
# File 'lib/flapjack/data/state.rb', line 78 def perfdata if self.perfdata_json.nil? @perfdata = nil return end @perfdata ||= Flapjack.load_json(self.perfdata_json) end |
#perfdata=(data) ⇒ Object
example perfdata: time=0.486630s;;;0.000000 size=909B;;;0
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/flapjack/data/state.rb', line 87 def perfdata=(data) if data.nil? self.perfdata_json = nil return end data = data.strip if data.length == 0 self.perfdata_json = nil return end # Could maybe be replaced by a fancy regex @perfdata = data.split(' ').inject([]) do |item| parts = item.split('=') memo << {"key" => parts[0].to_s, "value" => parts[1].nil? ? '' : parts[1].split(';')[0].to_s} memo end self.perfdata_json = @perfdata.nil? ? nil : Flapjack.dump_json(@perfdata) end |