)]}'
{"swift/cli/info.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e896a411ae59b86fdd3b575a8844424af85f9c07","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def curl_head_command(ip, port, device, part, target, policy_index):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    if is_ipv6(ip):"},{"line_number":43,"context_line":"        formatted_ip \u003d \u0027[%s]\u0027 % ip"},{"line_number":44,"context_line":"        extra_flags \u003d \"-g \""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_5ccb92a5","line":41,"updated":"2016-07-28 19:07:56.000000000","message":"docstring would be helpful","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c8e860e735005f3be35d4d95477900e96550acdf","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    if is_ipv6(ip):"},{"line_number":43,"context_line":"        formatted_ip \u003d \u0027[%s]\u0027 % ip"},{"line_number":44,"context_line":"        extra_flags \u003d \"-g \""},{"line_number":45,"context_line":"    else:"},{"line_number":46,"context_line":"        formatted_ip \u003d ip"},{"line_number":47,"context_line":"        extra_flags \u003d \"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_f2285535","line":44,"updated":"2016-07-20 18:44:06.000000000","message":"Should we just always include -globoff? I can\u0027t imagine why we would want it on for IPv4.","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e896a411ae59b86fdd3b575a8844424af85f9c07","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    if is_ipv6(ip):"},{"line_number":43,"context_line":"        formatted_ip \u003d \u0027[%s]\u0027 % ip"},{"line_number":44,"context_line":"        extra_flags \u003d \"-g \""},{"line_number":45,"context_line":"    else:"},{"line_number":46,"context_line":"        formatted_ip \u003d ip"},{"line_number":47,"context_line":"        extra_flags \u003d \"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_7c6e5697","line":44,"in_reply_to":"dada55a8_f2285535","updated":"2016-07-28 19:07:56.000000000","message":"Done","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"}],"swift/common/utils.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e896a411ae59b86fdd3b575a8844424af85f9c07","unresolved":false,"context_lines":[{"line_number":2894,"context_line":"    except socket.error:  # it\u0027s IPv4"},{"line_number":2895,"context_line":"        return ip"},{"line_number":2896,"context_line":"    else:"},{"line_number":2897,"context_line":"        return \u0027[%s]\u0027 % ip"},{"line_number":2898,"context_line":""},{"line_number":2899,"context_line":""},{"line_number":2900,"context_line":"def rsync_module_interpolation(template, device):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_3c105ea8","side":"PARENT","line":2897,"updated":"2016-07-28 19:07:56.000000000","message":"this duplication of the ring_utils method already existed before this change, and using the ring_utils method would require fixing the circular import issue - I think it\u0027ll be cleaner to leave this duplication issue as is and replacing it with is_valid_ip6 once that method is moved from ring.utils into this module in a follow up.","commit_id":"902cb8f8d74feabc4f402a687b311875935d5221"},{"author":{"_account_id":18334,"name":"Nandini Tata","email":"nandini.tata@intel.com","username":"ntata"},"change_message_id":"2d2970ecb1763a02c7d9f8a1191b3141a0495091","unresolved":false,"context_lines":[{"line_number":2878,"context_line":"    return (n // 2) + 1"},{"line_number":2879,"context_line":""},{"line_number":2880,"context_line":""},{"line_number":2881,"context_line":"def is_ipv6(address):"},{"line_number":2882,"context_line":"    \"\"\""},{"line_number":2883,"context_line":"    True if address is a valid representation of an IPv6 address, False"},{"line_number":2884,"context_line":"    otherwise."}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_27627bd8","line":2881,"updated":"2016-07-21 14:50:03.000000000","message":"There is a method \"is_valid_ipv6\" in swift/common/ring/utils.py\nhttps://github.com/openstack/swift/blob/master/swift/common/ring/utils.py#L209\n\nCan we just use that instead of having a copy here?","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e896a411ae59b86fdd3b575a8844424af85f9c07","unresolved":false,"context_lines":[{"line_number":2878,"context_line":"    return (n // 2) + 1"},{"line_number":2879,"context_line":""},{"line_number":2880,"context_line":""},{"line_number":2881,"context_line":"def is_ipv6(address):"},{"line_number":2882,"context_line":"    \"\"\""},{"line_number":2883,"context_line":"    True if address is a valid representation of an IPv6 address, False"},{"line_number":2884,"context_line":"    otherwise."}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_1c063ace","line":2881,"in_reply_to":"bacf61ea_4171eddf","updated":"2016-07-28 19:07:56.000000000","message":"Done","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5d0b61755988eb22f385e45f6d8a0da92285152e","unresolved":false,"context_lines":[{"line_number":2878,"context_line":"    return (n // 2) + 1"},{"line_number":2879,"context_line":""},{"line_number":2880,"context_line":""},{"line_number":2881,"context_line":"def is_ipv6(address):"},{"line_number":2882,"context_line":"    \"\"\""},{"line_number":2883,"context_line":"    True if address is a valid representation of an IPv6 address, False"},{"line_number":2884,"context_line":"    otherwise."}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_4171eddf","line":2881,"in_reply_to":"dada55a8_27627bd8","updated":"2016-07-28 18:21:44.000000000","message":"well spotted!  Duplicating code and tests is not ok.","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"}],"test/unit/common/test_utils.py":[{"author":{"_account_id":18334,"name":"Nandini Tata","email":"nandini.tata@intel.com","username":"ntata"},"change_message_id":"2d2970ecb1763a02c7d9f8a1191b3141a0495091","unresolved":false,"context_lines":[{"line_number":2471,"context_line":"                          for n in expected_sizes])"},{"line_number":2472,"context_line":"        self.assertEqual(expected_sizes, got_sizes)"},{"line_number":2473,"context_line":""},{"line_number":2474,"context_line":"    def test_is_ipv6(self):"},{"line_number":2475,"context_line":"        self.assertTrue(utils.is_ipv6(\"::1\"))"},{"line_number":2476,"context_line":"        self.assertTrue(utils.is_ipv6(\"feed:face::dead:beef\"))"},{"line_number":2477,"context_line":"        self.assertTrue(utils.is_ipv6("}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_076777b7","line":2474,"updated":"2016-07-21 14:50:03.000000000","message":"Similarly, there\u0027s a test case in test/unit/common/ring for \"test_is_valid_ip\" which asserts various types of ipv6 formats.\n\nhere\u0027s the link : https://github.com/openstack/swift/blob/master/test/unit/common/ring/test_utils.py#L105","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e896a411ae59b86fdd3b575a8844424af85f9c07","unresolved":false,"context_lines":[{"line_number":2471,"context_line":"                          for n in expected_sizes])"},{"line_number":2472,"context_line":"        self.assertEqual(expected_sizes, got_sizes)"},{"line_number":2473,"context_line":""},{"line_number":2474,"context_line":"    def test_is_ipv6(self):"},{"line_number":2475,"context_line":"        self.assertTrue(utils.is_ipv6(\"::1\"))"},{"line_number":2476,"context_line":"        self.assertTrue(utils.is_ipv6(\"feed:face::dead:beef\"))"},{"line_number":2477,"context_line":"        self.assertTrue(utils.is_ipv6("}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_5cb552ec","line":2474,"in_reply_to":"dada55a8_076777b7","updated":"2016-07-28 19:07:56.000000000","message":"Done","commit_id":"587bc8305e4d083aacf4cb5d1dbfde06b5568678"}]}
