)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"9d26f92d5163f8abe40894aa76ce2814c7982019","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     İrfan AKIN \u003cirfan.akin@tubitak.gov.tr\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-04 15:52:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"reraised exceptions are updated as \"excutils.save_and_reraise_exception\"."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I2770ff3acbe8ea8bfa287cd17020040d55c216b7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_e37970c9","line":7,"updated":"2016-01-04 23:32:30.000000000","message":"Commit message rules suggest a maximum length of 50 characters for the first line of the commit message. https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"9ca7097c025190729e4c685a2f14cd4091f682bd"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"9d26f92d5163f8abe40894aa76ce2814c7982019","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-04 15:52:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"reraised exceptions are updated as \"excutils.save_and_reraise_exception\"."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I2770ff3acbe8ea8bfa287cd17020040d55c216b7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_83c3d4ec","line":8,"updated":"2016-01-04 23:32:30.000000000","message":"Could you please add a bit more explanation here? https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages\n\nAlso, you can insert \"Partial-Bug: 1281453\" to make it automatically link this commit to that bug.","commit_id":"9ca7097c025190729e4c685a2f14cd4091f682bd"}],"glance/api/v1/images.py":[{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"9d26f92d5163f8abe40894aa76ce2814c7982019","unresolved":false,"context_lines":[{"line_number":742,"context_line":"                                            from_state\u003d\u0027saving\u0027)"},{"line_number":743,"context_line":"            except exception.Duplicate:"},{"line_number":744,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":745,"context_line":"                    None"},{"line_number":746,"context_line":"            except Exception:"},{"line_number":747,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":748,"context_line":"                    # NOTE(zhiyan): Delete image data since it has already"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ee3cf7c9","line":745,"updated":"2016-01-04 23:32:30.000000000","message":"I believe the standard indicates \"pass\" should be here","commit_id":"9ca7097c025190729e4c685a2f14cd4091f682bd"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"75094acb463a54aefe95eb25792cb5cda11e4930","unresolved":false,"context_lines":[{"line_number":742,"context_line":"                                            from_state\u003d\u0027saving\u0027)"},{"line_number":743,"context_line":"            except exception.Duplicate:"},{"line_number":744,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":745,"context_line":"                    None"},{"line_number":746,"context_line":"            except Exception:"},{"line_number":747,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":748,"context_line":"                    # NOTE(zhiyan): Delete image data since it has already"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_38cec382","line":745,"updated":"2016-01-22 17:36:14.000000000","message":"This is irking me quite a bit. Could we open a feature request against oslo.utils to be able to use the save_and_reraise_exception class manually, e.g.,\n\n    excutils.save_and_reraise_exception().reraise()\n\nFor cases like this?","commit_id":"56dbed1d0c7d02427e24c51dae96c499ea34800c"}],"glance/cmd/cache_manage.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"75094acb463a54aefe95eb25792cb5cda11e4930","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                print(\"Not authorized to make this request.\")"},{"line_number":68,"context_line":"                return FAILURE"},{"line_number":69,"context_line":"            except Exception as e:"},{"line_number":70,"context_line":"                with excutils.save_and_reraise_exception("},{"line_number":71,"context_line":"                        reraise\u003dFalse) as ctxt:"},{"line_number":72,"context_line":"                    options \u003d args[0]"},{"line_number":73,"context_line":"                    if options.debug:"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_b867134c","line":70,"updated":"2016-01-22 17:36:14.000000000","message":"Why not do:\n\n    except Exception as e:\n        options \u003d args[0]\n        with excutils.save_and_reraise_exception(reraise\u003doptions.debug):\n            print(...)\n        pieces \u003d encodeutils.exception_to_unicode(e).split(\u0027\\n\u0027)\n        # etc.\n\nFlavio might consider this a nit but you\u0027re actually breaking the existing logic (of re-raising the exception before returning FAILURE).\n\nThis should use the context manager for the print and then if it doesn\u0027t re-raise the exception when exiting the manager it should return FAILURE.","commit_id":"56dbed1d0c7d02427e24c51dae96c499ea34800c"}],"glance/common/exception.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"be079705a45ec6a71688d086118b714d8f36a7a4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                if _FATAL_EXCEPTION_FORMAT_ERRORS:"},{"line_number":52,"context_line":"                    ctxt.reraise \u003d True"},{"line_number":53,"context_line":"                else:"},{"line_number":54,"context_line":"                    # at least get the core message out if something happened"},{"line_number":55,"context_line":"                    pass"},{"line_number":56,"context_line":"        self.msg \u003d message"},{"line_number":57,"context_line":"        super(GlanceException, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_274dbb72","line":54,"updated":"2016-01-20 20:21:38.000000000","message":"We don\u0027t need this branch","commit_id":"9a3eaadc5adbe6dd1c0a03e7b45895ee63d708cb"}],"glance/common/rpc.py":[{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"9d26f92d5163f8abe40894aa76ce2814c7982019","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                    if self.raise_exc:"},{"line_number":186,"context_line":"                        ctxt.reraise \u003d True"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"                    cls, val \u003d e.__class__, encodeutils.exception_to_unicode(e)"},{"line_number":189,"context_line":"                    msg \u003d (_LE(\"RPC Call Error: %(val)s\\n%(tb)s\") %"},{"line_number":190,"context_line":"                           dict(val\u003dval, tb\u003dtraceback.format_exc()))"},{"line_number":191,"context_line":"                    LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_4e0c233b","line":188,"updated":"2016-01-04 23:32:30.000000000","message":"I believe lines 188-202 should actually keep their previous indentation - that way, if \"self.raise_exc\" is true, those lines will not be called (as was the previous behavior).","commit_id":"9ca7097c025190729e4c685a2f14cd4091f682bd"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"be079705a45ec6a71688d086118b714d8f36a7a4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            except Exception as e:"},{"line_number":184,"context_line":"                with save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":185,"context_line":"                    if self.raise_exc:"},{"line_number":186,"context_line":"                        ctxt.reraise \u003d True"},{"line_number":187,"context_line":"                    else:"},{"line_number":188,"context_line":"                        cls, val \u003d e.__class__, exception_to_unicode(e)"},{"line_number":189,"context_line":"                        msg \u003d (_LE(\"RPC Call Error: %(val)s\\n%(tb)s\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_87bb470e","line":186,"updated":"2016-01-20 20:21:38.000000000","message":"Why not just do:\n\n    with save_and_reraise_exception(reraise\u003dself.raise_exc):\n       if self.raise_exc:\n            continue\n\n       cls, val \u003d e.__class__, exception_to_unicode(e)\n       # etc.","commit_id":"9a3eaadc5adbe6dd1c0a03e7b45895ee63d708cb"}],"glance/common/utils.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"be079705a45ec6a71688d086118b714d8f36a7a4","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    try:"},{"line_number":346,"context_line":"        os.makedirs(path)"},{"line_number":347,"context_line":"    except OSError as e:"},{"line_number":348,"context_line":"        with excutils.save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":349,"context_line":"            if e.errno !\u003d errno.EEXIST:"},{"line_number":350,"context_line":"                ctxt.reraise \u003d True"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_671ad319","line":348,"updated":"2016-01-20 20:21:38.000000000","message":"I\u0027m not certain how this is any better. You could also do:\n\n    with excutils.save_and_reraise_exception(reraise\u003d(e.errno !\u003d errno.EEXIST)):\n        pass\n\nBut neither of these is as clear as just simply using `raise`.","commit_id":"9a3eaadc5adbe6dd1c0a03e7b45895ee63d708cb"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"75094acb463a54aefe95eb25792cb5cda11e4930","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    try:"},{"line_number":346,"context_line":"        os.makedirs(path)"},{"line_number":347,"context_line":"    except OSError as e:"},{"line_number":348,"context_line":"        with excutils.save_and_reraise_exception("},{"line_number":349,"context_line":"                reraise\u003d(e.errno !\u003d errno.EEXIST)):"},{"line_number":350,"context_line":"            pass"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_f8490bb8","line":348,"updated":"2016-01-22 17:36:14.000000000","message":"I think this is another case where we want to not have to use a context-manager.","commit_id":"56dbed1d0c7d02427e24c51dae96c499ea34800c"}],"glance/common/wsgi.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"be079705a45ec6a71688d086118b714d8f36a7a4","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                                   backlog\u003dCONF.backlog,"},{"line_number":194,"context_line":"                                   family\u003daddress_family)"},{"line_number":195,"context_line":"        except socket.error as err:"},{"line_number":196,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":197,"context_line":"                if err.args[0] !\u003d errno.EADDRINUSE:"},{"line_number":198,"context_line":"                    ctxt.reraise \u003d True"},{"line_number":199,"context_line":"                eventlet.sleep(0.1)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_67c89375","line":196,"updated":"2016-01-20 20:21:38.000000000","message":"Again, this should simply be\n\n     with excutils.save_and_reraise_exception(reraise\u003d(err.args[0] !\u003d errno.EADDRINUSE)):\n         eventlet.sleep(0.1)\n\nBut that drastically changes the behaviour here. In this case we\u0027re always calling eventlet.sleep(). Previously, we only called sleep when we needed to (e.g., when we weren\u0027t re-raising an exception).","commit_id":"9a3eaadc5adbe6dd1c0a03e7b45895ee63d708cb"}],"glance/image_cache/drivers/sqlite.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"be079705a45ec6a71688d086118b714d8f36a7a4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                try:"},{"line_number":68,"context_line":"                    return call()"},{"line_number":69,"context_line":"                except sqlite3.OperationalError as e:"},{"line_number":70,"context_line":"                    with save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":71,"context_line":"                        if \u0027locked\u0027 not in str(e):"},{"line_number":72,"context_line":"                            ctxt.reraise \u003d True"},{"line_number":73,"context_line":"                sleep(0.05)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_c7929f57","line":70,"updated":"2016-01-20 20:21:38.000000000","message":"Again, I don\u0027t think this is useful or helpful in this case.","commit_id":"9a3eaadc5adbe6dd1c0a03e7b45895ee63d708cb"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"75094acb463a54aefe95eb25792cb5cda11e4930","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                except sqlite3.OperationalError as e:"},{"line_number":69,"context_line":"                    with excutils.save_and_reraise_exception("},{"line_number":70,"context_line":"                            reraise\u003d(\u0027locked\u0027 not in str(e))):"},{"line_number":71,"context_line":"                        sleep(0.05)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def execute(self, *args, **kwargs):"},{"line_number":74,"context_line":"        return self._timeout(lambda: sqlite3.Connection.execute("}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_589db708","line":71,"updated":"2016-01-22 17:36:14.000000000","message":"Note, this is actually okay unless we try to add more exception handling that needs a sleep.","commit_id":"56dbed1d0c7d02427e24c51dae96c499ea34800c"}]}
