)]}'
{"ovn_octavia_provider/driver.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"d1e929871398bc4874f62f410fbb91eee8937c6a","unresolved":false,"context_lines":[{"line_number":868,"context_line":"            ips \u003d []"},{"line_number":869,"context_line":"            for member in self._extract_member_info("},{"line_number":870,"context_line":"                    lb_external_ids[pool_id]).split(\u0027,\u0027):"},{"line_number":871,"context_line":"                member \u003d member.split(\u0027:\u0027)"},{"line_number":872,"context_line":"                member_port \u003d member.pop()"},{"line_number":873,"context_line":"                member_ip \u003d \u0027:\u0027.join(member)"},{"line_number":874,"context_line":"                if netaddr.IPNetwork(member_ip).version \u003d\u003d 6:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_f24effbf","line":871,"range":{"start_line":871,"start_character":15,"end_line":871,"end_character":42},"updated":"2020-02-25 09:14:04.000000000","message":"If a member has ipv6 address like ff02::1 - it will break it.","commit_id":"c7de3256dd0dc498a07b39882d3583d02e459b5c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6fd60c3692f075daa3c22c3bd2fbbd5102da7820","unresolved":false,"context_lines":[{"line_number":870,"context_line":"                    lb_external_ids[pool_id]).split(\u0027,\u0027):"},{"line_number":871,"context_line":"                member \u003d member.split(\u0027:\u0027)"},{"line_number":872,"context_line":"                member_port \u003d member.pop()"},{"line_number":873,"context_line":"                member_ip \u003d \u0027:\u0027.join(member)"},{"line_number":874,"context_line":"                if netaddr.IPNetwork(member_ip).version \u003d\u003d 6:"},{"line_number":875,"context_line":"                    ips.append(\u0027[%s]:%s\u0027 % (member_ip, member_port))"},{"line_number":876,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_35aece2e","line":873,"range":{"start_line":873,"start_character":29,"end_line":873,"end_character":30},"updated":"2020-02-24 16:59:50.000000000","message":"It must be Monday, what is this : for ?  In local testing it seemed to cause problems with the netaddr call.","commit_id":"c7de3256dd0dc498a07b39882d3583d02e459b5c"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cc130276721b22fc4e4326801df467ffe4d4cdb3","unresolved":false,"context_lines":[{"line_number":870,"context_line":"                    lb_external_ids[pool_id]).split(\u0027,\u0027):"},{"line_number":871,"context_line":"                member \u003d member.split(\u0027:\u0027)"},{"line_number":872,"context_line":"                member_port \u003d member.pop()"},{"line_number":873,"context_line":"                member_ip \u003d \u0027:\u0027.join(member)"},{"line_number":874,"context_line":"                if netaddr.IPNetwork(member_ip).version \u003d\u003d 6:"},{"line_number":875,"context_line":"                    ips.append(\u0027[%s]:%s\u0027 % (member_ip, member_port))"},{"line_number":876,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_b74b9985","line":873,"range":{"start_line":873,"start_character":29,"end_line":873,"end_character":30},"in_reply_to":"1fa4df85_35aece2e","updated":"2020-02-25 08:35:31.000000000","message":"Ah.. if there is an ipv6 address that makes sense, for ipv4 not. Sorry I need to fix this nasty one. Thanks for this finding ++","commit_id":"c7de3256dd0dc498a07b39882d3583d02e459b5c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d97c86f1e14d8f72ee30b0c2fa024578fec69173","unresolved":false,"context_lines":[{"line_number":793,"context_line":"        mem_info \u003d \u0027\u0027"},{"line_number":794,"context_line":"        if member:"},{"line_number":795,"context_line":"            for mem in member.split(\u0027,\u0027):"},{"line_number":796,"context_line":"                mem_info +\u003d str(mem.split(\u0027_\u0027)[2]) + \u0027,\u0027"},{"line_number":797,"context_line":"        return mem_info[:-1]  # Remove the last \u0027,\u0027"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    def _get_member_key(self, member, old_convention\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_7f0f262e","line":796,"updated":"2020-02-25 23:35:38.000000000","message":"Just some notes on my thoughts, I\u0027ll tweak the code like this.\n\n\u003e\u003e\u003e member \u003d \"member_ID_10.10.10.10:63015_subnetid\"\n\u003e\u003e\u003e member.split(\u0027_\u0027)[2]\n\u002710.10.10.10:63015\u0027\n\u003e\u003e\u003e mem \u003d member.split(\u0027_\u0027)[2]\n\u003e\u003e\u003e mem.rsplit(\u0027:\u0027, 1)\n[\u002710.10.10.10\u0027, \u002763015\u0027]\n\n\u003e\u003e\u003e member6 \u003d \"member_ID_2001:db8::1:63015_subnetid\"\n\u003e\u003e\u003e mem6 \u003d member6.split(\u0027_\u0027)[2]\n\u003e\u003e\u003e mem6.rsplit(\u0027:\u0027, 1)\n[\u00272001:db8::1\u0027, \u002763015\u0027]","commit_id":"7f47f7afd495c92c6981465556ada7899a45df03"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"f9d27f5564a38dc838f9c391bacbb8e6acd073a7","unresolved":false,"context_lines":[{"line_number":793,"context_line":"        mem_info \u003d \u0027\u0027"},{"line_number":794,"context_line":"        if member:"},{"line_number":795,"context_line":"            for mem in member.split(\u0027,\u0027):"},{"line_number":796,"context_line":"                mem_info +\u003d str(mem.split(\u0027_\u0027)[2]) + \u0027,\u0027"},{"line_number":797,"context_line":"        return mem_info[:-1]  # Remove the last \u0027,\u0027"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    def _get_member_key(self, member, old_convention\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_dff65590","line":796,"in_reply_to":"1fa4df85_7f0f262e","updated":"2020-02-26 08:38:06.000000000","message":"Oh yeah. rsplit is a *much* better idea. Thanks Brian!","commit_id":"7f47f7afd495c92c6981465556ada7899a45df03"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d97c86f1e14d8f72ee30b0c2fa024578fec69173","unresolved":false,"context_lines":[{"line_number":866,"context_line":"                continue"},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"            ips \u003d []"},{"line_number":869,"context_line":"            for member in self._extract_member_info("},{"line_number":870,"context_line":"                    lb_external_ids[pool_id]).split(\u0027,\u0027):"},{"line_number":871,"context_line":"                member_port \u003d re.findall(\u0027(?:.(?!:))+$\u0027, member)[0].strip(\u0027:\u0027)"},{"line_number":872,"context_line":"                member_ip \u003d member[:-(len(member_port) + 1)]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_e4bdcf68","line":869,"updated":"2020-02-25 23:35:38.000000000","message":"So _extract_member_info() is going to return a comma-separated list of IP:port,IP2:port2... and we\u0027re going to split it apart and put it back together.  For maintainability maybe it should just return a list of tuples like (IP, port) instead?  This is the only caller.","commit_id":"7f47f7afd495c92c6981465556ada7899a45df03"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"5abcae3e4139cd4184b1c38b9452f89ec82c1428","unresolved":false,"context_lines":[{"line_number":868,"context_line":"            ips \u003d []"},{"line_number":869,"context_line":"            for member in self._extract_member_info("},{"line_number":870,"context_line":"                    lb_external_ids[pool_id]).split(\u0027,\u0027):"},{"line_number":871,"context_line":"                member_port \u003d re.findall(\u0027(?:.(?!:))+$\u0027, member)[0].strip(\u0027:\u0027)"},{"line_number":872,"context_line":"                member_ip \u003d member[:-(len(member_port) + 1)]"},{"line_number":873,"context_line":"                if netaddr.IPNetwork(member_ip).version \u003d\u003d 6:"},{"line_number":874,"context_line":"                    ips.append(\u0027[%s]:%s\u0027 % (member_ip, member_port))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_4d6656f0","line":871,"range":{"start_line":871,"start_character":16,"end_line":871,"end_character":78},"updated":"2020-02-25 09:39:26.000000000","message":"This fill find a port from ipv4/ipv6 address like \u0027:90\u0027.","commit_id":"7f47f7afd495c92c6981465556ada7899a45df03"}],"ovn_octavia_provider/tests/unit/test_driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d97c86f1e14d8f72ee30b0c2fa024578fec69173","unresolved":false,"context_lines":[{"line_number":2780,"context_line":"        self.assertEqual(expected, ret)"},{"line_number":2781,"context_line":""},{"line_number":2782,"context_line":"    def test__frame_lb_vips_ipv6(self):"},{"line_number":2783,"context_line":"        self.member_address \u003d \u00272001:db8::\u0027"},{"line_number":2784,"context_line":"        self.member_line \u003d ("},{"line_number":2785,"context_line":"            \u0027member_%s_%s:%s_%s\u0027 %"},{"line_number":2786,"context_line":"            (self.member_id, self.member_address,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_64555f50","line":2783,"range":{"start_line":2783,"start_character":31,"end_line":2783,"end_character":41},"updated":"2020-02-25 23:35:38.000000000","message":"maybe 2001:db8::1 so it looks more like an address, even if this is valid","commit_id":"7f47f7afd495c92c6981465556ada7899a45df03"}]}
