)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"c280eaf30f7511ab84d2bfaf34a8ac43bfdf5c54","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Minwoo Bae \u003cminwoob@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-28 13:29:37 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"For both the ECDiskFileWriter and the DiskFileWriter, the hash_cleanup_listdir function should now be called in the commit() methods, instead of in _finalize_put() and _finalize_durable()."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I287b2648591fdbf686898dc9047beda80a64da0c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5ad0253b_4af21f9c","line":7,"updated":"2015-04-28 18:40:27.000000000","message":"Hi Minwoo.  You might want to choose a title for the reivew, and put it as the first line of your commit message, followed by an empty line.\n\nAlso, you might want to wrap the lines of the description at 70 characters.","commit_id":"2e29192a9f581bbad9b04affc3fa411fed3f241b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d8dc4ee1df3c88d5f9d54470a603dc19ed5d565","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Minwoo Bae \u003cminwoob@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-28 13:29:37 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"For both the ECDiskFileWriter and the DiskFileWriter, the hash_cleanup_listdir function should now be called in the commit() methods, instead of in _finalize_put() and _finalize_durable()."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I287b2648591fdbf686898dc9047beda80a64da0c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3acd31a7_faed418f","line":7,"in_reply_to":"5ad0253b_4af21f9c","updated":"2015-04-29 18:20:20.000000000","message":"please see http://docs.openstack.org/infra/manual/developers.html#committing-a-change","commit_id":"2e29192a9f581bbad9b04affc3fa411fed3f241b"}],"swift/obj/diskfile.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d8dc4ee1df3c88d5f9d54470a603dc19ed5d565","unresolved":false,"context_lines":[{"line_number":933,"context_line":"        try:"},{"line_number":934,"context_line":"            self.manager.hash_cleanup_listdir(self._datadir)"},{"line_number":935,"context_line":"        except OSError:"},{"line_number":936,"context_line":"            logging.exception(_(\u0027Problem cleaning up %s\u0027), self._datadir)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"    def put(self, metadata):"},{"line_number":939,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_4fe22ea1","side":"PARENT","line":936,"updated":"2015-04-29 18:20:20.000000000","message":"ok, so the problem with pulling this call out of _finalize_put is that put() is also used for delete() and write_metadata(), so we\u0027d lose the call to cleanup for those.","commit_id":"556445b53d8e45e66945aaf9f40ea644bef0055c"},{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"88dea8453934b5d8c5de7e9ef7b195e436256b17","unresolved":false,"context_lines":[{"line_number":953,"context_line":"    def commit(self, timestamp):"},{"line_number":954,"context_line":"        \"\"\""},{"line_number":955,"context_line":"        Perform any operations necessary to mark the object as durable. For"},{"line_number":956,"context_line":"        replication policy type this is a no-op."},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"        :param timestamp: object put timestamp, an instance of"},{"line_number":959,"context_line":"                          :class:`~swift.common.utils.Timestamp`"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ad0253b_cf6f4e91","line":956,"updated":"2015-04-29 05:33:09.000000000","message":"Need to change this comment","commit_id":"2e29192a9f581bbad9b04affc3fa411fed3f241b"},{"author":{"_account_id":8542,"name":"Prashanth Pai","email":"ppai@redhat.com","username":"pai"},"change_message_id":"88dea8453934b5d8c5de7e9ef7b195e436256b17","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"            self._datadir, timestamp.internal + \u0027.durable\u0027)"},{"line_number":1818,"context_line":"        self._threadpool.force_run_in_thread("},{"line_number":1819,"context_line":"            self._finalize_durable, durable_file_path)"},{"line_number":1820,"context_line":"        try:"},{"line_number":1821,"context_line":"            self.manager.hash_cleanup_listdir(self._datadir)"},{"line_number":1822,"context_line":"        except OSError:"},{"line_number":1823,"context_line":"            self.manager.logger.exception("}],"source_content_type":"text/x-python","patch_set":1,"id":"5ad0253b_8f8dd67d","line":1820,"updated":"2015-04-29 05:33:09.000000000","message":"I can\u0027t think of reasoning behind this. Like clay pointed out, calls to hash_cleanup_listdir must be tpooled. And unlike DiskFileWriter, here hash_cleanup_listdir was already inside commit() and tpooled.","commit_id":"2e29192a9f581bbad9b04affc3fa411fed3f241b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d8dc4ee1df3c88d5f9d54470a603dc19ed5d565","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"            self._datadir, timestamp.internal + \u0027.durable\u0027)"},{"line_number":1818,"context_line":"        self._threadpool.force_run_in_thread("},{"line_number":1819,"context_line":"            self._finalize_durable, durable_file_path)"},{"line_number":1820,"context_line":"        try:"},{"line_number":1821,"context_line":"            self.manager.hash_cleanup_listdir(self._datadir)"},{"line_number":1822,"context_line":"        except OSError:"},{"line_number":1823,"context_line":"            self.manager.logger.exception("}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_cf5e3e76","line":1820,"in_reply_to":"5ad0253b_8f8dd67d","updated":"2015-04-29 18:20:20.000000000","message":"+1 this call to hash_cleanup_listdir can stay where it was in _finalize_durable","commit_id":"2e29192a9f581bbad9b04affc3fa411fed3f241b"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"765d75aa4ebf9367f6e0b30d7f694af60f448f28","unresolved":false,"context_lines":[{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        return self._upload_size"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def _finalize_put(self, metadata, target_path, cleanup\u003dTrue):"},{"line_number":914,"context_line":"        # Write the metadata before calling fsync() so that both data and"},{"line_number":915,"context_line":"        # metadata are flushed to disk."},{"line_number":916,"context_line":"        write_metadata(self._fd, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_7c91c146","line":913,"updated":"2015-05-19 03:55:21.000000000","message":"Why is it needed to make this a keyword parameter?","commit_id":"0aae98c023a848281f9971a048e6051216871f41"},{"author":{"_account_id":14967,"name":"Thiago Gomes","email":"fthiagogv@outlook.com","username":"fthiagogv"},"change_message_id":"754775b8a0a1848835d91612a8162e35e60c2759","unresolved":false,"context_lines":[{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        return self._upload_size"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def _finalize_put(self, metadata, target_path, cleanup\u003dTrue):"},{"line_number":914,"context_line":"        # Write the metadata before calling fsync() so that both data and"},{"line_number":915,"context_line":"        # metadata are flushed to disk."},{"line_number":916,"context_line":"        write_metadata(self._fd, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_27f8c27a","line":913,"in_reply_to":"7a016987_2799e5c4","updated":"2015-05-19 17:09:31.000000000","message":"Sorry me. I saw it now.","commit_id":"0aae98c023a848281f9971a048e6051216871f41"},{"author":{"_account_id":14967,"name":"Thiago Gomes","email":"fthiagogv@outlook.com","username":"fthiagogv"},"change_message_id":"794e9ff67585a67d3eae16a8800d8411747bbaba","unresolved":false,"context_lines":[{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        return self._upload_size"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def _finalize_put(self, metadata, target_path, cleanup\u003dTrue):"},{"line_number":914,"context_line":"        # Write the metadata before calling fsync() so that both data and"},{"line_number":915,"context_line":"        # metadata are flushed to disk."},{"line_number":916,"context_line":"        write_metadata(self._fd, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_96a331b2","line":913,"in_reply_to":"7a016987_7c91c146","updated":"2015-05-19 13:08:40.000000000","message":"Really.... Wouldn\u0027t be better send this into the metadata? I don\u0027t see no one send this parameter, then it will be ever true. Won\u0027t be?","commit_id":"0aae98c023a848281f9971a048e6051216871f41"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"b5daa25f9da82fdded20b253c4aca74f1cad0f54","unresolved":false,"context_lines":[{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        return self._upload_size"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def _finalize_put(self, metadata, target_path, cleanup\u003dTrue):"},{"line_number":914,"context_line":"        # Write the metadata before calling fsync() so that both data and"},{"line_number":915,"context_line":"        # metadata are flushed to disk."},{"line_number":916,"context_line":"        write_metadata(self._fd, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_2799e5c4","line":913,"in_reply_to":"7a016987_96a331b2","updated":"2015-05-19 15:16:06.000000000","message":"The cleanup is set to True in the put(). I think the code is correct. I just don\u0027t like needlessly keyword arguments, is all.","commit_id":"0aae98c023a848281f9971a048e6051216871f41"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4fba5c815de87c4273203f37265b10bc464e5782","unresolved":false,"context_lines":[{"line_number":909,"context_line":"            self._last_sync \u003d self._upload_size"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        return self._upload_size"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def _finalize_put(self, metadata, target_path):"},{"line_number":914,"context_line":"        # Write the metadata before calling fsync() so that both data and"},{"line_number":915,"context_line":"        # metadata are flushed to disk."}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_72d5ca41","line":912,"updated":"2015-06-02 11:31:08.000000000","message":"What Pete was suggestng was to make cleanup a positional arg:\n\n  def _finalize_put(self, metadata, target_path, cleanup):\n\nrather than what you had before which was optional keyword arg.\nThen you must modify each call to finalize_put, but there aren\u0027t many so that is easy.","commit_id":"7f320eda2d6fcdb12b7e6ce831b8d5ac52b969ea"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4fba5c815de87c4273203f37265b10bc464e5782","unresolved":false,"context_lines":[{"line_number":1843,"context_line":"                                     self._diskfile._frag_index)"},{"line_number":1844,"context_line":"            # defer cleanup until commit() writes .durable"},{"line_number":1845,"context_line":"            cleanup \u003d False"},{"line_number":1846,"context_line":"        metadata[\u0027cleanup\u0027] \u003d cleanup"},{"line_number":1847,"context_line":"        filename \u003d self.manager.make_on_disk_filename("},{"line_number":1848,"context_line":"            timestamp, self._extension, frag_index\u003dfi)"},{"line_number":1849,"context_line":"        metadata[\u0027name\u0027] \u003d self._name"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_52f3ee0a","line":1846,"updated":"2015-06-02 11:31:08.000000000","message":"Don\u0027t do this - this will cause a new piece of metadata to be written to disk!","commit_id":"7f320eda2d6fcdb12b7e6ce831b8d5ac52b969ea"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"392c4e888bae054773f8267bfaad483029977a58","unresolved":false,"context_lines":[{"line_number":1850,"context_line":"        target_path \u003d join(self._datadir, filename)"},{"line_number":1851,"context_line":""},{"line_number":1852,"context_line":"        self._threadpool.force_run_in_thread("},{"line_number":1853,"context_line":"            self._finalize_put, metadata, target_path, cleanup\u003dcleanup)"},{"line_number":1854,"context_line":""},{"line_number":1855,"context_line":""},{"line_number":1856,"context_line":"class ECDiskFile(DiskFile):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5afe65bd_34f96781","line":1853,"updated":"2015-06-02 20:03:07.000000000","message":"forgotten here?","commit_id":"02644d4c9d064058b1cc828d98dbf6d08462b337"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"45b4f946900add4624f3a945e5e4a170b4b5a2c8","unresolved":false,"context_lines":[{"line_number":951,"context_line":"        timestamp \u003d Timestamp(metadata[\u0027X-Timestamp\u0027]).internal"},{"line_number":952,"context_line":"        metadata[\u0027name\u0027] \u003d self._name"},{"line_number":953,"context_line":"        target_path \u003d join(self._datadir, timestamp + self._extension)"},{"line_number":954,"context_line":"        cleanup \u003d True"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"        self._threadpool.force_run_in_thread("},{"line_number":957,"context_line":"            self._finalize_put, metadata, target_path, cleanup)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_14ac0633","line":954,"updated":"2015-06-03 14:41:51.000000000","message":"nit: not really necessary to declare, could just put True in method args, but not a blocker","commit_id":"b27b782b78d76a0d2f3c0fa92c3463824fae145a"}]}
