)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":26,"context_line":" - DELETE during a 204, aftre marking the account for deletion"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Fixes:Bug #1188609"},{"line_number":29,"context_line":"Change-Id: Ibd39965ae3f5d45fd78f130e0e31f5a0141a8633"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAPn%2F%2FvSY%3D","line":29,"updated":"2013-06-23 19:00:48.000000000","message":"Commenting on the last line to summarize several things:\n\n1) this commit message doesn\u0027t match the current implementation (ie header values)\n\n2) there are several typos and spelling errors here (minor, but since it needs to be updated anyway, please fix)\n\n3) with the way the patch is going, it seems possible to make a much more clear message about what is changing. eg \"If an account is marked as deleted but hasn\u0027t been reaped and is still on disk, responses will include the status header.....\"","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":26,"context_line":" - DELETE during a 204, aftre marking the account for deletion"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Fixes:Bug #1188609"},{"line_number":29,"context_line":"Change-Id: Ibd39965ae3f5d45fd78f130e0e31f5a0141a8633"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAPn%2F%2Fu4k%3D","line":29,"in_reply_to":"AAAAPn%2F%2FvSY%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"}],"swift/account/server.py":[{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"10e39d3c33e782f9cdf89ff69828639c543a7828","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            info \u003d broker.get_info()"},{"line_number":184,"context_line":"        except DatabaseConnectionError:"},{"line_number":185,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":186,"context_line":"        headers \u003d {"},{"line_number":187,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":188,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FtEM%3D","line":185,"updated":"2013-06-13 00:19:10.000000000","message":"I feel this case should return HTTPInternalServerError. So, is \"try ... except\" necessary ?\nAnd, I think get_info returns None if user dose not exist.\ne.g.\ninfo \u003d broker.get_info()\nif info \u003d\u003d None:\n return HTTPNotFound(request\u003dreq)","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"d4c1da0af2818c7b11ebca2091151e4a3aa1b74b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            info \u003d broker.get_info()"},{"line_number":184,"context_line":"        except DatabaseConnectionError:"},{"line_number":185,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":186,"context_line":"        headers \u003d {"},{"line_number":187,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":188,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FoJQ%3D","line":185,"updated":"2013-06-14 00:47:48.000000000","message":"Sorry I had not understand enough .\nBut, this code is a little difficult to understand.\nHow about writing the comment for explaining it?","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"f4d6ca816e158af5f51823e1cdb983e765657ed3","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            info \u003d broker.get_info()"},{"line_number":184,"context_line":"        except DatabaseConnectionError:"},{"line_number":185,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":186,"context_line":"        headers \u003d {"},{"line_number":187,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":188,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2Fn2s%3D","line":185,"in_reply_to":"AAAAPX%2F%2FoJQ%3D","updated":"2013-06-14 05:17:14.000000000","message":"Sure -  I will add a comment in the next patch set.\n \nThank you fojioka.","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"5c92bd49499ee18d7930b84acf7fcefe23a38b23","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            info \u003d broker.get_info()"},{"line_number":184,"context_line":"        except DatabaseConnectionError:"},{"line_number":185,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":186,"context_line":"        headers \u003d {"},{"line_number":187,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":188,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FqEw%3D","line":185,"in_reply_to":"AAAAPX%2F%2FtEM%3D","updated":"2013-06-13 10:39:48.000000000","message":"If the db does not exist, and was never initialized, db.py raises DatabaseConnectionError - which means that this account was not found - than we return regular  HttpNotFound as we should. (This is raised in db.py line 325).\n\nif however, the db exists, the exception will not be raised and instead we will get the info in this DB which we may use to return later if we decide to send HttpNotFound with account headers.","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"10e39d3c33e782f9cdf89ff69828639c543a7828","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        try:"},{"line_number":239,"context_line":"            info \u003d broker.get_info()"},{"line_number":240,"context_line":"        except DatabaseConnectionError:"},{"line_number":241,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":242,"context_line":"        headers \u003d {"},{"line_number":243,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":244,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FrLk%3D","line":241,"updated":"2013-06-13 00:19:10.000000000","message":"ditto","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"d4c1da0af2818c7b11ebca2091151e4a3aa1b74b","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        try:"},{"line_number":239,"context_line":"            info \u003d broker.get_info()"},{"line_number":240,"context_line":"        except DatabaseConnectionError:"},{"line_number":241,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":242,"context_line":"        headers \u003d {"},{"line_number":243,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":244,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FoJI%3D","line":241,"updated":"2013-06-14 00:47:48.000000000","message":"ditto :)","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"5c92bd49499ee18d7930b84acf7fcefe23a38b23","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        try:"},{"line_number":239,"context_line":"            info \u003d broker.get_info()"},{"line_number":240,"context_line":"        except DatabaseConnectionError:"},{"line_number":241,"context_line":"            return HTTPNotFound(request\u003dreq)"},{"line_number":242,"context_line":"        headers \u003d {"},{"line_number":243,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"},{"line_number":244,"context_line":"            \u0027X-Account-Object-Count\u0027: info[\u0027object_count\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FqEk%3D","line":241,"in_reply_to":"AAAAPX%2F%2FrLk%3D","updated":"2013-06-13 10:39:48.000000000","message":"ditto :)","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"a4a47110c74fbf7d7f1d5c02398a45dcba7c7bde","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                    broker.initialize(timestamp)"},{"line_number":139,"context_line":"                    created \u003d True"},{"line_number":140,"context_line":"                except swift.common.db.DatabaseAlreadyExists:"},{"line_number":141,"context_line":"                    pass"},{"line_number":142,"context_line":"            elif broker.is_status_deleted():"},{"line_number":143,"context_line":"                return HTTPForbidden(request\u003dreq, body\u003d\u0027Recently deleted\u0027)"},{"line_number":144,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4X0%3D","line":141,"updated":"2013-06-19 05:34:59.000000000","message":"should the account status header be set here too? It would give clients a consistent thing to look for on either PUT or GET/HEAD","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"8af19d1877d95270495c5e78ac82f0da7f9f5f28","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                    broker.initialize(timestamp)"},{"line_number":139,"context_line":"                    created \u003d True"},{"line_number":140,"context_line":"                except swift.common.db.DatabaseAlreadyExists:"},{"line_number":141,"context_line":"                    pass"},{"line_number":142,"context_line":"            elif broker.is_status_deleted():"},{"line_number":143,"context_line":"                return HTTPForbidden(request\u003dreq, body\u003d\u0027Recently deleted\u0027)"},{"line_number":144,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4RU%3D","line":141,"in_reply_to":"AAAAPn%2F%2F4X0%3D","updated":"2013-06-19 07:04:23.000000000","message":"Done","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"change_message_id":"629d905c4613f469f02e6b6605b607dec3983aae","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        db_path \u003d os.path.join(self.root, drive, db_dir, hsh + \u0027.db\u0027)"},{"line_number":75,"context_line":"        return AccountBroker(db_path, account\u003daccount, logger\u003dself.logger)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _is_deleted(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw3c%3D","line":77,"updated":"2013-06-21 19:49:23.000000000","message":"The naming here is a little confusing.  I interpret _is_deleted as asking a question, like \"Is this deleted?\" rather than creating a response for items that are deleted.  Maybe rename to something like _deleted or _deleted_response","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"7f8b2ee391c318174d30433130d85dd2b9512a64","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        db_path \u003d os.path.join(self.root, drive, db_dir, hsh + \u0027.db\u0027)"},{"line_number":75,"context_line":"        return AccountBroker(db_path, account\u003daccount, logger\u003dself.logger)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _is_deleted(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw1I%3D","line":77,"in_reply_to":"AAAAPn%2F%2Fw3c%3D","updated":"2013-06-21 20:07:32.000000000","message":"Ok - sounds good.","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"change_message_id":"629d905c4613f469f02e6b6605b607dec3983aae","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def _is_deleted(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"},{"line_number":81,"context_line":"                headers \u003d {\u0027X-Account-Status\u0027: \u0027Locked\u0027}"},{"line_number":82,"context_line":"        except DatabaseConnectionError:"},{"line_number":83,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw3Y%3D","line":80,"updated":"2013-06-21 19:49:23.000000000","message":"Is there a reason why this extra status check is needed?","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"7f8b2ee391c318174d30433130d85dd2b9512a64","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def _is_deleted(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"},{"line_number":81,"context_line":"                headers \u003d {\u0027X-Account-Status\u0027: \u0027Locked\u0027}"},{"line_number":82,"context_line":"        except DatabaseConnectionError:"},{"line_number":83,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw1Y%3D","line":80,"in_reply_to":"AAAAPn%2F%2Fw3Y%3D","updated":"2013-06-21 20:07:32.000000000","message":"Yes - this check is needed to realize if the account exists (and has status deleted) in which case we want to add a header or if it doe snot exist in the system (in which case we do not want to add a header).","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"change_message_id":"629d905c4613f469f02e6b6605b607dec3983aae","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        broker.delete_db(req.headers[\u0027x-timestamp\u0027])"},{"line_number":106,"context_line":"        return HTTPNoContent(request\u003dreq,"},{"line_number":107,"context_line":"                             headers\u003d{\u0027X-Account-Status\u0027: \u0027Locked\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @public"},{"line_number":110,"context_line":"    @timing_stats()"},{"line_number":111,"context_line":"    def PUT(self, req):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw30%3D","line":108,"updated":"2013-06-21 19:49:23.000000000","message":"since there is a mix of calling out to a function to create the response with the header, and just doing it manually, can we do it consistently just one way?  Either:\n\n1.  Generalize the function to add the header to any response.\n\nor\n\n2.  Just put the header in each place","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"7f8b2ee391c318174d30433130d85dd2b9512a64","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        broker.delete_db(req.headers[\u0027x-timestamp\u0027])"},{"line_number":106,"context_line":"        return HTTPNoContent(request\u003dreq,"},{"line_number":107,"context_line":"                             headers\u003d{\u0027X-Account-Status\u0027: \u0027Locked\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @public"},{"line_number":110,"context_line":"    @timing_stats()"},{"line_number":111,"context_line":"    def PUT(self, req):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fw0k%3D","line":108,"in_reply_to":"AAAAPn%2F%2Fw30%3D","updated":"2013-06-21 20:07:32.000000000","message":"These are very different situations. \nThe function is used to handle the case of \u0027404 Not Found\u0027 and adds a header if the reason for not found is \u0027Status\u003dDeleted\u0027. \n\nThe second case when we add this header is when we actively delete an existing account - in which case we respond with \u0027204 No Content\u0027. We really dont have to add the header here as it is clear that the account was just deleted from the successful response to the DELETE request by the client... but I felt that we want to add the header here also for completeness - such that we have a simple rule for when thsi header is added (which is whenever the account is marked as deleted).\n\nBottom line, I think we should leave the code as here in this case.","commit_id":"e4adc2c3ee1fc524d84846c645b3e2832f5a33a5"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def _deleted_response(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"},{"line_number":81,"context_line":"                headers \u003d {\u0027X-Account-Status\u0027: \u0027Deleted\u0027}"},{"line_number":82,"context_line":"        except DatabaseConnectionError:"},{"line_number":83,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvTE%3D","line":80,"updated":"2013-06-23 19:00:48.000000000","message":"The important part that is checked here is not the actual status of the DB (because the check has already been made by .is_deleted()), but rather that the DB actually exists on disk. This difference took me about 30 minutes to realize while reviewing, and a docstring or comment would go a long ways to prevent others from going down that rathole.","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def _deleted_response(self, broker, req):"},{"line_number":78,"context_line":"        headers \u003d {}"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if broker.is_status_deleted():"},{"line_number":81,"context_line":"                headers \u003d {\u0027X-Account-Status\u0027: \u0027Deleted\u0027}"},{"line_number":82,"context_line":"        except DatabaseConnectionError:"},{"line_number":83,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu8I%3D","line":80,"in_reply_to":"AAAAPn%2F%2FvTE%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":105,"context_line":"        broker.delete_db(req.headers[\u0027x-timestamp\u0027])"},{"line_number":106,"context_line":"        return HTTPNoContent(request\u003dreq,"},{"line_number":107,"context_line":"                             headers\u003d{\u0027X-Account-Status\u0027: \u0027Deleted\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @public"},{"line_number":110,"context_line":"    @timing_stats()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvSw%3D","line":107,"updated":"2013-06-23 19:00:48.000000000","message":"The account status header is set directly on responses in several places and sometimes set by a call to _deleted_response(). This should be cleaned up and unified so that any changes or additions to this functionality can be done in one place. As is, it\u0027s very hard to quickly get an understanding of when the account status header is set and what it will be set to.","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":105,"context_line":"        broker.delete_db(req.headers[\u0027x-timestamp\u0027])"},{"line_number":106,"context_line":"        return HTTPNoContent(request\u003dreq,"},{"line_number":107,"context_line":"                             headers\u003d{\u0027X-Account-Status\u0027: \u0027Deleted\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @public"},{"line_number":110,"context_line":"    @timing_stats()"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu7I%3D","line":107,"in_reply_to":"AAAAPn%2F%2FvSw%3D","updated":"2013-06-24 07:47:31.000000000","message":"I will generalize _deleted_response() to support all cases where this new header may be added.","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                    pass"},{"line_number":152,"context_line":"            elif broker.is_status_deleted():"},{"line_number":153,"context_line":"                return HTTPForbidden(request\u003dreq, body\u003d\u0027Recently deleted\u0027,"},{"line_number":154,"context_line":"                                     headers\u003d{\u0027X-Account-Status\u0027: \u0027Deleted\u0027})"},{"line_number":155,"context_line":"            else:"},{"line_number":156,"context_line":"                created \u003d broker.is_deleted()"},{"line_number":157,"context_line":"                broker.update_put_timestamp(timestamp)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvSg%3D","line":154,"updated":"2013-06-23 19:00:48.000000000","message":"as above","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                    pass"},{"line_number":152,"context_line":"            elif broker.is_status_deleted():"},{"line_number":153,"context_line":"                return HTTPForbidden(request\u003dreq, body\u003d\u0027Recently deleted\u0027,"},{"line_number":154,"context_line":"                                     headers\u003d{\u0027X-Account-Status\u0027: \u0027Deleted\u0027})"},{"line_number":155,"context_line":"            else:"},{"line_number":156,"context_line":"                created \u003d broker.is_deleted()"},{"line_number":157,"context_line":"                broker.update_put_timestamp(timestamp)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu7E%3D","line":154,"in_reply_to":"AAAAPn%2F%2FvSg%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        broker.pending_timeout \u003d 0.1"},{"line_number":197,"context_line":"        broker.stale_reads_ok \u003d True"},{"line_number":198,"context_line":"        if broker.is_deleted():"},{"line_number":199,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":200,"context_line":"        info \u003d broker.get_info()"},{"line_number":201,"context_line":"        headers \u003d {"},{"line_number":202,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvSk%3D","line":199,"updated":"2013-06-23 19:00:48.000000000","message":"as above","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        broker.pending_timeout \u003d 0.1"},{"line_number":197,"context_line":"        broker.stale_reads_ok \u003d True"},{"line_number":198,"context_line":"        if broker.is_deleted():"},{"line_number":199,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":200,"context_line":"        info \u003d broker.get_info()"},{"line_number":201,"context_line":"        headers \u003d {"},{"line_number":202,"context_line":"            \u0027X-Account-Container-Count\u0027: info[\u0027container_count\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu7A%3D","line":199,"in_reply_to":"AAAAPn%2F%2FvSk%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        broker.pending_timeout \u003d 0.1"},{"line_number":250,"context_line":"        broker.stale_reads_ok \u003d True"},{"line_number":251,"context_line":"        if broker.is_deleted():"},{"line_number":252,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":253,"context_line":"        return account_listing_response(account, req, out_content_type, broker,"},{"line_number":254,"context_line":"                                        limit, marker, end_marker, prefix,"},{"line_number":255,"context_line":"                                        delimiter)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvSo%3D","line":252,"updated":"2013-06-23 19:00:48.000000000","message":"as above","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        broker.pending_timeout \u003d 0.1"},{"line_number":250,"context_line":"        broker.stale_reads_ok \u003d True"},{"line_number":251,"context_line":"        if broker.is_deleted():"},{"line_number":252,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":253,"context_line":"        return account_listing_response(account, req, out_content_type, broker,"},{"line_number":254,"context_line":"                                        limit, marker, end_marker, prefix,"},{"line_number":255,"context_line":"                                        delimiter)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu68%3D","line":252,"in_reply_to":"AAAAPn%2F%2FvSo%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":297,"context_line":"            return HTTPInsufficientStorage(drive\u003ddrive, request\u003dreq)"},{"line_number":298,"context_line":"        broker \u003d self._get_account_broker(drive, part, account)"},{"line_number":299,"context_line":"        if broker.is_deleted():"},{"line_number":300,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":301,"context_line":"        timestamp \u003d normalize_timestamp(req.headers[\u0027x-timestamp\u0027])"},{"line_number":302,"context_line":"        metadata \u003d {}"},{"line_number":303,"context_line":"        metadata.update((key, (value, timestamp))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvSs%3D","line":300,"updated":"2013-06-23 19:00:48.000000000","message":"as above","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":297,"context_line":"            return HTTPInsufficientStorage(drive\u003ddrive, request\u003dreq)"},{"line_number":298,"context_line":"        broker \u003d self._get_account_broker(drive, part, account)"},{"line_number":299,"context_line":"        if broker.is_deleted():"},{"line_number":300,"context_line":"            return self._deleted_response(broker, req)"},{"line_number":301,"context_line":"        timestamp \u003d normalize_timestamp(req.headers[\u0027x-timestamp\u0027])"},{"line_number":302,"context_line":"        metadata \u003d {}"},{"line_number":303,"context_line":"        metadata.update((key, (value, timestamp))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu64%3D","line":300,"in_reply_to":"AAAAPn%2F%2FvSs%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9bd525edd1127a8d76394c38e5de360ecbef00dc","unresolved":false,"context_lines":[{"line_number":852,"context_line":"                    statuses.append(possible_source.status)"},{"line_number":853,"context_line":"                    reasons.append(possible_source.reason)"},{"line_number":854,"context_line":"                    bodies.append(\u0027\u0027)"},{"line_number":855,"context_line":"                    source_headers.append(\u0027\u0027)"},{"line_number":856,"context_line":"                    sources.append((possible_source, node))"},{"line_number":857,"context_line":"                    if not newest:  # one good source is enough"},{"line_number":858,"context_line":"                        break"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FpnM%3D","line":855,"updated":"2013-06-13 14:09:13.000000000","message":"I don\u0027t think line 855 is strictly necessary because once sources is set in line 856 then func returns at line 894 without source_headers being used","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"c3165b24599b1d9e585ce0e22f9e1f8abc8cbdd8","unresolved":false,"context_lines":[{"line_number":852,"context_line":"                    statuses.append(possible_source.status)"},{"line_number":853,"context_line":"                    reasons.append(possible_source.reason)"},{"line_number":854,"context_line":"                    bodies.append(\u0027\u0027)"},{"line_number":855,"context_line":"                    source_headers.append(\u0027\u0027)"},{"line_number":856,"context_line":"                    sources.append((possible_source, node))"},{"line_number":857,"context_line":"                    if not newest:  # one good source is enough"},{"line_number":858,"context_line":"                        break"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2Fpis%3D","line":855,"in_reply_to":"AAAAPX%2F%2FpnM%3D","updated":"2013-06-13 14:34:23.000000000","message":"I agree, but lets leave it as protective coding, since otherwise we get unaligned headers, bodies and reasons and if someone in the future uses the headers for logging for example, he/she will have a hidden bug.","commit_id":"b5bf17b3ba9fdc1efa23c346602ef6dfac79decc"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"0075c63088a532f980adb075d5388dda2d96a15c","unresolved":false,"context_lines":[{"line_number":907,"context_line":"        :param path: path for the request"},{"line_number":908,"context_line":"        :returns: swob.Response object"},{"line_number":909,"context_line":"        \"\"\""},{"line_number":910,"context_line":"        print \u0027GETorHEAD_base\u0027"},{"line_number":911,"context_line":"        statuses \u003d []"},{"line_number":912,"context_line":"        reasons \u003d []"},{"line_number":913,"context_line":"        bodies \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F%2BtQ%3D","line":910,"updated":"2013-06-16 05:08:32.000000000","message":"I\u0027m guessing you forgot to remove this...","commit_id":"8a1163dd657a1643df8282913c125b59a45bbca0"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"9f44f7500097f69275152ae32a2759092ee025b1","unresolved":false,"context_lines":[{"line_number":907,"context_line":"        :param path: path for the request"},{"line_number":908,"context_line":"        :returns: swob.Response object"},{"line_number":909,"context_line":"        \"\"\""},{"line_number":910,"context_line":"        print \u0027GETorHEAD_base\u0027"},{"line_number":911,"context_line":"        statuses \u003d []"},{"line_number":912,"context_line":"        reasons \u003d []"},{"line_number":913,"context_line":"        bodies \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F91k%3D","line":910,"in_reply_to":"AAAAPn%2F%2F%2BtQ%3D","updated":"2013-06-17 21:25:02.000000000","message":"Done","commit_id":"8a1163dd657a1643df8282913c125b59a45bbca0"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        :param statuses: list of statuses returned"},{"line_number":725,"context_line":"        :param reasons: list of reasons for each status"},{"line_number":726,"context_line":"        :param bodies: bodies of each response"},{"line_number":727,"context_line":"        :param headers: headers of each response"},{"line_number":728,"context_line":"        :param server_type: type of server the responses came from"},{"line_number":729,"context_line":"        :param etag: etag"},{"line_number":730,"context_line":"        :returns: swob.Response object with the correct status, body, etc. set"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvT4%3D","line":727,"updated":"2013-06-23 19:00:48.000000000","message":"please move this below etag so the docstring will continue to match the order or the parameters","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        :param statuses: list of statuses returned"},{"line_number":725,"context_line":"        :param reasons: list of reasons for each status"},{"line_number":726,"context_line":"        :param bodies: bodies of each response"},{"line_number":727,"context_line":"        :param headers: headers of each response"},{"line_number":728,"context_line":"        :param server_type: type of server the responses came from"},{"line_number":729,"context_line":"        :param etag: etag"},{"line_number":730,"context_line":"        :returns: swob.Response object with the correct status, body, etc. set"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6w%3D","line":727,"in_reply_to":"AAAAPn%2F%2FvT4%3D","updated":"2013-06-24 07:47:31.000000000","message":"Thanks for this catch","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"}],"test/unit/__init__.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"0075c63088a532f980adb075d5388dda2d96a15c","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                       \u0027etag\u0027: etag,"},{"line_number":398,"context_line":"                       \u0027x-works\u0027: \u0027yes\u0027}"},{"line_number":399,"context_line":"            if self.status/100 \u003d\u003d 2:"},{"line_number":400,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d kwargs.get(\u0027count\u0027, 12345)"},{"line_number":401,"context_line":"            if not self.timestamp:"},{"line_number":402,"context_line":"                del headers[\u0027x-timestamp\u0027]"},{"line_number":403,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F%2Bs0%3D","line":400,"updated":"2013-06-16 05:08:32.000000000","message":"We don\u0027t gate pep8 on the test/ directory (mostly because by the time the gate showed up the effort to bring tests into compliance was more effort than it was worth), but I wouldn\u0027t introduce new pep8 violations, if possible.\n\nI certainly wouldn\u0027t -1 for this, but if there are other changes, then it would be nice to wrap this line for pep8, too.","commit_id":"8a1163dd657a1643df8282913c125b59a45bbca0"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"9f44f7500097f69275152ae32a2759092ee025b1","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                       \u0027etag\u0027: etag,"},{"line_number":398,"context_line":"                       \u0027x-works\u0027: \u0027yes\u0027}"},{"line_number":399,"context_line":"            if self.status/100 \u003d\u003d 2:"},{"line_number":400,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d kwargs.get(\u0027count\u0027, 12345)"},{"line_number":401,"context_line":"            if not self.timestamp:"},{"line_number":402,"context_line":"                del headers[\u0027x-timestamp\u0027]"},{"line_number":403,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F91A%3D","line":400,"in_reply_to":"AAAAPn%2F%2F%2Bs0%3D","updated":"2013-06-17 21:25:02.000000000","message":"Done","commit_id":"8a1163dd657a1643df8282913c125b59a45bbca0"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"1374e69c3d6df18e785dee6fb342e4c0b716cb41","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                       \u0027x-delete-at\u0027: \u00279876543210\u0027,"},{"line_number":397,"context_line":"                       \u0027etag\u0027: etag,"},{"line_number":398,"context_line":"                       \u0027x-works\u0027: \u0027yes\u0027}"},{"line_number":399,"context_line":"            if self.status/100 \u003d\u003d 2:"},{"line_number":400,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d \\"},{"line_number":401,"context_line":"                    kwargs.get(\u0027count\u0027, 12345)"},{"line_number":402,"context_line":"            if not self.timestamp:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4Yw%3D","line":399,"updated":"2013-06-19 05:22:31.000000000","message":"the \"more correct\" way IMO would be to do integer division here:\n\nif self.status // 100 \u003d\u003d 2:","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"8af19d1877d95270495c5e78ac82f0da7f9f5f28","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                       \u0027x-delete-at\u0027: \u00279876543210\u0027,"},{"line_number":397,"context_line":"                       \u0027etag\u0027: etag,"},{"line_number":398,"context_line":"                       \u0027x-works\u0027: \u0027yes\u0027}"},{"line_number":399,"context_line":"            if self.status/100 \u003d\u003d 2:"},{"line_number":400,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d \\"},{"line_number":401,"context_line":"                    kwargs.get(\u0027count\u0027, 12345)"},{"line_number":402,"context_line":"            if not self.timestamp:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4RY%3D","line":399,"in_reply_to":"AAAAPn%2F%2F4Yw%3D","updated":"2013-06-19 07:04:23.000000000","message":"Done","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"}],"test/unit/account/test_server.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"1374e69c3d6df18e785dee6fb342e4c0b716cb41","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        resp \u003d self.controller.HEAD(req)"},{"line_number":148,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":149,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])"},{"line_number":150,"context_line":"        self.assertEquals(resp.headers,{\u0027X-Account-Status\u0027: \u0027Locked\u0027}) "},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_HEAD_empty_account(self):"},{"line_number":153,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4Yo%3D","line":150,"updated":"2013-06-19 05:22:31.000000000","message":"EOL whitespace","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"8af19d1877d95270495c5e78ac82f0da7f9f5f28","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        resp \u003d self.controller.HEAD(req)"},{"line_number":148,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":149,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])"},{"line_number":150,"context_line":"        self.assertEquals(resp.headers,{\u0027X-Account-Status\u0027: \u0027Locked\u0027}) "},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_HEAD_empty_account(self):"},{"line_number":153,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4Rg%3D","line":150,"in_reply_to":"AAAAPn%2F%2F4Yo%3D","updated":"2013-06-19 07:04:23.000000000","message":"Done","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"1374e69c3d6df18e785dee6fb342e4c0b716cb41","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        resp \u003d self.controller.GET(req)"},{"line_number":437,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":438,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])"},{"line_number":439,"context_line":"        self.assertEquals(resp.headers,{\u0027X-Account-Status\u0027: \u0027Locked\u0027}) "},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def test_GET_not_found_json(self):"},{"line_number":442,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a?format\u003djson\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4Ys%3D","line":439,"updated":"2013-06-19 05:22:31.000000000","message":"EOL whitespace","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"8af19d1877d95270495c5e78ac82f0da7f9f5f28","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        resp \u003d self.controller.GET(req)"},{"line_number":437,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":438,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])"},{"line_number":439,"context_line":"        self.assertEquals(resp.headers,{\u0027X-Account-Status\u0027: \u0027Locked\u0027}) "},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def test_GET_not_found_json(self):"},{"line_number":442,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a?format\u003djson\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2F4Rc%3D","line":439,"in_reply_to":"AAAAPn%2F%2F4Ys%3D","updated":"2013-06-19 07:04:23.000000000","message":"Done","commit_id":"56414744ba8c59f490a1de7e46e0998f5cc42cdb"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":50,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":51,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":52,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])    "},{"line_number":53,"context_line":"        self.assertEquals(resp.headers,{})"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_DELETE_empty(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUc%3D","line":52,"updated":"2013-06-23 19:00:48.000000000","message":"minor nit about the whitespace","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":50,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":51,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":52,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])    "},{"line_number":53,"context_line":"        self.assertEquals(resp.headers,{})"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_DELETE_empty(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6s%3D","line":52,"in_reply_to":"AAAAPn%2F%2FvUc%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Test the case in which account was deleted but not yet reaped"},{"line_number":139,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"},{"line_number":140,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":141,"context_line":"        self.controller.PUT(req)"},{"line_number":142,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a/c1\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027},"},{"line_number":143,"context_line":"                            headers\u003d{\u0027X-Put-Timestamp\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUI%3D","line":140,"updated":"2013-06-23 19:00:48.000000000","message":"minor pep8 indentation","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Test the case in which account was deleted but not yet reaped"},{"line_number":139,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"},{"line_number":140,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":141,"context_line":"        self.controller.PUT(req)"},{"line_number":142,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a/c1\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027},"},{"line_number":143,"context_line":"                            headers\u003d{\u0027X-Put-Timestamp\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6Y%3D","line":140,"in_reply_to":"AAAAPn%2F%2FvUI%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                     \u0027X-Bytes-Used\u0027: \u00270\u0027})"},{"line_number":147,"context_line":"        self.controller.PUT(req)"},{"line_number":148,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027DELETE\u0027,"},{"line_number":149,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00271\u0027})"},{"line_number":150,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":151,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027HEAD\u0027})"},{"line_number":152,"context_line":"        resp \u003d self.controller.HEAD(req)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUM%3D","line":149,"updated":"2013-06-23 19:00:48.000000000","message":"minor pep8 indentation","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                     \u0027X-Bytes-Used\u0027: \u00270\u0027})"},{"line_number":147,"context_line":"        self.controller.PUT(req)"},{"line_number":148,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027DELETE\u0027,"},{"line_number":149,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00271\u0027})"},{"line_number":150,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":151,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027HEAD\u0027})"},{"line_number":152,"context_line":"        resp \u003d self.controller.HEAD(req)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6U%3D","line":149,"in_reply_to":"AAAAPn%2F%2FvUM%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                     \u0027X-Timestamp\u0027: normalize_timestamp(0)})"},{"line_number":246,"context_line":"        resp \u003d self.controller.PUT(req)"},{"line_number":247,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":248,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])    "},{"line_number":249,"context_line":"        self.assertEquals(resp.headers,{})"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    def test_PUT(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUY%3D","line":248,"updated":"2013-06-23 19:00:48.000000000","message":"minor nit about whitespace","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                     \u0027X-Timestamp\u0027: normalize_timestamp(0)})"},{"line_number":246,"context_line":"        resp \u003d self.controller.PUT(req)"},{"line_number":247,"context_line":"        self.assertEquals(resp.status_int, 404)"},{"line_number":248,"context_line":"        del(resp.headers[\u0027Content-Type\u0027])    "},{"line_number":249,"context_line":"        self.assertEquals(resp.headers,{})"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    def test_PUT(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu50%3D","line":248,"in_reply_to":"AAAAPn%2F%2FvUY%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        # Test the case in which account was deleted but not yet reaped"},{"line_number":431,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"},{"line_number":432,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":433,"context_line":"        self.controller.PUT(req)"},{"line_number":434,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a/c1\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027},"},{"line_number":435,"context_line":"                            headers\u003d{\u0027X-Put-Timestamp\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUQ%3D","line":432,"updated":"2013-06-23 19:00:48.000000000","message":"minor pep8 indentation","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        # Test the case in which account was deleted but not yet reaped"},{"line_number":431,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027,"},{"line_number":432,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00270\u0027})"},{"line_number":433,"context_line":"        self.controller.PUT(req)"},{"line_number":434,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a/c1\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027PUT\u0027},"},{"line_number":435,"context_line":"                            headers\u003d{\u0027X-Put-Timestamp\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6E%3D","line":432,"in_reply_to":"AAAAPn%2F%2FvUQ%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":438,"context_line":"                                     \u0027X-Bytes-Used\u0027: \u00270\u0027})"},{"line_number":439,"context_line":"        self.controller.PUT(req)"},{"line_number":440,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027DELETE\u0027,"},{"line_number":441,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00271\u0027})"},{"line_number":442,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":443,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":444,"context_line":"        resp \u003d self.controller.GET(req)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvUU%3D","line":441,"updated":"2013-06-23 19:00:48.000000000","message":"minor pep8 indentation","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":438,"context_line":"                                     \u0027X-Bytes-Used\u0027: \u00270\u0027})"},{"line_number":439,"context_line":"        self.controller.PUT(req)"},{"line_number":440,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027DELETE\u0027,"},{"line_number":441,"context_line":"            \u0027HTTP_X_TIMESTAMP\u0027: \u00271\u0027})"},{"line_number":442,"context_line":"        resp \u003d self.controller.DELETE(req)"},{"line_number":443,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":444,"context_line":"        resp \u003d self.controller.GET(req)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu6A%3D","line":441,"in_reply_to":"AAAAPn%2F%2FvUU%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"}],"test/unit/proxy/test_server.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"972eabe76312fefd8f03c1aa56edab4c4a188a42","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                              \u0027container_count\u0027: None, # internally keep None"},{"line_number":355,"context_line":"                              \u0027total_object_count\u0027: None,"},{"line_number":356,"context_line":"                              \u0027bytes\u0027: None,"},{"line_number":357,"context_line":"                              \u0027meta\u0027: {}}"},{"line_number":358,"context_line":"            self.assertEquals(account_info,"},{"line_number":359,"context_line":"                              self.memcache.get(cache_key))"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2FvT8%3D","line":357,"updated":"2013-06-23 19:00:48.000000000","message":"minor pep8 indentation on previous 4 lines","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"},{"author":{"_account_id":4108,"name":"David Hadas","email":"davidh@il.ibm.com","username":"david-hadas"},"change_message_id":"0488dc743969d265f3e93be051078c5554ce1c74","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                              \u0027container_count\u0027: None, # internally keep None"},{"line_number":355,"context_line":"                              \u0027total_object_count\u0027: None,"},{"line_number":356,"context_line":"                              \u0027bytes\u0027: None,"},{"line_number":357,"context_line":"                              \u0027meta\u0027: {}}"},{"line_number":358,"context_line":"            self.assertEquals(account_info,"},{"line_number":359,"context_line":"                              self.memcache.get(cache_key))"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPn%2F%2Fu58%3D","line":357,"in_reply_to":"AAAAPn%2F%2FvT8%3D","updated":"2013-06-24 07:47:31.000000000","message":"Done","commit_id":"65c13fed03b7fc7bf9493ddac3f91fb081ad8e88"}]}
