)]}'
{"bin/swift-account-audit":[{"author":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"change_message_id":"bc7dce31376f7ca3c3afb73dc013d6f7f2340ba8","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def audit_object(self, account, container, name, policy):"},{"line_number":76,"context_line":"        if policy is not \"0\":"},{"line_number":77,"context_line":"            object_policy_ring \u003d Ring(self.swift_dir,"},{"line_number":78,"context_line":"                                      ring_name\u003d\u0027object-\u0027 + policy)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            object_policy_ring \u003d self.object_ring"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7a2fa921_4a5c8e18","line":77,"updated":"2015-10-10 14:42:13.000000000","message":"this load ring file again and again for every audit object. this will be very slow","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"},{"author":{"_account_id":17883,"name":"Clément Contini","email":"ccontini@cloudops.com","username":"ccontini"},"change_message_id":"4b9fcb6aed47f8e27859b06b8d381814235e6280","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def audit_object(self, account, container, name, policy):"},{"line_number":76,"context_line":"        if policy is not \"0\":"},{"line_number":77,"context_line":"            object_policy_ring \u003d Ring(self.swift_dir,"},{"line_number":78,"context_line":"                                      ring_name\u003d\u0027object-\u0027 + policy)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            object_policy_ring \u003d self.object_ring"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a29b11f_117d5be7","line":77,"in_reply_to":"7a2fa921_4a5c8e18","updated":"2015-10-23 18:38:30.000000000","message":"Agreed. I can keep the ring files in memory to avoid this problem.","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"},{"author":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"change_message_id":"bc7dce31376f7ca3c3afb73dc013d6f7f2340ba8","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                        self.object_checksum_mismatch +\u003d 1"},{"line_number":148,"context_line":"                        print \u0027  ETag mismatch for \"%s\" on %s/%s\u0027 \\"},{"line_number":149,"context_line":"                            % (path, node[\u0027ip\u0027], node[\u0027device\u0027])"},{"line_number":150,"context_line":"                except AttributeError:"},{"line_number":151,"context_line":"                    continue"},{"line_number":152,"context_line":"        if not consistent and self.error_file:"},{"line_number":153,"context_line":"            print \u003e\u003eopen(self.error_file, \u0027a\u0027), path"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7a2fa921_2a6112d3","line":150,"updated":"2015-10-10 14:42:13.000000000","message":"why are you ignoring this exception?","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"},{"author":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"change_message_id":"bc7dce31376f7ca3c3afb73dc013d6f7f2340ba8","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    account, container.encode(\u0027utf-8\u0027))"},{"line_number":321,"context_line":"                path \u003d \u0027/%s/%s\u0027 % (account, container)"},{"line_number":322,"context_line":"                marker \u003d \u0027\u0027"},{"line_number":323,"context_line":"                conn \u003d http_connect(nodes[0][\u0027ip\u0027], nodes[0][\u0027port\u0027],"},{"line_number":324,"context_line":"                                    nodes[0][\u0027device\u0027], part, \u0027GET\u0027,"},{"line_number":325,"context_line":"                                    path.encode(\u0027utf-8\u0027), {},"},{"line_number":326,"context_line":"                                    \u0027format\u003djson\u0026marker\u003d%s\u0027 %"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7a2fa921_0a7a1688","line":323,"updated":"2015-10-10 14:42:13.000000000","message":"this is not nice. It think you should use some function from swift.container module and not do HTTP req directly here","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"},{"author":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"change_message_id":"53ff0c8cfde049a290ecae1be0c6085111e0ed96","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    account, container.encode(\u0027utf-8\u0027))"},{"line_number":321,"context_line":"                path \u003d \u0027/%s/%s\u0027 % (account, container)"},{"line_number":322,"context_line":"                marker \u003d \u0027\u0027"},{"line_number":323,"context_line":"                conn \u003d http_connect(nodes[0][\u0027ip\u0027], nodes[0][\u0027port\u0027],"},{"line_number":324,"context_line":"                                    nodes[0][\u0027device\u0027], part, \u0027GET\u0027,"},{"line_number":325,"context_line":"                                    path.encode(\u0027utf-8\u0027), {},"},{"line_number":326,"context_line":"                                    \u0027format\u003djson\u0026marker\u003d%s\u0027 %"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a29b11f_2fd7d224","line":323,"in_reply_to":"3a29b11f_1116bba7","updated":"2015-10-23 19:18:48.000000000","message":"ahh sry, it seems to be \"normal\" to use raw http calls to cluster in this file, so i\u0027m fine with this line now. it needs bigger refactor as whole.","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"},{"author":{"_account_id":17883,"name":"Clément Contini","email":"ccontini@cloudops.com","username":"ccontini"},"change_message_id":"4b9fcb6aed47f8e27859b06b8d381814235e6280","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    account, container.encode(\u0027utf-8\u0027))"},{"line_number":321,"context_line":"                path \u003d \u0027/%s/%s\u0027 % (account, container)"},{"line_number":322,"context_line":"                marker \u003d \u0027\u0027"},{"line_number":323,"context_line":"                conn \u003d http_connect(nodes[0][\u0027ip\u0027], nodes[0][\u0027port\u0027],"},{"line_number":324,"context_line":"                                    nodes[0][\u0027device\u0027], part, \u0027GET\u0027,"},{"line_number":325,"context_line":"                                    path.encode(\u0027utf-8\u0027), {},"},{"line_number":326,"context_line":"                                    \u0027format\u003djson\u0026marker\u003d%s\u0027 %"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a29b11f_1116bba7","line":323,"in_reply_to":"7a2fa921_0a7a1688","updated":"2015-10-23 18:38:30.000000000","message":"I couldn\u0027t find any function in swift.container to do just that. Can you give me some indication ?\nI used http_connect because it is what is used line 99.","commit_id":"c5561c7fa7ebc91713ab6b006b78482484d953b0"}]}
