)]}'
{"nova/rpc/impl_kombu.py":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"11bc68775f3ba27872f1d4c4425377dee12bd066","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                # NOTE(comstud): Copied from original code.  There\u0027s"},{"line_number":409,"context_line":"                # really no better recourse because if this was a queue we"},{"line_number":410,"context_line":"                # need to consume on, we have no way to consume anymore."},{"line_number":411,"context_line":"                sys.exit(1)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"            if attempt \u003d\u003d 1:"},{"line_number":414,"context_line":"                sleep_time \u003d self.rabbit_retry_interval or 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2Bn4%3D","line":411,"updated":"2012-01-12 19:16:18.000000000","message":"I\u0027m wondering why an exit(1) here would be preferable to raising something like an UnableToConnect exception.\n\nIn the latter case, the caller could always catch and exit, not catch and emit a helpful traceback, or catch and take some other measure.","commit_id":"128e448da045c608a1f9a73da0cc9bfffbd97504"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"55afcfb032e8c9d96cca0a75673a28a10bb887b2","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                # NOTE(comstud): Copied from original code.  There\u0027s"},{"line_number":409,"context_line":"                # really no better recourse because if this was a queue we"},{"line_number":410,"context_line":"                # need to consume on, we have no way to consume anymore."},{"line_number":411,"context_line":"                sys.exit(1)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"            if attempt \u003d\u003d 1:"},{"line_number":414,"context_line":"                sleep_time \u003d self.rabbit_retry_interval or 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2BmI%3D","line":411,"in_reply_to":"AAAAD3%2F%2F%2BmU%3D","updated":"2012-01-12 20:27:02.000000000","message":"Separate bug to address this sounds good.","commit_id":"128e448da045c608a1f9a73da0cc9bfffbd97504"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"46d8fca14b1bab8c5e8e4d7ae22db1b30a55c9db","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                # NOTE(comstud): Copied from original code.  There\u0027s"},{"line_number":409,"context_line":"                # really no better recourse because if this was a queue we"},{"line_number":410,"context_line":"                # need to consume on, we have no way to consume anymore."},{"line_number":411,"context_line":"                sys.exit(1)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"            if attempt \u003d\u003d 1:"},{"line_number":414,"context_line":"                sleep_time \u003d self.rabbit_retry_interval or 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2BmU%3D","line":411,"in_reply_to":"AAAAD3%2F%2F%2Bn4%3D","updated":"2012-01-12 19:37:01.000000000","message":"I don\u0027t like it either.  How about we file a bug for it?  This has been carried over from the carrot code (and in this patch, it just moved), so it\u0027s not any new behavior I\u0027ve added.  I agree with raising an exception.  But in addition to the immediate caller wanting to clean up, you\u0027d probably want to make sure it gets reraised all of the way back up to the top.  You\u0027d have to catch this and raise in all places that we\u0027re catching \u0027Exception\u0027 right now...all the way back up.","commit_id":"128e448da045c608a1f9a73da0cc9bfffbd97504"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"11bc68775f3ba27872f1d4c4425377dee12bd066","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def ensure(self, error_callback, method, *args, **kwargs):"},{"line_number":427,"context_line":"        while True:"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                result \u003d method(*args, **kwargs)"},{"line_number":430,"context_line":"            except self.connection_errors, e:"},{"line_number":431,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2BnE%3D","line":428,"updated":"2012-01-12 19:16:18.000000000","message":"Was looking for a way to DRY this up with what\u0027s above. Came up with a contextmanager approach where you could do something like:\n\nwith connection_errors_supressed().\n\nFelt like that make things a little too complicated though.\n\nSo, carry on :-)","commit_id":"128e448da045c608a1f9a73da0cc9bfffbd97504"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"46d8fca14b1bab8c5e8e4d7ae22db1b30a55c9db","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def ensure(self, error_callback, method, *args, **kwargs):"},{"line_number":427,"context_line":"        while True:"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                result \u003d method(*args, **kwargs)"},{"line_number":430,"context_line":"            except self.connection_errors, e:"},{"line_number":431,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2BmQ%3D","line":428,"in_reply_to":"AAAAD3%2F%2F%2BnE%3D","updated":"2012-01-12 19:37:01.000000000","message":"Ya, the loop-forever and reconnecting somewhat complicates that idea I think.  I definitely like context managers, though!","commit_id":"128e448da045c608a1f9a73da0cc9bfffbd97504"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"2b603e330ef74164bcab0dd99d67362b8f6b1aad","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    def ensure(self, error_callback, method, *args, **kwargs):"},{"line_number":428,"context_line":"        while True:"},{"line_number":429,"context_line":"            try:"},{"line_number":430,"context_line":"                result \u003d method(*args, **kwargs)"},{"line_number":431,"context_line":"            except self.connection_errors, e:"},{"line_number":432,"context_line":"                pass"},{"line_number":433,"context_line":"            except Exception, e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F%2BY4%3D","line":430,"updated":"2012-01-13 06:23:02.000000000","message":"Why not just return here and eliminate the else clause?","commit_id":"ec72652a10904691a5307fa24e8af5870d54c694"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"d2f396a3184a4c3afe6651d233a6ebb11d2ff0cf","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    def ensure(self, error_callback, method, *args, **kwargs):"},{"line_number":428,"context_line":"        while True:"},{"line_number":429,"context_line":"            try:"},{"line_number":430,"context_line":"                result \u003d method(*args, **kwargs)"},{"line_number":431,"context_line":"            except self.connection_errors, e:"},{"line_number":432,"context_line":"                pass"},{"line_number":433,"context_line":"            except Exception, e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F%2BYc%3D","line":430,"in_reply_to":"AAAAD3%2F%2F%2BY4%3D","updated":"2012-01-13 07:36:59.000000000","message":"Picky, picky!  I fixed the one above as well.","commit_id":"ec72652a10904691a5307fa24e8af5870d54c694"}]}
