)]}'
{"nova/api/openstack/compute/contrib/floating_ips.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"d7fe0923860af132999e2cdc0d9edacac2802103","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                fixed_address \u003d (ip[\u0027address\u0027] for ip in fixed_ips if"},{"line_number":206,"context_line":"                                 netaddr.valid_ipv4(ip[\u0027address\u0027])).next()"},{"line_number":207,"context_line":"            except StopIteration:"},{"line_number":208,"context_line":"                msg \u003d _(\u0027Unable to associate floating ip %(address)s \u0027"},{"line_number":209,"context_line":"                        \u0027to any fixed IPs for instance %(id)s. \u0027"},{"line_number":210,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":211,"context_line":"                        \u0027associate.\u0027) % ("}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_7e5d1678","line":208,"updated":"2015-04-09 16:01:36.000000000","message":"String freeze, so this can\u0027t get in right now.","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"60ca812c2705bc47726c75c2467cf801f9a7bde9","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":211,"context_line":"                        \u0027associate.\u0027) % ("},{"line_number":212,"context_line":"                        {\u0027address\u0027: address, \u0027id\u0027: id})"},{"line_number":213,"context_line":"                LOG.exception(msg)"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            if len(fixed_ips) \u003e 1:"},{"line_number":216,"context_line":"                LOG.warning(_LW(\u0027multiple fixed_ips exist, using the first \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_49445073","line":213,"updated":"2015-03-30 14:46:59.000000000","message":"The msg should be translated using _LE() for LOG.exception, but the exception explanation should just need to be _().","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"},{"author":{"_account_id":13409,"name":"Andrew Boik","email":"drew.boik@gmail.com","username":"dboik"},"change_message_id":"73334c469155dbe639931613149aa4e62ea4d3c6","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":211,"context_line":"                        \u0027associate.\u0027) % ("},{"line_number":212,"context_line":"                        {\u0027address\u0027: address, \u0027id\u0027: id})"},{"line_number":213,"context_line":"                LOG.exception(msg)"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            if len(fixed_ips) \u003e 1:"},{"line_number":216,"context_line":"                LOG.warning(_LW(\u0027multiple fixed_ips exist, using the first \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_bfee6520","line":213,"in_reply_to":"da9b358b_49445073","updated":"2015-03-30 18:10:48.000000000","message":"In this case, since an exception is raised and logged using the same msg, only _() should be used for the msg according to http://docs.openstack.org/developer/oslo.i18n/guidelines.html","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"74975d3cfc71fcfda5a78cb1b80cf9ad62d952f7","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":211,"context_line":"                        \u0027associate.\u0027) % ("},{"line_number":212,"context_line":"                        {\u0027address\u0027: address, \u0027id\u0027: id})"},{"line_number":213,"context_line":"                LOG.exception(msg)"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            if len(fixed_ips) \u003e 1:"},{"line_number":216,"context_line":"                LOG.warning(_LW(\u0027multiple fixed_ips exist, using the first \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_df04897f","line":213,"in_reply_to":"da9b358b_bfee6520","updated":"2015-03-30 18:15:28.000000000","message":"Sorry, you are right.","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e00353eeb04aa4f02cc2894cc79b760ebd71b5e1","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if not fixed_address:"},{"line_number":204,"context_line":"            try:"},{"line_number":205,"context_line":"                fixed_address \u003d (ip[\u0027address\u0027] for ip in fixed_ips if"},{"line_number":206,"context_line":"                                 netaddr.valid_ipv4(ip[\u0027address\u0027])).next()"},{"line_number":207,"context_line":"            except StopIteration:"},{"line_number":208,"context_line":"                msg \u003d _(\u0027Unable to associate floating ip %(address)s \u0027"},{"line_number":209,"context_line":"                        \u0027to any fixed IPs for instance %(id)s. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_f864b8e5","line":206,"updated":"2015-04-24 17:38:09.000000000","message":"Does nova-network support IPv6 in this case?","commit_id":"4837e58dd3d31fc855eefd2b4b22e1d047761825"},{"author":{"_account_id":13409,"name":"Andrew Boik","email":"drew.boik@gmail.com","username":"dboik"},"change_message_id":"ef2af35264d539deb004d818b642813a6fcca3cc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if not fixed_address:"},{"line_number":204,"context_line":"            try:"},{"line_number":205,"context_line":"                fixed_address \u003d (ip[\u0027address\u0027] for ip in fixed_ips if"},{"line_number":206,"context_line":"                                 netaddr.valid_ipv4(ip[\u0027address\u0027])).next()"},{"line_number":207,"context_line":"            except StopIteration:"},{"line_number":208,"context_line":"                msg \u003d _(\u0027Unable to associate floating ip %(address)s \u0027"},{"line_number":209,"context_line":"                        \u0027to any fixed IPs for instance %(id)s. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_295b0430","line":206,"in_reply_to":"bab921fb_f864b8e5","updated":"2015-04-24 19:09:41.000000000","message":"Nova only adds NAT rules for IPv4 floating IP\u0027s (see https://github.com/openstack/nova/blob/dde1c1e175d35e1a39708f75409ce80e8ff75020/nova/network/linux_net.py#L814), so v6 floating IPs currently wouldn\u0027t work under nova-network.","commit_id":"4837e58dd3d31fc855eefd2b4b22e1d047761825"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e00353eeb04aa4f02cc2894cc79b760ebd71b5e1","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":211,"context_line":"                        \u0027associate.\u0027) % ("},{"line_number":212,"context_line":"                        {\u0027address\u0027: address, \u0027id\u0027: id})"},{"line_number":213,"context_line":"                LOG.exception(msg)"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            if len(fixed_ips) \u003e 1:"},{"line_number":216,"context_line":"                LOG.warning(_LW(\u0027multiple fixed_ips exist, using the first \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_982dbc48","line":213,"updated":"2015-04-24 17:38:09.000000000","message":"I don\u0027t think we need to log an exception trace here, this isn\u0027t an unexpected issue and the caller gets the detailed error message back about what went wrong.","commit_id":"4837e58dd3d31fc855eefd2b4b22e1d047761825"}],"nova/api/openstack/compute/plugins/v3/floating_ips.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"d7fe0923860af132999e2cdc0d9edacac2802103","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                fixed_address \u003d (ip[\u0027address\u0027] for ip in fixed_ips if"},{"line_number":218,"context_line":"                                 netaddr.valid_ipv4(ip[\u0027address\u0027])).next()"},{"line_number":219,"context_line":"            except StopIteration:"},{"line_number":220,"context_line":"                msg \u003d _(\u0027Unable to associate floating ip %(address)s \u0027"},{"line_number":221,"context_line":"                        \u0027to any fixed IPs for instance %(id)s. \u0027"},{"line_number":222,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":223,"context_line":"                        \u0027associate.\u0027) % ("}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_fe4926b8","line":220,"updated":"2015-04-09 16:01:36.000000000","message":"ditto","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"60ca812c2705bc47726c75c2467cf801f9a7bde9","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                        \u0027Instance has no fixed IPv4 addresses to \u0027"},{"line_number":223,"context_line":"                        \u0027associate.\u0027) % ("},{"line_number":224,"context_line":"                        {\u0027address\u0027: address, \u0027id\u0027: id})"},{"line_number":225,"context_line":"                LOG.exception(msg)"},{"line_number":226,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":227,"context_line":"            if len(fixed_ips) \u003e 1:"},{"line_number":228,"context_line":"                LOG.warning(_LW(\u0027multiple fixed_ips exist, using the first \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_1c5c4824","line":225,"updated":"2015-03-30 14:46:59.000000000","message":"Ditto","commit_id":"d10e49f11a4c803ae8c3a4e7a57a8fd59e07c44a"}],"nova/tests/unit/api/openstack/compute/contrib/test_floating_ips.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"291ae28e6bbf4f6d2430c347c3714b2b244d61e8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"def get_instance_by_floating_ip_addr(self, context, address):"},{"line_number":109,"context_line":"    return None"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"class FloatingIpTestNeutronV21(test.NoDBTestCase):"},{"line_number":113,"context_line":"    floating_ips \u003d fips_v21"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_266836f5","line":111,"updated":"2015-04-28 22:20:16.000000000","message":"Claudiu, the API tests are in single modules now, the parent class is the v2.1 API tests like this.","commit_id":"c5dfd2c3ef773b29666fae3fe75bf7548044dbf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"291ae28e6bbf4f6d2430c347c3714b2b244d61e8","unresolved":false,"context_lines":[{"line_number":716,"context_line":"                          self.manager._add_floating_ip, self.fake_req,"},{"line_number":717,"context_line":"                          TEST_INST, body\u003dbody)"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"class FloatingIpTestV2(FloatingIpTestV21):"},{"line_number":721,"context_line":"    floating_ips \u003d fips_v2"},{"line_number":722,"context_line":"    validation_error \u003d webob.exc.HTTPBadRequest"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_c67742d3","line":719,"updated":"2015-04-28 22:20:16.000000000","message":"And the v2 API tests extend the v2.1 tests but override the extension.","commit_id":"c5dfd2c3ef773b29666fae3fe75bf7548044dbf5"}]}
