From d250dcf1e567e1d243825ceb94af39cf58c6b1db Mon Sep 17 00:00:00 2001 From: amartynov Date: Fri, 9 Oct 2015 15:00:21 +0300 Subject: [PATCH 1/2] #826: knife config error --- devops-service/app/api2/routes/v2.0.rb | 9 +++++++-- devops-service/exceptions/knife_config_error.rb | 9 +++++++++ devops-service/exceptions/response_error.rb | 13 +++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 devops-service/exceptions/knife_config_error.rb create mode 100644 devops-service/exceptions/response_error.rb diff --git a/devops-service/app/api2/routes/v2.0.rb b/devops-service/app/api2/routes/v2.0.rb index 53310b3..36fc6f4 100644 --- a/devops-service/app/api2/routes/v2.0.rb +++ b/devops-service/app/api2/routes/v2.0.rb @@ -10,6 +10,7 @@ require "exceptions/dependency_error" require "exceptions/conflict_exception" require "exceptions/parser_error" require "exceptions/validation_error" +require "exceptions/knife_config_error" require 'core/devops-logger' require_relative "../helpers/version_2" @@ -58,8 +59,12 @@ module Devops # set current logger and call handlers def call env DevopsLogger.logger = @@logger - res = super(env) - @@access_logger.info(env["REQUEST_METHOD"] + " " + env["REQUEST_URI"] + " - from #{env["HTTP_USER_AGENT"]}") + begin + res = super(env) + rescue DevopsError => e + return [e.code, {}, e.message] + end + @@access_logger.info(env["REQUEST_METHOD"] + " " + env["REQUEST_URI"] + " - from #{env["HTTP_USER_AGENT"]} (#{env["REMOTE_USER"]}) / #{res.inspect}") res end diff --git a/devops-service/exceptions/knife_config_error.rb b/devops-service/exceptions/knife_config_error.rb new file mode 100644 index 0000000..fd77a8f --- /dev/null +++ b/devops-service/exceptions/knife_config_error.rb @@ -0,0 +1,9 @@ +require 'exceptions/devops_error' +module Devops + module Exception + class KnifeConfigError < DevopsError + + end + end +end + diff --git a/devops-service/exceptions/response_error.rb b/devops-service/exceptions/response_error.rb new file mode 100644 index 0000000..996ec04 --- /dev/null +++ b/devops-service/exceptions/response_error.rb @@ -0,0 +1,13 @@ +module Devops + module Exception + + class DevopsError < StandardError + + def code + 500 + end + + end + + end +end From dfb4e9bcbb0b64af6b0bf3b0310e39241b7c8d00 Mon Sep 17 00:00:00 2001 From: amartynov Date: Tue, 20 Oct 2015 14:09:57 +0300 Subject: [PATCH 2/2] #826: catch KnifeConfigError --- devops-service/app/api2/routes/v2.0.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devops-service/app/api2/routes/v2.0.rb b/devops-service/app/api2/routes/v2.0.rb index 36fc6f4..aa41bb5 100644 --- a/devops-service/app/api2/routes/v2.0.rb +++ b/devops-service/app/api2/routes/v2.0.rb @@ -80,6 +80,12 @@ module Devops halt_response(e.message, 400) end + error Devops::Exception::KnifeConfigError do + e = env["sinatra.error"] + logger.error e.message + halt_response(e.message, 500) + end + error RecordNotFound do e = env["sinatra.error"] logger.warn e.message