zbxapi 0.1.294 → 0.1.324
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/api_classes/application.rb +3 -3
- data/api_classes/host_group.rb +3 -3
- data/api_classes/item.rb +1 -1
- data/api_classes/subclass_base.rb +2 -2
- data/api_classes/sysmap.rb +5 -5
- data/api_classes/trigger.rb +2 -2
- data/api_classes/user.rb +1 -1
- data/{libs → zbxapi}/api_exceptions.rb +6 -6
- data/{libs → zbxapi}/exceptions.rb +8 -8
- data/zbxapi/revision.rb +7 -0
- data/zbxapi/utils.rb +38 -0
- data/zbxapi/zdebug.rb +165 -0
- data/zbxapi.rb +21 -16
- metadata +14 -28
- data/libs/zdebug.rb +0 -163
data/api_classes/application.rb
CHANGED
@@ -46,7 +46,7 @@ require "api_classes/subclass_base"
|
|
46
46
|
|
47
47
|
class ZbxAPI_Application < ZbxAPI_Sub
|
48
48
|
def get(options={})
|
49
|
-
debug(8, "Application.get Start")
|
49
|
+
debug(8, :msg=>"Application.get Start")
|
50
50
|
checkauth
|
51
51
|
checkversion(1,1)
|
52
52
|
|
@@ -55,7 +55,7 @@ class ZbxAPI_Application < ZbxAPI_Sub
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def create(options={})
|
58
|
-
debug(8, "Application.create Start")
|
58
|
+
debug(8, :msg=>"Application.create Start")
|
59
59
|
checkauth
|
60
60
|
checkversion(1,1)
|
61
61
|
|
@@ -70,7 +70,7 @@ class ZbxAPI_Application < ZbxAPI_Sub
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def getid(options={})
|
73
|
-
debug(8, "Application.getid Start")
|
73
|
+
debug(8, :msg=>"Application.getid Start")
|
74
74
|
checkauth
|
75
75
|
checkversion(1,1)
|
76
76
|
|
data/api_classes/host_group.rb
CHANGED
@@ -47,7 +47,7 @@ require "api_classes/subclass_base"
|
|
47
47
|
|
48
48
|
class ZbxAPI_HostGroup < ZbxAPI_Sub
|
49
49
|
def create(options={})
|
50
|
-
debug(8, "HostGroup.create Start")
|
50
|
+
debug(8, :msg=>"HostGroup.create Start")
|
51
51
|
checkauth
|
52
52
|
checkversion(1,1)
|
53
53
|
|
@@ -62,7 +62,7 @@ class ZbxAPI_HostGroup < ZbxAPI_Sub
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def get(options={})
|
65
|
-
debug(8, "HostGroup.get Start")
|
65
|
+
debug(8, :msg=>"HostGroup.get Start")
|
66
66
|
checkauth
|
67
67
|
checkversion(1,1)
|
68
68
|
|
@@ -76,7 +76,7 @@ class ZbxAPI_HostGroup < ZbxAPI_Sub
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def getObjects(name)
|
79
|
-
debug(8, "HostGroup.getId Start")
|
79
|
+
debug(8, :msg=>"HostGroup.getId Start")
|
80
80
|
checkauth
|
81
81
|
checkversion(1,1)
|
82
82
|
|
data/api_classes/item.rb
CHANGED
data/api_classes/sysmap.rb
CHANGED
@@ -39,7 +39,7 @@ require "api_classes/subclass_base"
|
|
39
39
|
|
40
40
|
class ZbxAPI_Sysmap < ZbxAPI_Sub
|
41
41
|
def create(options={})
|
42
|
-
debug(8, "Sysmap.create Start")
|
42
|
+
debug(8, :msg=>"Sysmap.create Start")
|
43
43
|
checkauth
|
44
44
|
checkversion(1,1)
|
45
45
|
|
@@ -54,7 +54,7 @@ class ZbxAPI_Sysmap < ZbxAPI_Sub
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def addelement(options={})
|
57
|
-
debug(8, "Sysmap.addelement Start")
|
57
|
+
debug(8, :msg=>"Sysmap.addelement Start")
|
58
58
|
checkauth
|
59
59
|
checkversion(1,1)
|
60
60
|
|
@@ -63,7 +63,7 @@ class ZbxAPI_Sysmap < ZbxAPI_Sub
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def addlink(options={})
|
66
|
-
debug(8, "Sysmap.addlink Start")
|
66
|
+
debug(8, :msg=>"Sysmap.addlink Start")
|
67
67
|
checkauth
|
68
68
|
checkversion(1,1)
|
69
69
|
|
@@ -72,7 +72,7 @@ class ZbxAPI_Sysmap < ZbxAPI_Sub
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def getseid(options={})
|
75
|
-
debug(8, "Sysmap.getseid Start")
|
75
|
+
debug(8, :msg=>"Sysmap.getseid Start")
|
76
76
|
checkauth
|
77
77
|
checkversion(1,1)
|
78
78
|
|
@@ -81,7 +81,7 @@ class ZbxAPI_Sysmap < ZbxAPI_Sub
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def addlinktrigger(options={})
|
84
|
-
debug(8, "Sysmap.addlinktrigger Start")
|
84
|
+
debug(8, :msg=>"Sysmap.addlinktrigger Start")
|
85
85
|
checkauth
|
86
86
|
checkversion(1,1)
|
87
87
|
|
data/api_classes/trigger.rb
CHANGED
@@ -45,7 +45,7 @@ require "api_classes/subclass_base"
|
|
45
45
|
|
46
46
|
class ZbxAPI_Trigger < ZbxAPI_Sub
|
47
47
|
def get(options={})
|
48
|
-
debug(8, "Trigger.get Start")
|
48
|
+
debug(8, :msg=>"Trigger.get Start")
|
49
49
|
checkauth
|
50
50
|
checkversion(1,1)
|
51
51
|
|
@@ -55,7 +55,7 @@ class ZbxAPI_Trigger < ZbxAPI_Sub
|
|
55
55
|
|
56
56
|
# Function name changed to reflect 1.1 API changes
|
57
57
|
def create(options={})
|
58
|
-
debug(8, "Trigger.create Start")
|
58
|
+
debug(8, :msg=>"Trigger.create Start")
|
59
59
|
checkauth
|
60
60
|
checkversion(1,1)
|
61
61
|
|
data/api_classes/user.rb
CHANGED
@@ -109,7 +109,7 @@ class ZbxAPI_User < ZbxAPI_Sub
|
|
109
109
|
# addmedia expects a hash of the following variables
|
110
110
|
# userid, mediatypeid, sendto, severity, active, period
|
111
111
|
def addmedia(options)
|
112
|
-
debug(8, "User.addmedia Start")
|
112
|
+
debug(8, :msg=>"User.addmedia Start")
|
113
113
|
checkauth
|
114
114
|
checkversion(1,1)
|
115
115
|
|
@@ -17,8 +17,8 @@
|
|
17
17
|
|
18
18
|
##########################################
|
19
19
|
# Subversion information
|
20
|
-
# $Id:
|
21
|
-
# $Revision:
|
20
|
+
# $Id: api_exceptions.rb 319 2011-09-25 21:53:30Z nelsonab $
|
21
|
+
# $Revision: 319 $
|
22
22
|
##########################################
|
23
23
|
|
24
24
|
#------------------------------------------------------------------------------
|
@@ -29,8 +29,8 @@
|
|
29
29
|
#
|
30
30
|
#------------------------------------------------------------------------------
|
31
31
|
|
32
|
-
require '
|
33
|
-
require '
|
32
|
+
require 'zbxapi/zdebug'
|
33
|
+
require 'zbxapi/exceptions'
|
34
34
|
|
35
35
|
#------------------------------------------------------------------------------
|
36
36
|
#
|
@@ -40,7 +40,7 @@ require 'libs/exceptions'
|
|
40
40
|
#
|
41
41
|
#------------------------------------------------------------------------------
|
42
42
|
|
43
|
-
class ZbxAPI_ExceptionBadAuth <
|
43
|
+
class ZbxAPI_ExceptionBadAuth < ZError
|
44
44
|
end
|
45
45
|
|
46
46
|
#------------------------------------------------------------------------------
|
@@ -97,7 +97,7 @@ end
|
|
97
97
|
#------------------------------------------------------------------------------
|
98
98
|
|
99
99
|
class ZbxAPI_ExceptionLoginPermission < ZError
|
100
|
-
def initialize(message=nil, params=
|
100
|
+
def initialize(message=nil, params={})
|
101
101
|
super(message, params)
|
102
102
|
@local_msg="This is also a general Zabbix API error number (Your error may not be a login error).\nTell the Zabbix devs to honor section 5.1 of the JSON-RPC 2.0 Spec."
|
103
103
|
end
|
@@ -17,11 +17,12 @@
|
|
17
17
|
|
18
18
|
##########################################
|
19
19
|
# Subversion information
|
20
|
-
# $Id: exceptions.rb
|
21
|
-
# $Revision:
|
20
|
+
# $Id: exceptions.rb 319 2011-09-25 21:53:30Z nelsonab $
|
21
|
+
# $Revision: 319 $
|
22
22
|
##########################################
|
23
23
|
|
24
|
-
require '
|
24
|
+
require 'zbxapi/utils'
|
25
|
+
require 'zbxapi/zdebug'
|
25
26
|
|
26
27
|
#------------------------------------------------------------------------------
|
27
28
|
#
|
@@ -34,18 +35,17 @@ class ZError < RuntimeError
|
|
34
35
|
|
35
36
|
include ZDebug
|
36
37
|
|
37
|
-
attr_accessor :help_func, :message, :retry
|
38
|
+
attr_accessor :help_func, :message, :retry, :error_code
|
38
39
|
|
39
40
|
# list of valid params
|
40
41
|
# :help_func, the help function with more information for the exception
|
41
|
-
# : retry, is the exception
|
42
|
-
def initialize(message=nil, params=
|
43
|
-
raise "Exception not called correctly" if params.class!=Hash if !params.nil?
|
44
|
-
params={} if params.nil?
|
42
|
+
# : retry, is the exception eligible for retry?
|
43
|
+
def initialize(message=nil, params={})
|
45
44
|
@help_func=params[:help_func]
|
46
45
|
@message=message
|
47
46
|
@local_msg="Error"
|
48
47
|
@retry = params[:retry]
|
48
|
+
@error_code= params[:error_code]
|
49
49
|
super(message)
|
50
50
|
end
|
51
51
|
|
data/zbxapi/revision.rb
ADDED
data/zbxapi/utils.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
#License:: LGPL 2.1 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
2
|
+
#Copyright:: Copyright (C) 2009,2010 Andrew Nelson nelsonab(at)red-tux(dot)net
|
3
|
+
#
|
4
|
+
#This library is free software; you can redistribute it and/or
|
5
|
+
#modify it under the terms of the GNU Lesser General Public
|
6
|
+
#License as published by the Free Software Foundation; either
|
7
|
+
#version 2.1 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
#This library is distributed in the hope that it will be useful,
|
10
|
+
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
#Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
#You should have received a copy of the GNU Lesser General Public
|
15
|
+
#License along with this library; if not, write to the Free Software
|
16
|
+
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
##########################################
|
19
|
+
# Subversion information
|
20
|
+
# $Id: utils.rb 319 2011-09-25 21:53:30Z nelsonab $
|
21
|
+
# $Revision: 319 $
|
22
|
+
##########################################
|
23
|
+
|
24
|
+
|
25
|
+
class Object
|
26
|
+
#self.class_of?
|
27
|
+
#Ruby's is_a? or kind_of? will only tell you the hierarchy of classes which
|
28
|
+
#have been instantiated.
|
29
|
+
def self.class_of?(obj)
|
30
|
+
raise RuntimeError.new("Obj must be an uninstantiated class, often calling method \".class\" works") if obj.class!=Class
|
31
|
+
return true if self==obj
|
32
|
+
if self.superclass.respond_to?(:class_of?)
|
33
|
+
self.superclass.class_of?(obj)
|
34
|
+
else
|
35
|
+
false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/zbxapi/zdebug.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
#License:: LGPL 2.1 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
2
|
+
#Copyright:: Copyright (C) 2009,2010 Andrew Nelson nelsonab(at)red-tux(dot)net
|
3
|
+
#
|
4
|
+
#This library is free software; you can redistribute it and/or
|
5
|
+
#modify it under the terms of the GNU Lesser General Public
|
6
|
+
#License as published by the Free Software Foundation; either
|
7
|
+
#version 2.1 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
#This library is distributed in the hope that it will be useful,
|
10
|
+
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
#Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
#You should have received a copy of the GNU Lesser General Public
|
15
|
+
#License along with this library; if not, write to the Free Software
|
16
|
+
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
##########################################
|
19
|
+
# Subversion information
|
20
|
+
# $Id: zdebug.rb 324 2011-09-26 08:53:11Z nelsonab $
|
21
|
+
# $Revision: 324 $
|
22
|
+
##########################################
|
23
|
+
|
24
|
+
module ZDebug
|
25
|
+
|
26
|
+
# Either set_debug_level or set_facility_debug_level must be called before
|
27
|
+
# the debug functions can be used.
|
28
|
+
def set_debug_level(level) # sets the current debug level for printing messages
|
29
|
+
@@debug_level=level
|
30
|
+
|
31
|
+
# Create faciltiy_level if it's not created already
|
32
|
+
@@facility_level= {} if !defined?(@@facility_level)
|
33
|
+
end
|
34
|
+
|
35
|
+
# facility is a symbol, level is an integer
|
36
|
+
def set_facility_debug_level(facility,level)
|
37
|
+
# Create faciltiy_level if it's not created already
|
38
|
+
@@facility_level= {} if !defined?(@@facility_level)
|
39
|
+
|
40
|
+
@@facility_level[facility]=level
|
41
|
+
|
42
|
+
# Create debug level if it's not already created
|
43
|
+
@@debug_level=0 if !defined?(@@debug_level)
|
44
|
+
end
|
45
|
+
|
46
|
+
def debug_level
|
47
|
+
@@debug_level
|
48
|
+
end
|
49
|
+
|
50
|
+
# level - level to show message (Integer)
|
51
|
+
# :var - variable to show (Object)
|
52
|
+
# :msg - message to be prepended before variable (String)
|
53
|
+
# :truncate - truncate var if it is over N characters
|
54
|
+
# :overload - do not show or error if debug_level is not set
|
55
|
+
# :facility - Which debug facility level should also be used
|
56
|
+
# :stack_pos - Stack position to use for calling function information (0==last function)
|
57
|
+
# :trace_depth - Show a backtrace of :trace_depth starting at :stack_pos
|
58
|
+
def debug(level,args={})
|
59
|
+
variable=args[:var] || :zzempty
|
60
|
+
message=args[:msg] || nil
|
61
|
+
facility=args[:facility] || nil
|
62
|
+
raise "Facility must be a symbol" if facility && facility.class!=Symbol
|
63
|
+
truncate=args[:truncate] || 0
|
64
|
+
raise "Truncate must be an Integer" if truncate.class!=Fixnum
|
65
|
+
overload=(!args[:overload].nil? && args[:overload]==true) || false
|
66
|
+
stack_pos=args[:stack_pos] || 0
|
67
|
+
raise ":stack_pos must be an Integer" if stack_pos.class!=Fixnum
|
68
|
+
backtrace_depth=args[:trace_depth] || 0
|
69
|
+
|
70
|
+
return if overload
|
71
|
+
raise "Call set_debug before using debug" if !defined?(@@debug_level)
|
72
|
+
|
73
|
+
if facility
|
74
|
+
facility_level=@@facility_level[facility]
|
75
|
+
raise("Unknown facility type: #{facility.to_s}") if facility_level.nil?
|
76
|
+
show_debug=level<=facility_level
|
77
|
+
else
|
78
|
+
show_debug=level<=@@debug_level
|
79
|
+
end
|
80
|
+
|
81
|
+
if show_debug
|
82
|
+
|
83
|
+
if facility
|
84
|
+
header="D#{level}(#{facility.to_s})"
|
85
|
+
else
|
86
|
+
header="D#{level}"
|
87
|
+
end
|
88
|
+
|
89
|
+
#Example: "./libs/lexer.rb:650:in `item'"
|
90
|
+
#parse the caller array to determine who called us, what line, and what file
|
91
|
+
caller[stack_pos]=~/(.*):(\d+):.*`(.*?)'/
|
92
|
+
|
93
|
+
if $1
|
94
|
+
#sometimes the debug function gets called from within an exception block, in which cases the backtrace is not
|
95
|
+
#available.
|
96
|
+
path=$1
|
97
|
+
debug_line=$2
|
98
|
+
debug_func=$3
|
99
|
+
path=path.split("/")
|
100
|
+
|
101
|
+
if (len=path.length)>2
|
102
|
+
debug_file=".../#{path[len-2]}/#{path[len-1]}"
|
103
|
+
else
|
104
|
+
debug_file=path
|
105
|
+
end
|
106
|
+
|
107
|
+
header+=" #{debug_file}:#{debug_func}:#{debug_line}"
|
108
|
+
else
|
109
|
+
header+=" --from exception--"
|
110
|
+
end
|
111
|
+
|
112
|
+
if variable.nil?
|
113
|
+
strval="nil"
|
114
|
+
elsif variable==:zzempty || variable==""
|
115
|
+
strval=""
|
116
|
+
elsif variable.class==String
|
117
|
+
strval=variable
|
118
|
+
else
|
119
|
+
strval=variable.inspect
|
120
|
+
end
|
121
|
+
|
122
|
+
if truncate>0 && truncate<strval.length
|
123
|
+
o_strval=strval
|
124
|
+
strval=o_strval[0..(truncate/2)]
|
125
|
+
strval+= " ..... "
|
126
|
+
strval+=o_strval[(o_strval.length-(truncate/2))..o_strval.length]
|
127
|
+
end
|
128
|
+
|
129
|
+
if message
|
130
|
+
strval = variable==:zzempty ?
|
131
|
+
message :
|
132
|
+
message + ": " + strval
|
133
|
+
end
|
134
|
+
puts "#{header} #{strval}"
|
135
|
+
|
136
|
+
if backtrace_depth>0
|
137
|
+
backtrace=[]
|
138
|
+
(stack_pos..stack_pos+backtrace_depth-1).each do |pos|
|
139
|
+
pos+=2 #Need to offset current block
|
140
|
+
next if pos>=caller.length
|
141
|
+
|
142
|
+
caller[pos]=~/(.*):(\d+):.*`(.*?)'/
|
143
|
+
if $1
|
144
|
+
#sometimes the debug function gets called from within an exception block, in which cases the backtrace is not
|
145
|
+
#available.
|
146
|
+
debug_line=$2
|
147
|
+
debug_func=$3
|
148
|
+
path=$1.split("/") #global vars are changed by split
|
149
|
+
|
150
|
+
path= (len=path.length)>2 ? ".../#{path[len-2]}/#{path[len-1]}" : path
|
151
|
+
backtrace<<"#{path}:#{debug_func}:#{debug_line}"
|
152
|
+
else
|
153
|
+
backtrace<<"Unknown"
|
154
|
+
end
|
155
|
+
end
|
156
|
+
puts " Backtrace(#{stack_pos}..#{stack_pos+backtrace_depth-1}):["+backtrace.join("],[")+"]"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def debug_facility(facility,level,variable="",message=nil,truncate=nil)
|
162
|
+
debug(level, :var=>variable, :msg=>message, :truncate=>truncate, :stack_pos=>1)
|
163
|
+
end
|
164
|
+
|
165
|
+
end # end Debug module
|
data/zbxapi.rb
CHANGED
@@ -19,8 +19,8 @@
|
|
19
19
|
#--
|
20
20
|
##########################################
|
21
21
|
# Subversion information
|
22
|
-
# $Id: zbxapi.rb
|
23
|
-
# $Revision:
|
22
|
+
# $Id: zbxapi.rb 319 2011-09-25 21:53:30Z nelsonab $
|
23
|
+
# $Revision: 319 $
|
24
24
|
##########################################
|
25
25
|
#++
|
26
26
|
|
@@ -32,8 +32,9 @@ end
|
|
32
32
|
#setup our search path or libraries
|
33
33
|
$: << File.expand_path(File.join(File.dirname(__FILE__), '.'))
|
34
34
|
|
35
|
-
require '
|
36
|
-
require '
|
35
|
+
require 'zbxapi/revision'
|
36
|
+
require 'zbxapi/zdebug'
|
37
|
+
require 'zbxapi/api_exceptions.rb'
|
37
38
|
require 'uri'
|
38
39
|
#require 'net/http'
|
39
40
|
require 'net/https'
|
@@ -105,9 +106,13 @@ class ZabbixAPI
|
|
105
106
|
@history = ZbxAPI_History.new(self)
|
106
107
|
@id=0
|
107
108
|
|
108
|
-
debug(6
|
109
|
-
debug(6
|
110
|
-
debug(6
|
109
|
+
debug(6,:msg=>"protocol: #{@url.scheme}, host: #{@url.host}")
|
110
|
+
debug(6,:msg=>"port: #{@url.port}, path: #{@url.path}")
|
111
|
+
debug(6,:msg=>"query: #{@url.query}, fragment: #{@url.fragment}")
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.get_version
|
115
|
+
"#{ZBXAPI_VERSION}.#{ZBXAPI_REVISION}"
|
111
116
|
end
|
112
117
|
|
113
118
|
#wraps the given information into the appropriate JSON object
|
@@ -123,7 +128,7 @@ class ZabbixAPI
|
|
123
128
|
'auth'=>@auth,
|
124
129
|
'id'=>@id
|
125
130
|
}
|
126
|
-
debug(10, "json_obj: #{obj}")
|
131
|
+
debug(10, :msg=>"json_obj: #{obj}")
|
127
132
|
return obj.to_json
|
128
133
|
end
|
129
134
|
|
@@ -177,7 +182,7 @@ class ZabbixAPI
|
|
177
182
|
if !login_methods.empty?
|
178
183
|
retry
|
179
184
|
else
|
180
|
-
raise e
|
185
|
+
raise ZbxAPI_ExceptionBadAuth.new('Invalid User or Password',:error_code=>e.error_code)
|
181
186
|
end
|
182
187
|
rescue SocketError
|
183
188
|
raise ZbxAPI_ExceptionBadServerUrl
|
@@ -230,8 +235,8 @@ class ZabbixAPI
|
|
230
235
|
# _params_ are the parameters to be passed to the call
|
231
236
|
# returns a hash of the results from the server
|
232
237
|
def raw_api(method,params=nil)
|
233
|
-
debug(6
|
234
|
-
debug(6
|
238
|
+
debug(6,:var=>method,:msg=>"method")
|
239
|
+
debug(6,:var=>params,:msg=>"Parameters")
|
235
240
|
|
236
241
|
checkauth
|
237
242
|
checkversion(1,1)
|
@@ -269,10 +274,10 @@ class ZabbixAPI
|
|
269
274
|
# http.start do |http|
|
270
275
|
headers={'Content-Type'=>'application/json-rpc',
|
271
276
|
'User-Agent'=>'Zbx Ruby CLI'}
|
272
|
-
debug(4
|
277
|
+
debug(4,:msg=>"Sending: #{json_obj}")
|
273
278
|
response = http.post(@url.path, json_obj,headers)
|
274
|
-
debug(4
|
275
|
-
debug(4
|
279
|
+
debug(4,:msg=>"Response Code: #{response.code}")
|
280
|
+
debug(4,:var=>response.body,:msg=>"Response Body",:truncate=>truncate_length)
|
276
281
|
case response.code.to_i
|
277
282
|
when 301
|
278
283
|
puts "Redirecting to #{response['location']}"
|
@@ -291,9 +296,9 @@ class ZabbixAPI
|
|
291
296
|
errcode=resp["error"]["code"].to_i
|
292
297
|
case errcode
|
293
298
|
when -32602 then
|
294
|
-
raise ZbxAPI_ExceptionLoginPermission.new(resp["error"],:retry=>true)
|
299
|
+
raise ZbxAPI_ExceptionLoginPermission.new(resp["error"],:error_code=>errcode,:retry=>true)
|
295
300
|
when -32500 then
|
296
|
-
raise ZbxAPI_ExceptionPermissionError.new(resp["error"],:retry=>true)
|
301
|
+
raise ZbxAPI_ExceptionPermissionError.new(resp["error"],:error_code=>errcode,:retry=>true)
|
297
302
|
else
|
298
303
|
puts "other error"
|
299
304
|
raise ZbxAPI_GeneralError, resp["error"]
|
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zbxapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 294
|
10
|
-
version: 0.1.294
|
4
|
+
version: 0.1.324
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- A. Nelson
|
@@ -15,23 +9,19 @@ autorequire:
|
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
11
|
|
18
|
-
date: 2011-
|
12
|
+
date: 2011-09-26 00:00:00 -04:00
|
19
13
|
default_executable:
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
22
16
|
name: json
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
20
|
requirements:
|
27
21
|
- - ">="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
23
|
version: "0"
|
33
|
-
|
34
|
-
version_requirements: *id001
|
24
|
+
version:
|
35
25
|
description: Provides a straight forward interface to manipulate Zabbix servers using the Zabbix API.
|
36
26
|
email: nelsonab@red-tux.net
|
37
27
|
executables: []
|
@@ -42,9 +32,11 @@ extra_rdoc_files: []
|
|
42
32
|
|
43
33
|
files:
|
44
34
|
- zbxapi.rb
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
35
|
+
- zbxapi/zdebug.rb
|
36
|
+
- zbxapi/api_exceptions.rb
|
37
|
+
- zbxapi/exceptions.rb
|
38
|
+
- zbxapi/revision.rb
|
39
|
+
- zbxapi/utils.rb
|
48
40
|
- api_classes/application.rb
|
49
41
|
- api_classes/history.rb
|
50
42
|
- api_classes/host.rb
|
@@ -65,27 +57,21 @@ rdoc_options: []
|
|
65
57
|
require_paths:
|
66
58
|
- .
|
67
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
60
|
requirements:
|
70
61
|
- - ">="
|
71
62
|
- !ruby/object:Gem::Version
|
72
|
-
hash: 3
|
73
|
-
segments:
|
74
|
-
- 0
|
75
63
|
version: "0"
|
64
|
+
version:
|
76
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
66
|
requirements:
|
79
67
|
- - ">="
|
80
68
|
- !ruby/object:Gem::Version
|
81
|
-
hash: 3
|
82
|
-
segments:
|
83
|
-
- 0
|
84
69
|
version: "0"
|
70
|
+
version:
|
85
71
|
requirements:
|
86
72
|
- Requires json
|
87
73
|
rubyforge_project: zbxapi
|
88
|
-
rubygems_version: 1.3.
|
74
|
+
rubygems_version: 1.3.5
|
89
75
|
signing_key:
|
90
76
|
specification_version: 3
|
91
77
|
summary: Ruby wrapper to the Zabbix API
|
data/libs/zdebug.rb
DELETED
@@ -1,163 +0,0 @@
|
|
1
|
-
#License:: LGPL 2.1 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
2
|
-
#Copyright:: Copyright (C) 2009,2010 Andrew Nelson nelsonab(at)red-tux(dot)net
|
3
|
-
#
|
4
|
-
#This library is free software; you can redistribute it and/or
|
5
|
-
#modify it under the terms of the GNU Lesser General Public
|
6
|
-
#License as published by the Free Software Foundation; either
|
7
|
-
#version 2.1 of the License, or (at your option) any later version.
|
8
|
-
#
|
9
|
-
#This library is distributed in the hope that it will be useful,
|
10
|
-
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
-
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
-
#Lesser General Public License for more details.
|
13
|
-
#
|
14
|
-
#You should have received a copy of the GNU Lesser General Public
|
15
|
-
#License along with this library; if not, write to the Free Software
|
16
|
-
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
-
|
18
|
-
##########################################
|
19
|
-
# Subversion information
|
20
|
-
# $Id: zdebug.rb 281 2011-04-06 18:10:16Z nelsonab $
|
21
|
-
# $Revision: 281 $
|
22
|
-
##########################################
|
23
|
-
|
24
|
-
module ZDebug
|
25
|
-
|
26
|
-
# Either set_debug_level or set_facility_debug_level must be called before
|
27
|
-
# the debug functions can be used.
|
28
|
-
def set_debug_level(level) # sets the current debug level for printing messages
|
29
|
-
@@debug_level=level
|
30
|
-
|
31
|
-
# Create faciltiy_level if it's not created already
|
32
|
-
@@facility_level= {} if !defined?(@@facility_level)
|
33
|
-
end
|
34
|
-
|
35
|
-
# facility is a symbol, level is an integer
|
36
|
-
def set_facility_debug_level(facility,level)
|
37
|
-
# Create faciltiy_level if it's not created already
|
38
|
-
@@facility_level= {} if !defined?(@@facility_level)
|
39
|
-
|
40
|
-
@@facility_level[facility]=level
|
41
|
-
|
42
|
-
# Create debug level if it's not already created
|
43
|
-
@@debug_level=0 if !defined?(@@debug_level)
|
44
|
-
end
|
45
|
-
|
46
|
-
def debug_level
|
47
|
-
@@debug_level
|
48
|
-
end
|
49
|
-
|
50
|
-
# level - level to show message (Integer)
|
51
|
-
# variable - variable to show (Object)
|
52
|
-
# message - message to be prepended before variable (String)
|
53
|
-
# overload - do show or error if debug_level is not set
|
54
|
-
def debug(level,variable="",message=nil,truncate=nil,overload=false)
|
55
|
-
return if overload
|
56
|
-
raise "Call set_debug before using debug" if !defined?(@@debug_level)
|
57
|
-
if level<=@@debug_level
|
58
|
-
#parse the caller array to determine who called us, what line, and what file
|
59
|
-
caller[0]=~/(.*):(\d+):.*`(.*?)'/
|
60
|
-
|
61
|
-
#sometimes the debug function gets called from within an exception block, in which cases the backtrace is not
|
62
|
-
#available.
|
63
|
-
file_tmp=$1.nil? ? "n/a" : $1
|
64
|
-
debug_line=$2.nil? ? "" : $2
|
65
|
-
debug_func=$3.nil? ? "" : $3
|
66
|
-
tmp_split=file_tmp.split("/")
|
67
|
-
|
68
|
-
if (len=tmp_split.length)>2
|
69
|
-
debug_file=".../#{tmp_split[len-2]}/#{tmp_split[len-1]}"
|
70
|
-
else
|
71
|
-
debug_file=file_tmp
|
72
|
-
end
|
73
|
-
|
74
|
-
strval=""
|
75
|
-
if variable.nil?
|
76
|
-
strval="nil"
|
77
|
-
elsif variable.class==String
|
78
|
-
strval=variable
|
79
|
-
if !truncate.nil? && truncate>0
|
80
|
-
if truncate<strval.length then
|
81
|
-
o_strval=strval
|
82
|
-
strval=o_strval[0..(truncate/2)]
|
83
|
-
strval+= " ..... "
|
84
|
-
strval+=o_strval[(o_strval.length-(truncate/2))..o_strval.length]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
else
|
88
|
-
strval=variable.inspect
|
89
|
-
if !truncate.nil?
|
90
|
-
if truncate<strval.length then
|
91
|
-
o_strval=strval
|
92
|
-
strval=o_strval[0..(truncate/2)]
|
93
|
-
strval+= " ..... "
|
94
|
-
strval+=o_strval[(o_strval.length-(truncate/2))..o_strval.length]
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
if !message.nil?
|
100
|
-
strval = message + ": " + strval
|
101
|
-
end
|
102
|
-
puts "D#{level} #{debug_file}:#{debug_func}:#{debug_line} #{strval}"
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
# Debug_facility is a copy of the above function in an effort to shorten
|
107
|
-
# code path.
|
108
|
-
# facility - symbol denoting logging facility
|
109
|
-
# level - level to show message (Integer)
|
110
|
-
# variable - variable to show (Object)
|
111
|
-
# message - message to be prepended before variable (String)
|
112
|
-
def debug_facility(facility,level,variable="",message=nil,truncate=nil)
|
113
|
-
facility_level=@@facility_level[facility]
|
114
|
-
raise "Call set_debug before using debug" if !defined?(@@debug_level)
|
115
|
-
raise "Unknown facility type: #{facility.to_s}" if facility_level.nil?
|
116
|
-
if level<=facility_level
|
117
|
-
#parse the caller array to determine who called us, what line, and what file
|
118
|
-
caller[0]=~/(.*):(\d+):.*`(.*?)'/
|
119
|
-
|
120
|
-
file_tmp=$1
|
121
|
-
debug_line=$2
|
122
|
-
debug_func=$3
|
123
|
-
tmp_split=file_tmp.split("/")
|
124
|
-
|
125
|
-
if (len=tmp_split.length)>2
|
126
|
-
debug_file=".../#{tmp_split[len-2]}/#{tmp_split[len-1]}"
|
127
|
-
else
|
128
|
-
debug_file=file_tmp
|
129
|
-
end
|
130
|
-
|
131
|
-
strval=""
|
132
|
-
if variable.nil?
|
133
|
-
strval="nil"
|
134
|
-
elsif variable.class==String
|
135
|
-
strval=variable
|
136
|
-
if !truncate.nil?
|
137
|
-
if truncate<strval.length then
|
138
|
-
o_strval=strval
|
139
|
-
strval=o_strval[0..(truncate/2)]
|
140
|
-
strval+= " ..... "
|
141
|
-
strval+=o_strval[(o_strval.length-(truncate/2))..o_strval.length]
|
142
|
-
end
|
143
|
-
end
|
144
|
-
else
|
145
|
-
strval=variable.inspect
|
146
|
-
if !truncate.nil?
|
147
|
-
if truncate<strval.length then
|
148
|
-
o_strval=strval
|
149
|
-
strval=o_strval[0..(truncate/2)]
|
150
|
-
strval+= " ..... "
|
151
|
-
strval+=o_strval[(o_strval.length-(truncate/2))..o_strval.length]
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
if !message.nil?
|
157
|
-
strval = message + ": " + strval
|
158
|
-
end
|
159
|
-
puts "D#{level}(#{facility.to_s}) #{debug_file}:#{debug_func}:#{debug_line} #{strval}"
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
end # end Debug module
|