Skip to content

Commit

Permalink
fix logging
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Fenner committed Aug 25, 2018
1 parent 7a03dbc commit bd75963
Show file tree
Hide file tree
Showing 12 changed files with 44 additions and 25 deletions.
5 changes: 3 additions & 2 deletions app/jobs/handle_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ class HandleJob < ActiveJob::Base
# discard_on ActiveJob::DeserializationError

def perform(doi_id)
Rails.logger.debug "Update Handle record for #{doi_id}"
logger = Logger.new(STDOUT)
logger.debug "Update Handle record for #{doi_id}"
doi = Doi.where(doi: doi_id).first

if doi.present?
doi.register_url
else
Rails.logger.info "[Handle] Error updating URL for DOI " + doi_id + ": not found"
logger.info "[Handle] Error updating URL for DOI " + doi_id + ": not found"
end
end
end
3 changes: 2 additions & 1 deletion app/jobs/transfer_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ def perform(doi_id, options={})
if doi.present?
doi.update_attributes(datacentre: options[:target_id])
else
Rails.logger.info "[Transfer] Error transferring DOI " + doi_id + ": not found"
logger = Logger.new(STDOUT)
logger.info "[Transfer] Error transferring DOI " + doi_id + ": not found"
end
end
end
3 changes: 2 additions & 1 deletion app/jobs/url_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ class UrlJob < ActiveJob::Base
# discard_on ActiveJob::DeserializationError

def perform(doi)
Rails.logger.debug "Set URL for #{doi.doi}"
logger = Logger.new(STDOUT)
logger.debug "Set URL for #{doi.doi}"
doi.send(:set_url)
end
end
14 changes: 9 additions & 5 deletions app/models/concerns/authenticable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,15 @@ def encode_token(payload)
private_key = OpenSSL::PKey::RSA.new(ENV['JWT_PRIVATE_KEY'].to_s.gsub('\n', "\n"))
JWT.encode(payload, private_key, 'RS256')
rescue JSON::GeneratorError => error
Rails.logger.error "JSON::GeneratorError: " + error.message + " for " + payload
logger = Logger.new(STDOUT)
logger.error "JSON::GeneratorError: " + error.message + " for " + payload
return nil
end

# decode JWT token using SHA-256 hash algorithm
def decode_token(token)
logger = Logger.new(STDOUT)

public_key = OpenSSL::PKey::RSA.new(ENV['JWT_PUBLIC_KEY'].to_s.gsub('\n', "\n"))
payload = (JWT.decode token, public_key, true, { :algorithm => 'RS256' }).first

Expand All @@ -27,14 +30,14 @@ def decode_token(token)

payload
rescue JWT::ExpiredSignature => error
Rails.logger.error "JWT::ExpiredSignature: " + error.message + " for " + token
logger.error "JWT::ExpiredSignature: " + error.message + " for " + token
return { errors: "The token has expired." }
rescue JWT::DecodeError => error
Rails.logger.error "JWT::DecodeError: " + error.message + " for " + token
logger.error "JWT::DecodeError: " + error.message + " for " + token
return { errors: "The token could not be decoded." }
rescue OpenSSL::PKey::RSAError => error
public_key = ENV['JWT_PUBLIC_KEY'].presence || "nil"
Rails.logger.error "OpenSSL::PKey::RSAError: " + error.message + " for " + public_key
logger.error "OpenSSL::PKey::RSAError: " + error.message + " for " + public_key
return { errors: "An error occured." }
end

Expand Down Expand Up @@ -110,7 +113,8 @@ def encode_token(payload)
private_key = OpenSSL::PKey::RSA.new(ENV['JWT_PRIVATE_KEY'].to_s.gsub('\n', "\n"))
JWT.encode(payload, private_key, 'RS256')
rescue OpenSSL::PKey::RSAError => e
Rails.logger.error e.inspect
logger = Logger.new(STDOUT)
logger.error e.inspect

nil
end
Expand Down
3 changes: 2 additions & 1 deletion app/models/concerns/cacheable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ def fetch_cached_meta
end
end
rescue ArgumentError, NoMethodError => e
Rails.logger.error "Error for " + doi + ": " + e.message
logger = Logger.new(STDOUT)
logger.error "Error for " + doi + ": " + e.message
return {}
end

Expand Down
3 changes: 2 additions & 1 deletion app/models/concerns/checkable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ def get_landing_page_info(doi: nil, url: nil, keep: true)
"content-type" => content_type,
"checked" => checked.utc.iso8601 }
rescue URI::InvalidURIError => e
Rails.logger.error e.message
logger = Logger.new(STDOUT)
logger.error e.message

{ "status" => 404,
"content_type" => nil,
Expand Down
3 changes: 2 additions & 1 deletion app/models/concerns/crosscitable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ def xml=(value)
@xml = (from == "datacite") ? raw : datacite_xml
rescue NoMethodError, ArgumentError => exception
Bugsnag.notify(exception)
Rails.logger.error "Error " + exception.message + " for doi " + doi + "."
logger = Logger.new(STDOUT)
logger.error "Error " + exception.message + " for doi " + doi + "."
@xml = nil
end

Expand Down
16 changes: 10 additions & 6 deletions app/models/concerns/helpable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ module Helpable
include Bolognese::DoiUtils

def register_url
logger = Logger.new(STDOUT)

unless url.present?
Rails.logger.error "[Handle] Error updating DOI " + doi + ": url missing."
logger.error "[Handle] Error updating DOI " + doi + ": url missing."
return OpenStruct.new(body: { "errors" => [{ "title" => "URL missing." }] })
end

unless client_id.present?
Rails.logger.error "[Handle] Error updating DOI " + doi + ": client ID missing."
logger.error "[Handle] Error updating DOI " + doi + ": client ID missing."
return OpenStruct.new(body: { "errors" => [{ "title" => "Client ID missing." }] })
end

Expand Down Expand Up @@ -55,11 +57,11 @@ def register_url
if [200, 201].include?(response.status)
# update minted column after first successful registration in handle system
self.update_columns(minted: Time.zone.now, updated: Time.zone.now) if minted.blank?
Rails.logger.info "[Handle] URL for DOI " + doi + " updated to " + url + "."
logger.info "[Handle] URL for DOI " + doi + " updated to " + url + "."

response
else
Rails.logger.error "[Handle] Error updating URL for DOI " + doi + ": " + response.body.inspect
logger.error "[Handle] Error updating URL for DOI " + doi + ": " + response.body.inspect
response
end
end
Expand All @@ -71,7 +73,8 @@ def get_url
if response.status == 200
response
else
Rails.logger.error "[Handle] Error fetching URL for DOI " + doi + ": " + response.body.inspect
logger = Logger.new(STDOUT)
logger.error "[Handle] Error fetching URL for DOI " + doi + ": " + response.body.inspect
response
end
end
Expand Down Expand Up @@ -114,7 +117,8 @@ def get_dois(options={})
else
text = "Error " + response.body["errors"].inspect

Rails.logger.error "[Handle] " + text
logger = Logger.new(STDOUT)
logger.error "[Handle] " + text
User.send_notification_to_slack(text, title: "Error #{response.status.to_s}", level: "danger") unless Rails.env.test?
response
end
Expand Down
7 changes: 5 additions & 2 deletions app/models/concerns/userable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ module Userable

included do
def remove_users(id: nil, jwt: nil)
logger = Logger.new(STDOUT)

result = Maremma.get user_url
Rails.logger.info result.inspect
logger.info result.inspect

Array.wrap(result.body["data"]).each do |user|
url = ENV["VOLPINO_URL"] + "/users/" + user.fetch("id")
data = { "data" => { "attributes" => { id => nil },
"type" => "users" } }

result = Maremma.patch(url, content_type: 'application/vnd.api+json', accept: 'application/vnd.api+json', bearer: jwt, data: data.to_json)
Rails.logger.info result.inspect
logger.info result.inspect
end
end
end
Expand Down
6 changes: 4 additions & 2 deletions app/models/doi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,8 @@ def self.delete_test_dois(from_date: nil)
from_date ||= Time.zone.now - 1.month
collection = Doi.where("updated < ?", from_date)
collection.where("doi LIKE ?", "10.5072%").find_each do |d|
Rails.logger.info "Automatically deleted #{d.doi}, last updated #{d.updated.iso8601}."
logger = Logger.new(STDOUT)
logger.info "Automatically deleted #{d.doi}, last updated #{d.updated.iso8601}."
d.destroy
end
end
Expand Down Expand Up @@ -466,7 +467,8 @@ def set_url
response = Maremma.head(identifier, limit: 0)
if response.headers.present?
update_column(:url, response.headers["location"])
Rails.logger.debug "Set URL #{response.headers["location"]} for DOI #{doi}"
logger = Logger.new(STDOUT)
logger.debug "Set URL #{response.headers["location"]} for DOI #{doi}"
end
end
end
3 changes: 2 additions & 1 deletion app/models/handle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ def self.get_query_url(options={})
def self.parse_data(result, options={})
return nil if result.blank? || result['errors']

Rails.logger.debug result
logger = Logger.new(STDOUT)
logger.debug result

if options[:id]
response_code = result.body.dig("data", "responseCode")
Expand Down
3 changes: 1 addition & 2 deletions config/initializers/_shoryuken.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
Shoryuken.configure_server do |config|
Rails.logger = Shoryuken::Logging.logger
Rails.logger.level = Logger.const_get(ENV["LOG_LEVEL"].upcase)
logger = Shoryuken::Logging.logger
end

Shoryuken.active_job_queue_name_prefixing = true

0 comments on commit bd75963

Please sign in to comment.