rubix 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/rubix/models.rb +1 -0
- data/lib/rubix/models/media_type.rb +86 -0
- data/lib/rubix/models/model.rb +1 -1
- data/spec/requests/media_type_request_spec.rb +54 -0
- data/spec/support/integration_helper.rb +1 -1
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.3
|
data/lib/rubix/models.rb
CHANGED
@@ -0,0 +1,86 @@
|
|
1
|
+
module Rubix
|
2
|
+
|
3
|
+
class MediaType < Model
|
4
|
+
|
5
|
+
# The numeric codes corresponding to each media type.
|
6
|
+
#
|
7
|
+
# The default will be 'script'.
|
8
|
+
TYPE_CODES = {
|
9
|
+
:email => 0,
|
10
|
+
:script => 1,
|
11
|
+
:sms => 2,
|
12
|
+
:jabber => 3,
|
13
|
+
:ez_texting => 100
|
14
|
+
}.freeze
|
15
|
+
TYPE_NAMES = TYPE_CODES.invert.freeze
|
16
|
+
|
17
|
+
#
|
18
|
+
# == Properties & Finding ==
|
19
|
+
#
|
20
|
+
|
21
|
+
attr_accessor :description, :server, :helo, :email, :path, :modem, :username, :password
|
22
|
+
|
23
|
+
attr_writer :type
|
24
|
+
def type
|
25
|
+
@type ||= :script
|
26
|
+
end
|
27
|
+
|
28
|
+
def initialize properties={}
|
29
|
+
super(properties)
|
30
|
+
self.description = properties[:description]
|
31
|
+
self.type = properties[:type]
|
32
|
+
self.server = properties[:server]
|
33
|
+
self.helo = properties[:helo]
|
34
|
+
self.email = properties[:email]
|
35
|
+
self.path = properties[:path]
|
36
|
+
self.modem = properties[:modem]
|
37
|
+
self.username = properties[:username]
|
38
|
+
self.password = properties[:password]
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# == Requests ==
|
43
|
+
#
|
44
|
+
|
45
|
+
def create_params
|
46
|
+
{
|
47
|
+
:description => description,
|
48
|
+
:type => TYPE_CODES[type]
|
49
|
+
}.tap do |p|
|
50
|
+
case type
|
51
|
+
when :email
|
52
|
+
p[:smtp_server] = server if server
|
53
|
+
p[:smtp_helo] = helo if helo
|
54
|
+
p[:smtp_email] = email if email
|
55
|
+
when :script
|
56
|
+
p[:exec_path] = path if path
|
57
|
+
when :sms
|
58
|
+
p[:gsm_modem] = modem if modem
|
59
|
+
when :jabber
|
60
|
+
p[:username] = username if username
|
61
|
+
p[:passwd] = password if password
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.find_params options={}
|
67
|
+
get_params.merge(:filter => {id_field => options[:id], :description => options[:description]})
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.build media_type
|
71
|
+
new({
|
72
|
+
:id => media_type[id_field].to_i,
|
73
|
+
:type => self::TYPE_NAMES[media_type['type'].to_i],
|
74
|
+
:description => media_type['description'],
|
75
|
+
:server => media_type['smtp_server'],
|
76
|
+
:helo => media_type['smtp_helo'],
|
77
|
+
:email => media_type['smtp_email'],
|
78
|
+
:path => media_type['exec_path'],
|
79
|
+
:modem => media_type['gsm_modem'],
|
80
|
+
:username => media_type['username'],
|
81
|
+
:password => media_type['passwd']
|
82
|
+
})
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
data/lib/rubix/models/model.rb
CHANGED
@@ -190,7 +190,7 @@ module Rubix
|
|
190
190
|
return false unless before_update
|
191
191
|
response = update_request
|
192
192
|
case
|
193
|
-
when response.has_data? && response.result.values.first.map(&:to_i).include?(id)
|
193
|
+
when response.has_data? && (response.result.values.first == true || response.result.values.first.map(&:to_i).include?(id))
|
194
194
|
info("Updated Zabbix #{resource_name}")
|
195
195
|
true
|
196
196
|
when response.has_data?
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "MediaTypes" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
integration_test
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
truncate_all_tables
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when not existing" do
|
14
|
+
|
15
|
+
it "returns nil on find" do
|
16
|
+
Rubix::MediaType.find(:description => 'rubix_spec_media_type_1').should be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
it "can be created" do
|
20
|
+
mt = Rubix::MediaType.new(:description => 'rubix_spec_media_type_1', :path => 'foo')
|
21
|
+
mt.save.should be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "when existing" do
|
27
|
+
|
28
|
+
before do
|
29
|
+
@mt = ensure_save(Rubix::MediaType.new(:description => 'rubix_spec_media_type_1', :path => 'foo'))
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can be found" do
|
33
|
+
Rubix::MediaType.find(:description => 'rubix_spec_media_type_1').should_not be_nil
|
34
|
+
end
|
35
|
+
|
36
|
+
it "can have its properties changed" do
|
37
|
+
@mt.description = 'rubix_spec_media_type_2'
|
38
|
+
@mt.type = :sms
|
39
|
+
@mt.modem = '/foo/bar'
|
40
|
+
@mt.save
|
41
|
+
Rubix::MediaType.find(:description => 'rubix_spec_media_type_1').should be_nil
|
42
|
+
new_mt = Rubix::MediaType.find(:description => 'rubix_spec_media_type_2')
|
43
|
+
new_mt.should_not be_nil
|
44
|
+
new_mt.type.should == :sms
|
45
|
+
new_mt.modem.should == '/foo/bar'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "can be destroyed" do
|
49
|
+
@mt.destroy
|
50
|
+
Rubix::MediaType.find(:description => 'rubix_spec_media_type_1').should be_nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -76,7 +76,7 @@ module Rubix
|
|
76
76
|
$RUBIX_INTEGRATION_TEST = api_connection
|
77
77
|
end
|
78
78
|
|
79
|
-
RUBIX_TABLES_TO_TRUNCATE = %w[applications groups hostmacro hosts hosts_groups hosts_profiles hosts_profiles_ext hosts_templates items items_applications profiles triggers trigger_depends history sessions]
|
79
|
+
RUBIX_TABLES_TO_TRUNCATE = %w[applications groups hostmacro hosts hosts_groups hosts_profiles hosts_profiles_ext hosts_templates items items_applications profiles triggers trigger_depends history sessions media_type]
|
80
80
|
|
81
81
|
def self.truncate_all_tables
|
82
82
|
return unless $RUBIX_INTEGRATION_TEST
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 3
|
9
|
+
version: 0.4.3
|
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-14 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- lib/rubix.rb
|
103
103
|
- lib/rubix/models/template.rb
|
104
104
|
- lib/rubix/models/trigger.rb
|
105
|
+
- lib/rubix/models/media_type.rb
|
105
106
|
- lib/rubix/models/user_macro.rb
|
106
107
|
- lib/rubix/models/item.rb
|
107
108
|
- lib/rubix/models/host.rb
|
@@ -144,6 +145,7 @@ files:
|
|
144
145
|
- spec/rubix/sender_spec.rb
|
145
146
|
- spec/rubix/connection_spec.rb
|
146
147
|
- spec/requests/time_series_request_spec.rb
|
148
|
+
- spec/requests/media_type_request_spec.rb
|
147
149
|
- spec/requests/item_request_spec.rb
|
148
150
|
- spec/requests/host_group_request_spec.rb
|
149
151
|
- spec/requests/user_macro_request_spec.rb
|