Return-Path: Delivered-To: apmail-incubator-deltacloud-commits-archive@minotaur.apache.org Received: (qmail 89845 invoked from network); 31 Mar 2011 08:35:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 31 Mar 2011 08:35:28 -0000 Received: (qmail 89220 invoked by uid 500); 31 Mar 2011 08:35:27 -0000 Delivered-To: apmail-incubator-deltacloud-commits-archive@incubator.apache.org Received: (qmail 88802 invoked by uid 500); 31 Mar 2011 08:35:26 -0000 Mailing-List: contact deltacloud-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: deltacloud-dev@incubator.apache.org Delivered-To: mailing list deltacloud-commits@incubator.apache.org Received: (qmail 88743 invoked by uid 99); 31 Mar 2011 08:35:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Mar 2011 08:35:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Mar 2011 08:35:24 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7C5682388A60; Thu, 31 Mar 2011 08:35:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1087214 - in /incubator/deltacloud/trunk/server: ./ lib/deltacloud/base_driver/ lib/deltacloud/drivers/ec2/ lib/deltacloud/drivers/gogrid/ lib/deltacloud/drivers/mock/ lib/deltacloud/drivers/rackspace/ Date: Thu, 31 Mar 2011 08:35:04 -0000 To: deltacloud-commits@incubator.apache.org From: mfojtik@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110331083504.7C5682388A60@eris.apache.org> Author: mfojtik Date: Thu Mar 31 08:35:03 2011 New Revision: 1087214 URL: http://svn.apache.org/viewvc?rev=1087214&view=rev Log: Return HTTP status code 401 when authentication fails Fixes JIRA #DTACLOUD-29 Modified: incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb incubator/deltacloud/trunk/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb incubator/deltacloud/trunk/server/server.rb Modified: incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb (original) +++ incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb Thu Mar 31 08:35:03 2011 @@ -238,18 +238,26 @@ module Deltacloud def safely(&block) begin block.call - rescue *catched_exceptions_list[:error] => e - raise Deltacloud::BackendError.new(502, e.class.to_s, e.message, e.backtrace) - rescue *catched_exceptions_list[:auth] => e - raise Deltacloud::AuthException.new rescue => e + catched_exceptions_list[:auth].each do |ex| + if e.class == ex or e.class.name =~ ex or e.message =~ ex + raise Deltacloud::AuthException.new + end + end + catched_exceptions_list[:error].each do |ex| + if e.class == ex or e.class.name =~ ex or e.message =~ ex + raise Deltacloud::BackendError.new(502, e.class.to_s, e.message, e.backtrace) if e.class.name =~ ex + end + end catched_exceptions_list[:glob].each do |ex| - raise Deltacloud::BackendError.new(502, e.class.to_s, e.message, e.backtrace) if e.class.name =~ ex + if e.class == ex or e.class.name =~ ex or e.message =~ ex + raise Deltacloud::BackendError.new(500, e.class.to_s, e.message, e.backtrace) + end end - puts "======= UNHANDLED EXCEPTION ============" - puts e.inspect - puts "========================================" - raise e + $stderr.puts "# UNCAUGHT EXCEPTION # -> '#{e.class}' - '#{e.message}'" + $stderr.puts "# #{e.backtrace.join("\n")}" + $stderr.puts "##############" + raise Deltacloud::BackendError.new(500, e.class.to_s, e.message, e.backtrace) end end Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb (original) +++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb Thu Mar 31 08:35:03 2011 @@ -715,8 +715,8 @@ module Deltacloud def catched_exceptions_list { - :auth => [], # [ ::Aws::AuthFailure ], - :error => [ ::Aws::AwsError ], + :auth => [ /AuthFailure/ ], + :error => [ /Aws::AwsError/, /Error/ ], :glob => [ /AWS::(\w+)/, /Deltacloud::Runner::(\w+)/ ] } end Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb (original) +++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb Thu Mar 31 08:35:03 2011 @@ -471,15 +471,6 @@ class GogridDriver < Deltacloud::BaseDri end return ip end - - def safely(&block) - begin - block.call - rescue Exception => e - raise Deltacloud::BackendError.new(500, e.class.to_s, e.message, e.backtrace) - end - end - end end Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb (original) +++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb Thu Mar 31 08:35:03 2011 @@ -508,8 +508,8 @@ class MockDriver < Deltacloud::BaseDrive def catched_exceptions_list { :auth => [], - :error => [ ::Deltacloud::BackendError, Errno::ENOENT ], - :glob => [] + :error => [ /Deltacloud::BackendError/, /Errno::ENOENT/ ], + :glob => [ /Error/ ] } end Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb (original) +++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb Thu Mar 31 08:35:03 2011 @@ -393,12 +393,12 @@ private end end - def safely(&block) - begin - block.call - rescue Exception => e - raise Deltacloud::BackendError.new(500, e.class.to_s, e.message, e.backtrace) - end + def catched_exceptions_list + { + :auth => [ /Authentication failed/ ], + :error => [ /Error/ ], + :glob => [ /CloudServers::Exception::(\w+)/, /Deltacloud::Runner::(\w+)/ ] + } end private Modified: incubator/deltacloud/trunk/server/server.rb URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/server.rb?rev=1087214&r1=1087213&r2=1087214&view=diff ============================================================================== --- incubator/deltacloud/trunk/server/server.rb (original) +++ incubator/deltacloud/trunk/server/server.rb Thu Mar 31 08:35:03 2011 @@ -66,8 +66,9 @@ end error Deltacloud::BackendCapability::Failure do report_error(405, "backend_capability_failure") end + error Deltacloud::AuthException do - report_error(403, "auth_exception") + report_error(401, "auth_exception") end error Deltacloud::BackendError do