rubix 0.1.1 → 0.1.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/associations/belongs_to_item.rb +0 -1
- data/lib/rubix/models/host.rb +47 -7
- data/lib/rubix/models/time_series.rb +0 -1
- data/spec/requests/host_request_spec.rb +12 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/rubix/models/host.rb
CHANGED
@@ -12,8 +12,21 @@ module Rubix
|
|
12
12
|
|
13
13
|
# The default port.
|
14
14
|
DEFAULT_PORT = 10050
|
15
|
+
|
16
|
+
# The numeric codes for the various status types.
|
17
|
+
STATUS_CODES = {
|
18
|
+
:monitored => 0,
|
19
|
+
:not_monitored => 1,
|
20
|
+
:unreachable => 2,
|
21
|
+
:template => 3,
|
22
|
+
:deleted => 4,
|
23
|
+
:proxy_active => 5,
|
24
|
+
:proxy_passive => 6
|
25
|
+
}.freeze
|
26
|
+
STATUS_NAMES = STATUS_CODES.invert.freeze
|
15
27
|
|
16
|
-
attr_accessor :name, :ip, :port, :profile, :status
|
28
|
+
attr_accessor :name, :ip, :port, :profile, :dns, :status
|
29
|
+
attr_writer :use_ip, :monitored
|
17
30
|
|
18
31
|
def initialize properties={}
|
19
32
|
super(properties)
|
@@ -21,6 +34,9 @@ module Rubix
|
|
21
34
|
@ip = properties[:ip]
|
22
35
|
@port = properties[:port]
|
23
36
|
@profile = properties[:profile]
|
37
|
+
@monitored = properties[:monitored]
|
38
|
+
@dns = properties[:dns]
|
39
|
+
@use_ip = properties[:use_ip]
|
24
40
|
@status = properties[:status]
|
25
41
|
|
26
42
|
self.host_group_ids = properties[:host_group_ids]
|
@@ -33,6 +49,16 @@ module Rubix
|
|
33
49
|
self.user_macros = properties[:user_macros]
|
34
50
|
end
|
35
51
|
|
52
|
+
def use_ip
|
53
|
+
return @use_ip if (!@use_ip.nil?)
|
54
|
+
@use_ip = true
|
55
|
+
end
|
56
|
+
|
57
|
+
def monitored
|
58
|
+
return @monitored if (!@monitored.nil?)
|
59
|
+
@monitored = true
|
60
|
+
end
|
61
|
+
|
36
62
|
#
|
37
63
|
# == Associations ==
|
38
64
|
#
|
@@ -62,12 +88,17 @@ module Rubix
|
|
62
88
|
:macros => user_macro_params
|
63
89
|
}.tap do |hp|
|
64
90
|
hp[:profile] = profile if profile
|
65
|
-
hp[:status] =
|
91
|
+
hp[:status] = (monitored ? 0 : 1) unless monitored.nil?
|
66
92
|
|
67
|
-
|
68
|
-
|
69
|
-
hp[:useip]
|
70
|
-
hp[:
|
93
|
+
case
|
94
|
+
when use_ip && (!ip.nil?) && (!ip.empty?)
|
95
|
+
hp[:useip] = 1
|
96
|
+
hp[:ip] = ip
|
97
|
+
hp[:port] = port || self.class::DEFAULT_PORT
|
98
|
+
when (!dns.nil?) && (!dns.empty?)
|
99
|
+
hp[:useip] = 0
|
100
|
+
hp[:dns] = dns
|
101
|
+
hp[:port] = port || self.class::DEFAULT_PORT
|
71
102
|
else
|
72
103
|
hp[:ip] = self.class::BLANK_IP
|
73
104
|
end
|
@@ -110,7 +141,16 @@ module Rubix
|
|
110
141
|
:template_ids => host['parentTemplates'].map { |template| (template['templateid'] || template[id_field]).to_i },
|
111
142
|
:user_macros => host['macros'].map { |um| UserMacro.new(:host_id => um[id_field].to_i, :id => um['hostmacroid'], :value => um['value'], :macro => um['macro']) },
|
112
143
|
:profile => host['profile'],
|
113
|
-
:port => host['port']
|
144
|
+
:port => host['port'],
|
145
|
+
:ip => host['ip'],
|
146
|
+
:dns => host['dns'],
|
147
|
+
:use_ip => (host['useip'].to_i == '1'),
|
148
|
+
|
149
|
+
# If the status is '1' then this is an unmonitored host.
|
150
|
+
# Otherwise it's either '0' for monitored and ok or
|
151
|
+
# something else for monitored and *not* ok.
|
152
|
+
:monitored => (host['status'].to_i == 1 ? false : true),
|
153
|
+
:status => self::STATUS_NAMES[host['status'].to_i]
|
114
154
|
})
|
115
155
|
end
|
116
156
|
|
@@ -21,6 +21,8 @@ describe "Hosts" do
|
|
21
21
|
it "can be created" do
|
22
22
|
host = Rubix::Host.new(:name => 'rubix_spec_host_1', :host_groups => [@host_group_1])
|
23
23
|
host.save.should be_true
|
24
|
+
host.monitored.should be_true
|
25
|
+
host.use_ip.should be_true
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
@@ -50,6 +52,16 @@ describe "Hosts" do
|
|
50
52
|
new_host.host_groups.map(&:name).should include('rubix_spec_host_group_1', 'rubix_spec_host_group_2')
|
51
53
|
end
|
52
54
|
|
55
|
+
it "can change its monitoring status" do
|
56
|
+
@host.monitored = false
|
57
|
+
@host.save
|
58
|
+
|
59
|
+
new_host = Rubix::Host.find(:name => 'rubix_spec_host_1')
|
60
|
+
new_host.should_not be_nil
|
61
|
+
new_host.monitored.should be_false
|
62
|
+
new_host.status.should == :not_monitored
|
63
|
+
end
|
64
|
+
|
53
65
|
it "can change its templates" do
|
54
66
|
@host.templates = [@template_1, @template_2]
|
55
67
|
@host.save
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Dhruv Bansal
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2012-02-
|
17
|
+
date: 2012-02-02 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|