Class: Rubix::UserMacro
Instance Attribute Summary collapse
Attributes inherited from Model
#id, #properties
Class Method Summary
collapse
Instance Method Summary
collapse
#host, #host=, #host_id, #host_id=
Methods inherited from Model
#after_create, all, all_params, all_request, #before_destroy, #before_update, #create, #create_params, #destroy, #destroy_params, each, find, find_or_create, find_request, get_params, #id_field, list, #new_record?, properties, #request, request, resource_name, #save, #to_hash, #update, #update_params, #validate, web_request, zabbix_attr, zabbix_define, zabbix_name
Methods included from Logs
#debug, #error, #fatal, #info, #warn
Constructor Details
#initialize(properties = {}) ⇒ UserMacro
Returns a new instance of UserMacro.
18
19
20
21
22
23
24
|
# File 'lib/rubix/models/user_macro.rb', line 18
def initialize properties={}
super(properties)
set_name(properties[:name] || self.class.unmacro_name(properties[:macro]), false)
self.host = properties[:host]
self.host_id = properties[:host_id]
end
|
Instance Attribute Details
#name ⇒ Object
9
10
11
|
# File 'lib/rubix/models/user_macro.rb', line 9
def name
@name
end
|
Class Method Details
.build(macro) ⇒ Object
81
82
83
84
85
86
87
88
|
# File 'lib/rubix/models/user_macro.rb', line 81
def self.build macro
new({
:id => macro[id_field].to_i,
:name => unmacro_name(macro['macro']),
:value => macro['value'],
:host_id => macro['hostid']
})
end
|
.find_params(options = {}) ⇒ Object
72
73
74
75
76
77
78
79
|
# File 'lib/rubix/models/user_macro.rb', line 72
def self.find_params options={}
super().merge({
:hostids => [options[:host_id]],
:filter => {
:macro => macro_name(options[:name])
}
})
end
|
.id_field ⇒ Object
38
39
40
|
# File 'lib/rubix/models/user_macro.rb', line 38
def self.id_field
'hostmacroid'
end
|
.macro_name(name) ⇒ Object
30
31
32
|
# File 'lib/rubix/models/user_macro.rb', line 30
def self.macro_name name
"{$#{name.upcase}}"
end
|
.unmacro_name(name) ⇒ Object
26
27
28
|
# File 'lib/rubix/models/user_macro.rb', line 26
def self.unmacro_name name
(name || '').gsub(/^\{\$/, '').gsub(/\}$/, '').upcase
end
|
Instance Method Details
#create_request ⇒ Object
60
61
62
|
# File 'lib/rubix/models/user_macro.rb', line 60
def create_request
request('usermacro.massAdd', mass_add_params)
end
|
#destroy_request ⇒ Object
68
69
70
|
# File 'lib/rubix/models/user_macro.rb', line 68
def destroy_request
request('usermacro.massRemove', :hostids => [host_id], :macros => [macro_name])
end
|
#macro_name ⇒ Object
34
35
36
|
# File 'lib/rubix/models/user_macro.rb', line 34
def macro_name
self.class.macro_name(name)
end
|
#mass_add_params ⇒ Object
56
57
58
|
# File 'lib/rubix/models/user_macro.rb', line 56
def mass_add_params
{ :macros => [{:macro => macro_name, :value => value}], :hosts => [{:hostid => host_id}] }
end
|
#resource_name ⇒ Object
42
43
44
|
# File 'lib/rubix/models/user_macro.rb', line 42
def resource_name
"#{self.class.resource_name} #{self.name || self.id}"
end
|
#set_name(n, validate = true) ⇒ Object
10
11
12
13
14
|
# File 'lib/rubix/models/user_macro.rb', line 10
def set_name n, validate=true
return if n.nil? || n.empty?
raise ValidationError.new("Cannot change the name of a UserMacro once it's created.") if validate && @name && (!new_record?)
@name = n
end
|
#update_request ⇒ Object
64
65
66
|
# File 'lib/rubix/models/user_macro.rb', line 64
def update_request
request('usermacro.massUpdate', mass_add_params)
end
|