[Txaws-dev] [Merge] lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors into lp:txaws

2011-10-05 Thread Frank Wierzbicki
The proposal to merge lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors 
into lp:txaws has been updated.

Description changed to:

This branch logs only a message and not an error/stacktrace for 4xx errors. 
This fixes a bug in the downstream project clouddeck. See linked bug.

For more details, see:
https://code.launchpad.net/~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors/+merge/78314
-- 
https://code.launchpad.net/~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors/+merge/78314
Your team txAWS Developers is requested to review the proposed merge of 
lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors into lp:txaws.

___
Mailing list: https://launchpad.net/~txaws-dev
Post to : txaws-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~txaws-dev
More help   : https://help.launchpad.net/ListHelp


[Txaws-dev] [Merge] lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors into lp:txaws

2011-10-05 Thread Frank Wierzbicki
Frank Wierzbicki has proposed merging 
lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors into lp:txaws.

Requested reviews:
  txAWS Developers (txaws-dev)

For more details, see:
https://code.launchpad.net/~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors/+merge/78314

This branch logs only a message and not an error/stacktrace for 4xx errors.
-- 
https://code.launchpad.net/~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors/+merge/78314
Your team txAWS Developers is requested to review the proposed merge of 
lp:~fwierzbicki/txaws/dont-log-stacktraces-for-4xx-errors into lp:txaws.
=== modified file 'txaws/server/resource.py'
--- txaws/server/resource.py	2011-09-23 08:20:46 +
+++ txaws/server/resource.py	2011-10-05 21:16:33 +
@@ -98,13 +98,20 @@
 return response
 
 def write_error(failure):
-log.err(failure)
 if failure.check(APIError):
 status = failure.value.status
+
+# Don't log the stack traces for 4xx responses.
+if status < 400 or status >= 500:
+log.err(failure)
+else:
+log.msg("status: %s message: %s" % (status, failure.value))
+
 bytes = failure.value.response
 if bytes is None:
 bytes = self.dump_error(failure.value, request)
 else:
+log.err(failure)
 bytes = str(failure.value)
 status = 500
 request.setResponseCode(status)

=== modified file 'txaws/server/tests/test_resource.py'
--- txaws/server/tests/test_resource.py	2011-09-23 08:20:46 +
+++ txaws/server/tests/test_resource.py	2011-10-05 21:16:33 +
@@ -240,7 +240,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("InvalidSignature - SignatureVersion '2' "
  "not supported", request.response)
 self.assertEqual(403, request.code)
@@ -262,7 +263,8 @@
 self.api.execute = lambda call: 1 / 0
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(1, len(errors))
 self.assertTrue(request.finished)
 self.assertEqual("integer division or modulo by zero",
  request.response)
@@ -284,7 +286,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("MissingParameter - The request must contain "
  "the parameter Action", request.response)
 self.assertEqual(400, request.code)
@@ -300,7 +303,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("InvalidAction - The action FooBar is not valid"
  " for this web service.", request.response)
 self.assertEqual(400, request.code)
@@ -323,7 +327,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("InvalidAction - The action CantDoIt is not "
  "valid for this web service.", request.response)
 self.assertEqual(400, request.code)
@@ -344,7 +349,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("InvalidAction - The action FooBar is not valid"
  " for this web service.", request.response)
 self.assertEqual(400, request.code)
@@ -363,7 +369,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("AuthFailure - No user with access key 'access'",
  request.response)
 self.assertEqual(401, request.code)
@@ -383,7 +390,8 @@
 request = FakeRequest(query.params, endpoint)
 
 def check(ignored):
-self.flushLoggedErrors()
+errors = self.flushLoggedErrors()
+self.assertEquals(0, len(errors))
 self.assertEqual("S