Class: Rubix::Medium

Inherits:
Model
  • Object
show all
Includes:
Associations::BelongsToMediaType, Associations::BelongsToUser
Defined in:
lib/rubix/models/medium.rb

Constant Summary collapse

PRIORITY_CODES =

Numeric codes that correspond to accepting triggers that are any priority less than or equal to that listed. More fine grained control is possible, i.e. - accepting :not_classified and :wanring triggers but rejejcting :information triggers. In the interests of simplicity, we avoid exposing that degree of freedom here.

{
  :none           => 0,
  :not_classified => 1,
  :information    => 3,
  :warning        => 7,
  :average        => 15,
  :high           => 31,
  :disaster       => 63,
  :all            => 63,
  nil             => 63
}.freeze
PRIORITY_NAMES =
PRIORITY_CODES.invert.freeze

Instance Attribute Summary collapse

Attributes inherited from Model

#id, #properties

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Associations::BelongsToMediaType

#media_type, #media_type=, #media_type_id, #media_type_id=

Methods included from Associations::BelongsToUser

#user, #user=, #user_id, #user_id=

Methods inherited from Model

#after_create, all, all_params, all_request, #before_destroy, #before_update, #create, #create_request, #destroy, #destroy_params, #destroy_request, each, find, find_or_create, find_params, find_request, get_params, #id_field, list, #new_record?, properties, request, #request, #resource_name, resource_name, #save, #to_hash, #update, #update_params, #update_request, #validate, web_request, zabbix_attr, zabbix_name

Methods included from Logs

#debug, #error, #fatal, #info, #warn

Constructor Details

#initialize(properties = {}) ⇒ Medium

Returns a new instance of Medium.



42
43
44
45
46
47
48
49
# File 'lib/rubix/models/medium.rb', line 42

def initialize properties={}
  super(properties)
  self.severity      = properties[:severity].to_i if properties[:severity]
  self.user          = properties[:user]
  self.user_id       = properties[:user_id]
  self.media_type    = properties[:media_type]
  self.media_type_id = properties[:media_type_id]
end

Instance Attribute Details

#severityObject



34
35
36
# File 'lib/rubix/models/medium.rb', line 34

def severity
  @severity ||= self.class::PRIORITY_CODES[priority]
end

Class Method Details

.build(medium) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/rubix/models/medium.rb', line 73

def self.build medium
  new({
        :id            => medium[id_field].to_i,
        :address       => medium['sendto'],
        :severity      => medium['severity'].to_i,
        :priority      => self::PRIORITY_NAMES[medium['severity'].to_i],
        :timeframe     => medium['period'],
        :enabled       => (medium['active'].to_i == 0),
        :user_id       => medium['userid'].to_i,
        :media_type_id => medium['mediatypeid'].to_i
      })
end

.id_fieldObject



38
39
40
# File 'lib/rubix/models/medium.rb', line 38

def self.id_field
  'mediaid'
end

Instance Method Details

#create_paramsObject

Requests ==



62
63
64
65
66
67
68
69
70
71
# File 'lib/rubix/models/medium.rb', line 62

def create_params
  {
    :mediatypeid => media_type_id,
    :userid      => user_id,
    :sendto      => address,
    :active      => (enabled ? 0 : 1),
    :severity    => (severity || self.class::PRIORITY_CODES[priority]),
    :period      => timeframe
  }
end