rubix 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/rubix/models/action.rb +2 -3
- data/lib/rubix/models/condition.rb +30 -33
- data/lib/rubix/models/host.rb +2 -3
- data/lib/rubix/models/item.rb +8 -12
- data/lib/rubix/models/media_type.rb +2 -3
- data/lib/rubix/models/medium.rb +4 -5
- data/lib/rubix/models/model.rb +11 -0
- data/lib/rubix/models/operation.rb +4 -6
- data/lib/rubix/models/script.rb +2 -3
- data/lib/rubix/models/trigger.rb +12 -10
- data/lib/rubix/models/user.rb +7 -3
- data/lib/rubix/models/user_group.rb +2 -3
- data/spec/rubix/model_spec.rb +41 -0
- metadata +63 -91
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/rubix/models/action.rb
CHANGED
@@ -3,12 +3,11 @@ module Rubix
|
|
3
3
|
class Action < Model
|
4
4
|
|
5
5
|
# Numeric codes for the event source. Default will be 'triggers'.
|
6
|
-
|
6
|
+
zabbix_define :EVENT_SOURCE, {
|
7
7
|
:triggers => 0,
|
8
8
|
:discovery => 1,
|
9
9
|
:auto_registration => 2
|
10
|
-
}
|
11
|
-
EVENT_SOURCE_NAMES = EVENT_SOURCE_CODES.invert.freeze
|
10
|
+
}
|
12
11
|
|
13
12
|
# The default subject for messages.
|
14
13
|
MESSAGE_SUBJECT = "{TRIGGER.NAME}: {TRIGGER.STATUS}"
|
@@ -4,44 +4,42 @@ module Rubix
|
|
4
4
|
|
5
5
|
# Numeric codes for the operator to use to join conditions for
|
6
6
|
# this action. Default is 'and_or'.
|
7
|
-
|
7
|
+
zabbix_define :JOIN, {
|
8
8
|
:and_or => 0,
|
9
9
|
:and => 1,
|
10
10
|
:or => 2
|
11
|
-
}
|
12
|
-
JOIN_NAMES = JOIN_CODES.invert.freeze
|
11
|
+
}
|
13
12
|
|
14
13
|
# Numeric codes for the event source.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
}
|
40
|
-
TYPE_NAMES = TYPE_CODES.invert.freeze
|
14
|
+
zabbix_define :TYPE, {
|
15
|
+
:host_group => 0,
|
16
|
+
:host => 1,
|
17
|
+
:trigger => 2,
|
18
|
+
:trigger_name => 3,
|
19
|
+
:trigger_severity => 4,
|
20
|
+
:trigger_value => 5,
|
21
|
+
:time_period => 6,
|
22
|
+
:dhost_ip => 7,
|
23
|
+
:dservice_type => 8,
|
24
|
+
:dservice_port => 9,
|
25
|
+
:dstatus => 10,
|
26
|
+
:duptime => 11,
|
27
|
+
:dvalue => 12,
|
28
|
+
:host_template => 13,
|
29
|
+
:event_acknowledged => 14,
|
30
|
+
:application => 15,
|
31
|
+
:maintenance => 16,
|
32
|
+
:node => 17,
|
33
|
+
:drule => 18,
|
34
|
+
:dcheck => 19,
|
35
|
+
:proxy => 20,
|
36
|
+
:dobject => 21,
|
37
|
+
:host_name => 22
|
38
|
+
}
|
41
39
|
|
42
40
|
# Numeric codes for the operator used to compare a condition's
|
43
41
|
# type to its value.
|
44
|
-
|
42
|
+
zabbix_define :OPERATOR, {
|
45
43
|
:equal => 0,
|
46
44
|
:not_equal => 1,
|
47
45
|
:like => 2,
|
@@ -49,9 +47,8 @@ module Rubix
|
|
49
47
|
:in => 4,
|
50
48
|
:gte => 5,
|
51
49
|
:lte => 6,
|
52
|
-
:not_in => 7
|
53
|
-
}
|
54
|
-
OPERATOR_NAMES = OPERATOR_CODES.invert.freeze
|
50
|
+
:not_in => 7
|
51
|
+
}
|
55
52
|
|
56
53
|
#
|
57
54
|
# == Properties & Finding ==
|
data/lib/rubix/models/host.rb
CHANGED
@@ -14,7 +14,7 @@ module Rubix
|
|
14
14
|
DEFAULT_PORT = 10050
|
15
15
|
|
16
16
|
# The numeric codes for the various status types.
|
17
|
-
|
17
|
+
zabbix_define :STATUS, {
|
18
18
|
:monitored => 0,
|
19
19
|
:not_monitored => 1,
|
20
20
|
:unreachable => 2,
|
@@ -22,8 +22,7 @@ module Rubix
|
|
22
22
|
:deleted => 4,
|
23
23
|
:proxy_active => 5,
|
24
24
|
:proxy_passive => 6
|
25
|
-
}
|
26
|
-
STATUS_NAMES = STATUS_CODES.invert.freeze
|
25
|
+
}
|
27
26
|
|
28
27
|
zabbix_attr :name
|
29
28
|
zabbix_attr :ip
|
data/lib/rubix/models/item.rb
CHANGED
@@ -9,7 +9,7 @@ module Rubix
|
|
9
9
|
# The numeric codes for the various item types.
|
10
10
|
#
|
11
11
|
# Items without a type will be set to 'zabbix'.
|
12
|
-
|
12
|
+
zabbix_define :TYPE, {
|
13
13
|
:zabbix => 0,
|
14
14
|
:snmpv1 => 1,
|
15
15
|
:trapper => 2,
|
@@ -26,42 +26,38 @@ module Rubix
|
|
26
26
|
:ssh => 13,
|
27
27
|
:telnet => 14,
|
28
28
|
:calculated => 15
|
29
|
-
}
|
30
|
-
TYPE_NAMES = TYPE_CODES.invert.freeze
|
29
|
+
}
|
31
30
|
|
32
31
|
# The numeric codes for the value types of a Zabbix item.
|
33
32
|
#
|
34
33
|
# This Hash is used by ZabbixPipe#value_code_from_value to
|
35
34
|
# dynamically set the type of a value when creating a new Zabbix
|
36
35
|
# item.
|
37
|
-
|
36
|
+
zabbix_define :VALUE, {
|
38
37
|
:float => 0, # Numeric (float)
|
39
38
|
:character => 1, # Character
|
40
39
|
:log_line => 2, # Log
|
41
40
|
:unsigned_int => 3, # Numeric (unsigned)
|
42
41
|
:text => 4 # Text
|
43
|
-
}
|
44
|
-
VALUE_NAMES = VALUE_CODES.invert.freeze
|
42
|
+
}
|
45
43
|
|
46
44
|
# The numeric codes for the data types of a Zabbix item.
|
47
45
|
#
|
48
46
|
# The default will be <tt>:decimal</tt>
|
49
|
-
|
47
|
+
zabbix_define :DATA, {
|
50
48
|
:decimal => 0,
|
51
49
|
:octal => 1,
|
52
50
|
:hexadecimal => 2
|
53
|
-
}
|
54
|
-
DATA_NAMES = DATA_CODES.invert.freeze
|
51
|
+
}
|
55
52
|
|
56
53
|
# The numeric codes for the status of a Zabbix item.
|
57
54
|
#
|
58
55
|
# The default will be <tt>:active</tt>
|
59
|
-
|
56
|
+
zabbix_define :STATUS, {
|
60
57
|
:active => 0,
|
61
58
|
:disabled => 1,
|
62
59
|
:not_supported => 3
|
63
|
-
}
|
64
|
-
STATUS_NAMES = STATUS_CODES.invert.freeze
|
60
|
+
}
|
65
61
|
|
66
62
|
# Return the +value_type+ name (:float, :text, &c.) for a Zabbix
|
67
63
|
# item's value type by examining the given +value+.
|
@@ -5,14 +5,13 @@ module Rubix
|
|
5
5
|
# The numeric codes corresponding to each media type.
|
6
6
|
#
|
7
7
|
# The default will be 'script'.
|
8
|
-
|
8
|
+
zabbix_define :TYPE, {
|
9
9
|
:email => 0,
|
10
10
|
:script => 1,
|
11
11
|
:sms => 2,
|
12
12
|
:jabber => 3,
|
13
13
|
:ez_texting => 100
|
14
|
-
}
|
15
|
-
TYPE_NAMES = TYPE_CODES.invert.freeze
|
14
|
+
}
|
16
15
|
|
17
16
|
#
|
18
17
|
# == Properties & Finding ==
|
data/lib/rubix/models/medium.rb
CHANGED
@@ -8,7 +8,7 @@ module Rubix
|
|
8
8
|
# and :warning triggers but rejecting :information triggers. In
|
9
9
|
# the interests of simplicity, we avoid exposing that degree of
|
10
10
|
# freedom here.
|
11
|
-
|
11
|
+
zabbix_define :PRIORITY, {
|
12
12
|
:none => 0,
|
13
13
|
:not_classified => 63,
|
14
14
|
:information => 62,
|
@@ -18,8 +18,7 @@ module Rubix
|
|
18
18
|
:disaster => 32,
|
19
19
|
:all => 63,
|
20
20
|
nil => 63
|
21
|
-
}
|
22
|
-
PRIORITY_NAMES = PRIORITY_CODES.invert.freeze
|
21
|
+
}
|
23
22
|
|
24
23
|
#
|
25
24
|
# == Properties & Finding ==
|
@@ -32,7 +31,7 @@ module Rubix
|
|
32
31
|
|
33
32
|
attr_writer :severity
|
34
33
|
def severity
|
35
|
-
@severity ||= self.class::PRIORITY_CODES[priority]
|
34
|
+
@severity ||= self.class::PRIORITY_CODES[(priority || :all)]
|
36
35
|
end
|
37
36
|
|
38
37
|
def self.id_field
|
@@ -65,7 +64,7 @@ module Rubix
|
|
65
64
|
:userid => user_id,
|
66
65
|
:sendto => address,
|
67
66
|
:active => (enabled ? 0 : 1),
|
68
|
-
:severity => (severity || self.class::PRIORITY_CODES[priority]),
|
67
|
+
:severity => (severity || self.class::PRIORITY_CODES[(priority || :all)]),
|
69
68
|
:period => timeframe
|
70
69
|
}
|
71
70
|
end
|
data/lib/rubix/models/model.rb
CHANGED
@@ -438,6 +438,17 @@ module Rubix
|
|
438
438
|
end
|
439
439
|
end
|
440
440
|
end
|
441
|
+
|
442
|
+
def self.zabbix_define defname, hash
|
443
|
+
codes = hash
|
444
|
+
names = hash.invert.freeze
|
445
|
+
codes.keys.each do |key|
|
446
|
+
codes[key.to_s] = codes[key]
|
447
|
+
end
|
448
|
+
codes.freeze
|
449
|
+
const_set "#{defname}_CODES", codes
|
450
|
+
const_set "#{defname}_NAMES", names
|
451
|
+
end
|
441
452
|
|
442
453
|
end
|
443
454
|
end
|
@@ -3,7 +3,7 @@ module Rubix
|
|
3
3
|
class Operation < Model
|
4
4
|
|
5
5
|
# Numeric codes for the action's type.
|
6
|
-
|
6
|
+
zabbix_define :TYPE, {
|
7
7
|
:message => 0,
|
8
8
|
:command => 1,
|
9
9
|
:host_add => 2,
|
@@ -14,16 +14,14 @@ module Rubix
|
|
14
14
|
:template_remove => 7,
|
15
15
|
:host_enable => 8,
|
16
16
|
:host_disable => 9
|
17
|
-
}
|
18
|
-
TYPE_NAMES = TYPE_CODES.invert.freeze
|
17
|
+
}
|
19
18
|
|
20
19
|
# Numeric codes for the type of object that should be notified.
|
21
20
|
# Default will be 'group'.
|
22
|
-
|
21
|
+
zabbix_define :NOTIFICATION_OBJECT, {
|
23
22
|
:user => 0,
|
24
23
|
:user_group => 1
|
25
|
-
}
|
26
|
-
NOTIFICATION_OBJECT_NAMES = NOTIFICATION_OBJECT_CODES.invert.freeze
|
24
|
+
}
|
27
25
|
|
28
26
|
#
|
29
27
|
# == Properties & Finding ==
|
data/lib/rubix/models/script.rb
CHANGED
data/lib/rubix/models/trigger.rb
CHANGED
@@ -6,21 +6,19 @@ module Rubix
|
|
6
6
|
# == Properties & Finding ==
|
7
7
|
#
|
8
8
|
|
9
|
-
|
9
|
+
zabbix_define :PRIORITY, {
|
10
10
|
:not_classified => 0,
|
11
11
|
:information => 1,
|
12
12
|
:warning => 2,
|
13
13
|
:average => 3,
|
14
14
|
:high => 4,
|
15
15
|
:disaster => 5
|
16
|
-
}
|
17
|
-
PRIORITY_CODES = PRIORITY_NAMES.invert.freeze
|
16
|
+
}
|
18
17
|
|
19
|
-
|
18
|
+
zabbix_define :STATUS, {
|
20
19
|
:enabled => 0,
|
21
20
|
:disabled => 1
|
22
|
-
}
|
23
|
-
STATUS_CODES = STATUS_NAMES.invert.freeze
|
21
|
+
}
|
24
22
|
|
25
23
|
zabbix_attr :description
|
26
24
|
zabbix_attr :url
|
@@ -59,6 +57,10 @@ module Rubix
|
|
59
57
|
@expression = e
|
60
58
|
end
|
61
59
|
|
60
|
+
def resource_name
|
61
|
+
"#{self.class.resource_name} #{self.description || self.id}"
|
62
|
+
end
|
63
|
+
|
62
64
|
#
|
63
65
|
# == Associations ==
|
64
66
|
#
|
@@ -76,8 +78,8 @@ module Rubix
|
|
76
78
|
:templateid => (template_id || host_id),
|
77
79
|
:description => (description || 'Unknown'),
|
78
80
|
:expression => expression,
|
79
|
-
:priority => self.class::
|
80
|
-
:status => self.class::
|
81
|
+
:priority => self.class::PRIORITY_CODES[priority],
|
82
|
+
:status => self.class::STATUS_CODES[status],
|
81
83
|
:comments => comments,
|
82
84
|
:url => url
|
83
85
|
}
|
@@ -110,8 +112,8 @@ module Rubix
|
|
110
112
|
:expression => trigger['expression'],
|
111
113
|
:comments => trigger['comments'],
|
112
114
|
:url => trigger['url'],
|
113
|
-
:status =>
|
114
|
-
:priority =>
|
115
|
+
:status => STATUS_NAMES[trigger['status'].to_i],
|
116
|
+
:priority => PRIORITY_NAMES[trigger['priority'].to_i],
|
115
117
|
:item_ids => (trigger['items'] || []).map { |item| item['itemid'].to_i }
|
116
118
|
}.merge(host_or_template_params_from_id(trigger['templateid'].to_i)))
|
117
119
|
end
|
data/lib/rubix/models/user.rb
CHANGED
@@ -5,12 +5,11 @@ module Rubix
|
|
5
5
|
class User < Model
|
6
6
|
|
7
7
|
# Numeric codes for the various user types.
|
8
|
-
|
8
|
+
zabbix_define :TYPE, {
|
9
9
|
:normal => 1,
|
10
10
|
:admin => 2,
|
11
11
|
:super_admin => 3
|
12
|
-
}
|
13
|
-
TYPE_NAMES = TYPE_CODES.invert.freeze
|
12
|
+
}
|
14
13
|
|
15
14
|
#
|
16
15
|
# == Properties & Finding ==
|
@@ -41,9 +40,14 @@ module Rubix
|
|
41
40
|
self.media = properties[:media]
|
42
41
|
end
|
43
42
|
|
43
|
+
def resource_name
|
44
|
+
"#{self.class.resource_name} #{self.username || self.id}"
|
45
|
+
end
|
46
|
+
|
44
47
|
#
|
45
48
|
# == Validations ==
|
46
49
|
#
|
50
|
+
|
47
51
|
def validate
|
48
52
|
super()
|
49
53
|
raise ValidationError.new("A new user must have a password") if new_record? && (password.nil? || password.empty?)
|
@@ -4,12 +4,11 @@ module Rubix
|
|
4
4
|
|
5
5
|
# Numeric codes for the types of access allowed to the GUI for
|
6
6
|
# users in the group. Default is, well, 'default'.
|
7
|
-
|
7
|
+
zabbix_define :GUI_ACCESS, {
|
8
8
|
:default => 0,
|
9
9
|
:internal => 1,
|
10
10
|
:disabled => 2
|
11
|
-
}
|
12
|
-
GUI_ACCESS_NAMES = GUI_ACCESS_CODES.invert.freeze
|
11
|
+
}
|
13
12
|
|
14
13
|
#
|
15
14
|
# == Properties & Finding ==
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Rubix::Model do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@model_wrapper = Class.new(Rubix::Model)
|
7
|
+
@model_wrapper.zabbix_define :FOO, { :bar => 0, :booz => 1 }
|
8
|
+
@model_wrapper.zabbix_attr :snap
|
9
|
+
@model_wrapper.zabbix_attr :crackle, :default => 'how'
|
10
|
+
@model_wrapper.zabbix_attr :pop, :required => true
|
11
|
+
end
|
12
|
+
|
13
|
+
it "can define attributes" do
|
14
|
+
@model = @model_wrapper.new
|
15
|
+
@model.snap.should be_nil
|
16
|
+
@model.snap = 3
|
17
|
+
@model.snap.should == 3
|
18
|
+
end
|
19
|
+
|
20
|
+
it "can define attributes with defaults" do
|
21
|
+
@model_wrapper.new.crackle.should == 'how'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "can define required attributs" do
|
25
|
+
lambda { @model_wrapper.new.validate }.should raise_error(Rubix::ValidationError)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "will define a lookup hash for translating between names and integer codes" do
|
29
|
+
@model_wrapper::FOO_CODES[:bar].should == 0
|
30
|
+
@model_wrapper::FOO_CODES[:booz].should == 1
|
31
|
+
@model_wrapper::FOO_NAMES[0].should == :bar
|
32
|
+
@model_wrapper::FOO_NAMES[1].should == :booz
|
33
|
+
end
|
34
|
+
|
35
|
+
it "will define a lookup hash that acts as a Mash when looking up names to codes" do
|
36
|
+
@model_wrapper::FOO_CODES[:bar].should == 0
|
37
|
+
@model_wrapper::FOO_CODES['bar'].should == 0
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
metadata
CHANGED
@@ -1,102 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubix
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 5
|
8
|
-
- 1
|
9
|
-
version: 0.5.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.2
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Dhruv Bansal
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-27 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &21980180 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
31
22
|
type: :development
|
32
|
-
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: mysql2
|
35
23
|
prerelease: false
|
36
|
-
|
24
|
+
version_requirements: *21980180
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mysql2
|
27
|
+
requirement: &21979680 !ruby/object:Gem::Requirement
|
37
28
|
none: false
|
38
|
-
requirements:
|
39
|
-
- -
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
- 0
|
43
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
44
33
|
type: :development
|
45
|
-
version_requirements: *id002
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: json
|
48
34
|
prerelease: false
|
49
|
-
|
35
|
+
version_requirements: *21979680
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: json
|
38
|
+
requirement: &21977020 !ruby/object:Gem::Requirement
|
50
39
|
none: false
|
51
|
-
requirements:
|
40
|
+
requirements:
|
52
41
|
- - <=
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
segments:
|
55
|
-
- 1
|
56
|
-
- 6
|
57
|
-
- 1
|
42
|
+
- !ruby/object:Gem::Version
|
58
43
|
version: 1.6.1
|
59
44
|
type: :runtime
|
60
|
-
version_requirements: *id003
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: configliere
|
63
45
|
prerelease: false
|
64
|
-
|
46
|
+
version_requirements: *21977020
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: configliere
|
49
|
+
requirement: &21976500 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
- 4
|
72
|
-
- 8
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
73
54
|
version: 0.4.8
|
74
55
|
type: :runtime
|
75
|
-
version_requirements: *id004
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: multipart-post
|
78
56
|
prerelease: false
|
79
|
-
|
57
|
+
version_requirements: *21976500
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: multipart-post
|
60
|
+
requirement: &21976060 !ruby/object:Gem::Requirement
|
80
61
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
85
|
-
- 0
|
86
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
87
66
|
type: :runtime
|
88
|
-
|
89
|
-
|
90
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *21976060
|
69
|
+
description: Rubix provides abstractions for connecting to Zabbix's API, an ORM for
|
70
|
+
wrapping Zabbix resources, a set of scripts for writing data to Zabbix, and a collection
|
71
|
+
of Monitor classes for building periodic monitors.
|
72
|
+
email:
|
91
73
|
- dhruv@infochimps.com
|
92
|
-
executables:
|
74
|
+
executables:
|
93
75
|
- zabbix_api
|
94
76
|
- zabbix_pipe
|
95
77
|
extensions: []
|
96
|
-
|
97
78
|
extra_rdoc_files: []
|
98
|
-
|
99
|
-
files:
|
79
|
+
files:
|
100
80
|
- bin/zabbix_api
|
101
81
|
- bin/zabbix_pipe
|
102
82
|
- lib/rubix.rb
|
@@ -150,6 +130,7 @@ files:
|
|
150
130
|
- lib/rubix/connection.rb
|
151
131
|
- lib/rubix/associations.rb
|
152
132
|
- spec/test.yml
|
133
|
+
- spec/rubix/model_spec.rb
|
153
134
|
- spec/rubix/auto_sender_spec.rb
|
154
135
|
- spec/rubix/monitors/monitor_spec.rb
|
155
136
|
- spec/rubix/monitors/chef_monitor_spec.rb
|
@@ -180,37 +161,28 @@ files:
|
|
180
161
|
- LICENSE
|
181
162
|
- README.rdoc
|
182
163
|
- VERSION
|
183
|
-
has_rdoc: true
|
184
164
|
homepage: http://github.com/dhruvbansal/rubix
|
185
165
|
licenses: []
|
186
|
-
|
187
166
|
post_install_message:
|
188
167
|
rdoc_options: []
|
189
|
-
|
190
|
-
require_paths:
|
168
|
+
require_paths:
|
191
169
|
- lib
|
192
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
193
171
|
none: false
|
194
|
-
requirements:
|
195
|
-
- -
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
|
199
|
-
version: "0"
|
200
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
177
|
none: false
|
202
|
-
requirements:
|
203
|
-
- -
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
|
206
|
-
- 0
|
207
|
-
version: "0"
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
208
182
|
requirements: []
|
209
|
-
|
210
183
|
rubyforge_project:
|
211
|
-
rubygems_version: 1.
|
184
|
+
rubygems_version: 1.8.17
|
212
185
|
signing_key:
|
213
186
|
specification_version: 3
|
214
187
|
summary: A Ruby client for configuring and writing data to Zabbix
|
215
188
|
test_files: []
|
216
|
-
|