)]}'
{"swift/obj/auditor.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"fa9f290d0fb54a800826946e1bb381d496d28249","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        total_errors \u003d 0"},{"line_number":90,"context_line":"        time_auditing \u003d 0"},{"line_number":91,"context_line":"        all_locs \u003d (self.diskfile_router[POLICIES[0]]"},{"line_number":92,"context_line":"                    .object_audit_location_generator(device_dirs\u003ddevice_dirs))"},{"line_number":93,"context_line":"        for location in all_locs:"},{"line_number":94,"context_line":"            loop_time \u003d time.time()"},{"line_number":95,"context_line":"            self.failsafe_object_audit(location)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_6e86cc66","line":92,"updated":"2016-01-13 20:26:06.000000000","message":"I think a comment here that addresses why we punted on per policy audit location generation would be useful to future us","commit_id":"2a2aa592857595d40843a9e85f747dcfd1ed52c9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ad1416aa9a90b6fa83aa9e319cdb3699ec67e9af","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        total_errors \u003d 0"},{"line_number":90,"context_line":"        time_auditing \u003d 0"},{"line_number":91,"context_line":"        all_locs \u003d (self.diskfile_router[POLICIES[0]]"},{"line_number":92,"context_line":"                    .object_audit_location_generator(device_dirs\u003ddevice_dirs))"},{"line_number":93,"context_line":"        for location in all_locs:"},{"line_number":94,"context_line":"            loop_time \u003d time.time()"},{"line_number":95,"context_line":"            self.failsafe_object_audit(location)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_692a4680","line":92,"in_reply_to":"da6ed579_6e86cc66","updated":"2016-01-13 20:50:32.000000000","message":"Done","commit_id":"2a2aa592857595d40843a9e85f747dcfd1ed52c9"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"fa9f290d0fb54a800826946e1bb381d496d28249","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                self.run_audit(**kwargs)"},{"line_number":265,"context_line":"            except Exception as e:"},{"line_number":266,"context_line":"                self.logger.exception("},{"line_number":267,"context_line":"                    _(\"ERROR: Unable to run auditing: %s\") % e)"},{"line_number":268,"context_line":"            finally:"},{"line_number":269,"context_line":"                sys.exit()"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_cec5788e","line":267,"updated":"2016-01-13 20:26:06.000000000","message":"this is probably the right thing to do.  If there are any \"expected\" errors that start filling up our logs with tracebacks this will force us to update this code to handle them explicitly with a less noisy error line.","commit_id":"2a2aa592857595d40843a9e85f747dcfd1ed52c9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ad1416aa9a90b6fa83aa9e319cdb3699ec67e9af","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                self.run_audit(**kwargs)"},{"line_number":265,"context_line":"            except Exception as e:"},{"line_number":266,"context_line":"                self.logger.exception("},{"line_number":267,"context_line":"                    _(\"ERROR: Unable to run auditing: %s\") % e)"},{"line_number":268,"context_line":"            finally:"},{"line_number":269,"context_line":"                sys.exit()"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_6986c666","line":267,"in_reply_to":"da6ed579_cec5788e","updated":"2016-01-13 20:50:32.000000000","message":"...and in the meantime, things like\n\n ERROR: Unable to run auditing: 0\n\naren\u0027t terribly useful. I ran into a KeyError trying to use\n\n self.diskfile_router[0].object_audit_location_generator\n\nbefore I realized it was keyed off of the actual policy.","commit_id":"2a2aa592857595d40843a9e85f747dcfd1ed52c9"}],"test/unit/obj/test_auditor.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b44bc6311673193e680cef04d50c5de491263dc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                                  policy\u003dPOLICIES[0])"},{"line_number":95,"context_line":"        self.disk_file_p1 \u003d self.df_mgr.get_diskfile(\u0027sda\u0027, \u00270\u0027, \u0027a\u0027, \u0027c\u0027,"},{"line_number":96,"context_line":"                                                     \u0027o\u0027, policy\u003dPOLICIES[1])"},{"line_number":97,"context_line":"        self.disk_file_ec \u003d self.ec_df_mgr.get_diskfile("},{"line_number":98,"context_line":"            \u0027sda\u0027, \u00270\u0027, \u0027a\u0027, \u0027c\u0027, \u0027o\u0027, policy\u003dPOLICIES[2], frag_index\u003d1)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_d06ae4ed","line":97,"range":{"start_line":97,"start_character":13,"end_line":97,"end_character":25},"updated":"2016-01-14 08:41:23.000000000","message":"I\u0027d like to make variable name to be consistent with others (i.e. p2 vs ec) but it\u0027s obviously nits.","commit_id":"fa5b32d27964478dfcccf71155d2aaa946c561f0"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b44bc6311673193e680cef04d50c5de491263dc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            with disk_file.create() as writer:"},{"line_number":142,"context_line":"                writer.write(data)"},{"line_number":143,"context_line":"                etag.update(data)"},{"line_number":144,"context_line":"                etag \u003d etag.hexdigest()"},{"line_number":145,"context_line":"                timestamp \u003d str(normalize_timestamp(time.time()))"},{"line_number":146,"context_line":"                metadata \u003d {"},{"line_number":147,"context_line":"                    \u0027ETag\u0027: etag,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_bb32b15d","line":144,"updated":"2016-01-14 08:41:23.000000000","message":"Why not do you also change this like others like md5(data).hexdigest()?","commit_id":"fa5b32d27964478dfcccf71155d2aaa946c561f0"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b44bc6311673193e680cef04d50c5de491263dc","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                auditor_worker.object_audit("},{"line_number":156,"context_line":"                    AuditLocation(disk_file._datadir, \u0027sda\u0027, \u00270\u0027,"},{"line_number":157,"context_line":"                                  policy\u003ddisk_file.policy))"},{"line_number":158,"context_line":"                self.assertEqual(auditor_worker.quarantines, pre_quarantines)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"                os.write(writer._fd, \u0027extra_data\u0027)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_964f846a","line":158,"updated":"2016-01-14 08:41:23.000000000","message":"Oh yeah, if auditor uses wrong diskfile manager this test still passes because it will result in DisFileNotExist exception. And I saw a failure at L165-166 when the patch for auditor is not applied.","commit_id":"fa5b32d27964478dfcccf71155d2aaa946c561f0"}]}
