)]}'
{"nova/ipv6/rfc2462.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"09c8eb97657886c73fa529f6cc4648edf399ab8a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def to_global(prefix, mac, project_id):"},{"line_number":26,"context_line":"    try:"},{"line_number":27,"context_line":"        mac64 \u003d netaddr.EUI(mac).eui64().value"},{"line_number":28,"context_line":"        mac64_addr \u003d netaddr.IPAddress(mac64)"},{"line_number":29,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":30,"context_line":"        raise TypeError(_(\u0027Bad mac for to_global_ipv6: %s\u0027) % mac)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_0bc5473c","line":27,"range":{"start_line":27,"start_character":41,"end_line":27,"end_character":46},"updated":"2016-06-28 17:49:07.000000000","message":"Conversion can be avoided by using the integer value [1]\n\n[1] http://pythonhosted.org/netaddr/api.html?highlight\u003dwords#netaddr.EUI.value","commit_id":"fe50be79f54dcda828e6942b44e0f071b026092b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"885a2c72f6f4b7862929bad019de72648ec2d3b2","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def to_global(prefix, mac, project_id):"},{"line_number":26,"context_line":"    try:"},{"line_number":27,"context_line":"        mac64 \u003d netaddr.EUI(mac).eui64().value"},{"line_number":28,"context_line":"        mac64_addr \u003d netaddr.IPAddress(mac64)"},{"line_number":29,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":30,"context_line":"        raise TypeError(_(\u0027Bad mac for to_global_ipv6: %s\u0027) % mac)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_ac14069f","line":27,"in_reply_to":"3aaa91ec_0bc5473c","updated":"2016-06-28 19:42:18.000000000","message":"Not exactly sure what you meant by this comment, but the link has shown me a way to make this even simpler, thanks. :)","commit_id":"fe50be79f54dcda828e6942b44e0f071b026092b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd625d3b30402033fb970611c0a93c967c47c970","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def to_global(prefix, mac, project_id):"},{"line_number":26,"context_line":"    try:"},{"line_number":27,"context_line":"        mac64 \u003d netaddr.EUI(mac).eui64().value"},{"line_number":28,"context_line":"        mac64_addr \u003d netaddr.IPAddress(mac64)"},{"line_number":29,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":30,"context_line":"        raise TypeError(_(\u0027Bad mac for to_global_ipv6: %s\u0027) % mac)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_acbec661","line":27,"in_reply_to":"3aaa91ec_ac14069f","updated":"2016-06-28 19:46:47.000000000","message":"When I look up something to better understand a review, I usually leave a comment for other reviewers to potentially save them a step","commit_id":"fe50be79f54dcda828e6942b44e0f071b026092b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8ee547f3aa4f91e3e3bb24c9a6c910ddab1563d0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        int_addr \u003d int(\u0027\u0027.join([\u0027%02x\u0027 % i for i in mac64]), 16)"},{"line_number":29,"context_line":"        mac64_addr \u003d netaddr.IPAddress(int_addr)"},{"line_number":30,"context_line":"        maskIP \u003d netaddr.IPNetwork(prefix).ip"},{"line_number":31,"context_line":"        return (mac64_addr ^ netaddr.IPAddress(\u0027::0200:0:0:0\u0027) |"},{"line_number":32,"context_line":"                maskIP).format()"},{"line_number":33,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":34,"context_line":"        raise TypeError(_(\u0027Bad mac for to_global_ipv6: %s\u0027) % mac)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_d1fbb479","side":"PARENT","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":62},"updated":"2016-06-29 16:35:51.000000000","message":"And this was inverting the universal/local bit manually.","commit_id":"0871f4953d99bc6e5b35dbe8ccf8644a282167d3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8ee547f3aa4f91e3e3bb24c9a6c910ddab1563d0","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def to_global(prefix, mac, project_id):"},{"line_number":26,"context_line":"    try:"},{"line_number":27,"context_line":"        mac64 \u003d netaddr.EUI(mac).modified_eui64().value"},{"line_number":28,"context_line":"        mac64_addr \u003d netaddr.IPAddress(mac64)"},{"line_number":29,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":30,"context_line":"        raise TypeError(_(\u0027Bad mac for to_global_ipv6: %s\u0027) % mac)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_11d37c05","line":27,"range":{"start_line":27,"start_character":33,"end_line":27,"end_character":49},"updated":"2016-06-29 16:35:51.000000000","message":"This will invert the universal/local bit [1].\n\n[1] https://tools.ietf.org/html/rfc4291#section-2.5.1","commit_id":"4647f418afb9ced223c089f9d49cd686eccae9e2"}],"nova/tests/unit/test_ipv6.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"52d2dfe3bfa7f902e39cc93706991e1419a090e0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.assertRaises(TypeError, ipv6.to_global,"},{"line_number":39,"context_line":"                                    \u00272001:db8::\u0027, bad_mac, \u0027test\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_to_global_with_bad_prefix(self):"},{"line_number":42,"context_line":"        bad_prefix \u003d \u002782\u0027"},{"line_number":43,"context_line":"        self.assertRaises(TypeError, ipv6.to_global,"},{"line_number":44,"context_line":"                                    bad_prefix,"},{"line_number":45,"context_line":"                                    \u00272001:db8::216:3eff:fe33:4455\u0027,"},{"line_number":46,"context_line":"                                    \u0027test\u0027)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_to_global_with_bad_project(self):"},{"line_number":49,"context_line":"        bad_project \u003d \u0027non-existent-project-name\u0027"},{"line_number":50,"context_line":"        self.assertRaises(TypeError, ipv6.to_global,"},{"line_number":51,"context_line":"                                    \u00272001:db8::\u0027,"},{"line_number":52,"context_line":"                                    \u00272001:db8::a94a:8fe5:ff33:4455\u0027,"},{"line_number":53,"context_line":"                                    bad_project)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class IPv6AccountIdentiferTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_2a483687","line":53,"range":{"start_line":41,"start_character":4,"end_line":53,"end_character":48},"updated":"2016-06-27 20:53:50.000000000","message":"I think these two tests are busted too","commit_id":"d3eb846de1ed1a745ea2a4419e3dd5829c1c38e1"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"64883e75242b0521ee7518eeccc188df66840138","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.assertRaises(TypeError, ipv6.to_global,"},{"line_number":51,"context_line":"                                    \u00272001:db8::\u0027,"},{"line_number":52,"context_line":"                                    \u00272001:db8::a94a:8fe5:ff33:4455\u0027,"},{"line_number":53,"context_line":"                                    bad_project)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class IPv6AccountIdentiferTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_fa9272f5","line":53,"in_reply_to":"3aaa91ec_2a483687","updated":"2016-06-28 03:19:29.000000000","message":"Yes, you are right, same issue as with the others below.","commit_id":"d3eb846de1ed1a745ea2a4419e3dd5829c1c38e1"}]}
