zbxapi 0.1.292 → 0.1.294

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.
Files changed (2) hide show
  1. data/zbxapi.rb +19 -14
  2. metadata +3 -3
data/zbxapi.rb CHANGED
@@ -19,8 +19,8 @@
19
19
  #--
20
20
  ##########################################
21
21
  # Subversion information
22
- # $Id: zbxapi.rb 292 2011-07-08 06:15:38Z nelsonab $
23
- # $Revision: 292 $
22
+ # $Id: zbxapi.rb 294 2011-07-08 08:27:45Z nelsonab $
23
+ # $Revision: 294 $
24
24
  ##########################################
25
25
  #++
26
26
 
@@ -144,8 +144,6 @@ class ZabbixAPI
144
144
  # 1. The url used to create the class was bad
145
145
  # 1. The connection to the server was refused
146
146
  def login(user='',password='',save=true)
147
- # p user.class
148
- # p password.class
149
147
  if user.class!=String or password.class!=String
150
148
  raise ZbxAPI_ExceptionBadAuth.new,'Login called with non-string values'
151
149
  end
@@ -159,35 +157,42 @@ class ZabbixAPI
159
157
  elsif (@user_name!='' and @password!='') then
160
158
  l_user = @user_name
161
159
  l_password = @password
162
- else
163
-
164
160
  end
165
161
 
162
+ #Somewhere in the 1.8.x cycle it was decided to do deprecate with user.authenticate
163
+ #however it was not documented well, so we will try uer.login first, and fall
164
+ #back to user.authenticate as user.login does not exist in 1.8.3
165
+ login_methods=["user.login","user.authenticate"]
166
+
166
167
  begin
167
- result = do_request(json_obj('user.authenticate',{'user'=>l_user,'password'=>l_password}))
168
+ result = do_request(json_obj(login_methods.first,{'user'=>l_user,'password'=>l_password}))
168
169
  @auth=result['result']
169
170
 
170
171
  #setup the version variables
171
172
  @major,@minor=do_request(json_obj('APIInfo.version',{}))['result'].split('.')
172
173
  @major=@major.to_i
173
174
  @minor=@minor.to_i
174
-
175
+ rescue ZbxAPI_ExceptionLoginPermission => e
176
+ login_methods.delete_at(0)
177
+ if !login_methods.empty?
178
+ retry
179
+ else
180
+ raise e
181
+ end
175
182
  rescue SocketError
176
183
  raise ZbxAPI_ExceptionBadServerUrl
177
184
  rescue JSON::ParserError
178
185
  raise ZbxAPI_ExceptionBadServerUrl
179
186
  rescue Errno::ECONNREFUSED
180
187
  raise ZbxAPI_ExceptionBadServerUrl
181
- rescue ZbxAPI_GeneralError => e
182
- if e.message["code"]==-32602
183
- raise ZbxAPI_ExceptionBadAuth,'Bad username and/or password'
184
- else
185
- raise e
186
- end
187
188
  end
188
189
 
189
190
  end
190
191
 
192
+ def logout
193
+ do_request(json_obj('user.logout'))
194
+ end
195
+
191
196
  # Tests to determine if the login information is still valid
192
197
  # returns: true if it is valid or false if it is not.
193
198
  def test_login
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zbxapi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 595
4
+ hash: 599
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 292
10
- version: 0.1.292
9
+ - 294
10
+ version: 0.1.294
11
11
  platform: ruby
12
12
  authors:
13
13
  - A. Nelson