Improved http error handling.
This commit is contained in:
parent
4b9f33f542
commit
a1f6a3afdc
|
@ -10,9 +10,15 @@ module Import::OTRS
|
||||||
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
||||||
end
|
end
|
||||||
request = Net::HTTP::Get.new(uri.request_uri)
|
request = Net::HTTP::Get.new(uri.request_uri)
|
||||||
response = http.request(request)
|
begin
|
||||||
|
response = http.request(request)
|
||||||
# puts 'R:' + response.body.to_s
|
# puts 'R:' + response.body.to_s
|
||||||
return response
|
return response
|
||||||
|
rescue Exception => e
|
||||||
|
puts "can't get #{url}"
|
||||||
|
puts e.inspect
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
def self.post(base, data)
|
def self.post(base, data)
|
||||||
url = Setting.get('import_otrs_endpoint') + '/' + base
|
url = Setting.get('import_otrs_endpoint') + '/' + base
|
||||||
|
@ -37,6 +43,7 @@ module Import::OTRS
|
||||||
|
|
||||||
def self.auth(username, password)
|
def self.auth(username, password)
|
||||||
response = post( "public.pl", { :Action => 'Export', :Type => 'Auth', :User => username, :Pw => password } )
|
response = post( "public.pl", { :Action => 'Export', :Type => 'Auth', :User => username, :Pw => password } )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
@ -55,6 +62,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
|
|
||||||
response = request("public.pl?Action=Export")
|
response = request("public.pl?Action=Export")
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
#self.ticket('156115')
|
#self.ticket('156115')
|
||||||
|
@ -76,16 +84,11 @@ module Import::OTRS
|
||||||
|
|
||||||
result = JSON.parse( response.body )
|
result = JSON.parse( response.body )
|
||||||
while true
|
while true
|
||||||
ticket_ids = result.pop(10)
|
ticket_ids = result.pop(20)
|
||||||
return if ticket_ids.empty?
|
return if ticket_ids.empty?
|
||||||
self.ticket(ticket_ids)
|
self.ticket(ticket_ids)
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
# result.reverse.each { |ticket_id|
|
|
||||||
result.each { |ticket_id|
|
|
||||||
# sleep 0.1
|
|
||||||
ticket = self.ticket(ticket_id)
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.ticket(ticket_ids)
|
def self.ticket(ticket_ids)
|
||||||
|
@ -94,6 +97,7 @@ module Import::OTRS
|
||||||
url = url + "TicketID=#{CGI::escape ticket_id};"
|
url = url + "TicketID=#{CGI::escape ticket_id};"
|
||||||
}
|
}
|
||||||
response = request( url )
|
response = request( url )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
@ -321,7 +325,7 @@ module Import::OTRS
|
||||||
to_id = state_to.id
|
to_id = state_to.id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
puts "STATE UPDATE (#{history['HistoryID']}): -> #{from}->#{to}"
|
# puts "STATE UPDATE (#{history['HistoryID']}): -> #{from}->#{to}"
|
||||||
History.history_create(
|
History.history_create(
|
||||||
:id => history['HistoryID'],
|
:id => history['HistoryID'],
|
||||||
:o_id => history['TicketID'],
|
:o_id => history['TicketID'],
|
||||||
|
@ -404,6 +408,7 @@ module Import::OTRS
|
||||||
|
|
||||||
def self.ticket_state
|
def self.ticket_state
|
||||||
response = request( "public.pl?Action=Export;Type=State" )
|
response = request( "public.pl?Action=Export;Type=State" )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
@ -460,6 +465,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
def self.ticket_priority
|
def self.ticket_priority
|
||||||
response = request( "public.pl?Action=Export;Type=Priority" )
|
response = request( "public.pl?Action=Export;Type=Priority" )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
@ -503,6 +509,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
def self.ticket_group
|
def self.ticket_group
|
||||||
response = request( "public.pl?Action=Export;Type=Queue" )
|
response = request( "public.pl?Action=Export;Type=Queue" )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
|
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
@ -546,6 +553,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
def self.user
|
def self.user
|
||||||
response = request( "public.pl?Action=Export;Type=User" )
|
response = request( "public.pl?Action=Export;Type=User" )
|
||||||
|
return if !response
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
result = json(response)
|
result = json(response)
|
||||||
map = {
|
map = {
|
||||||
|
@ -570,12 +578,13 @@ module Import::OTRS
|
||||||
_set_valid(user)
|
_set_valid(user)
|
||||||
# puts 'USER: ' + user.inspect
|
# puts 'USER: ' + user.inspect
|
||||||
|
|
||||||
|
role = Role.lookup( :name => 'Agent' )
|
||||||
# get new attributes
|
# get new attributes
|
||||||
user_new = {
|
user_new = {
|
||||||
:created_by_id => 1,
|
:created_by_id => 1,
|
||||||
:updated_by_id => 1,
|
:updated_by_id => 1,
|
||||||
:source => 'OTRS Import',
|
:source => 'OTRS Import',
|
||||||
:role_ids => [1,2],
|
:role_ids => [ role.id ],
|
||||||
}
|
}
|
||||||
map.each { |key,value|
|
map.each { |key,value|
|
||||||
if user[key.to_s]
|
if user[key.to_s]
|
||||||
|
@ -610,6 +619,7 @@ module Import::OTRS
|
||||||
sleep 2
|
sleep 2
|
||||||
puts "Count=#{count};Offset=#{count}"
|
puts "Count=#{count};Offset=#{count}"
|
||||||
response = request( "public.pl?Action=Export;Type=Customer;Count=100;Offset=#{count}" )
|
response = request( "public.pl?Action=Export;Type=Customer;Count=100;Offset=#{count}" )
|
||||||
|
return if !response
|
||||||
count = count + 3000
|
count = count + 3000
|
||||||
return if response.code.to_s != '200'
|
return if response.code.to_s != '200'
|
||||||
result = json(response)
|
result = json(response)
|
||||||
|
|
Loading…
Reference in a new issue