)]}'
{"nova/api/openstack/compute/floating_ips.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"cbead5c0420bb5096534c3edd8e07ebbb96f2240","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        return _translate_floating_ip_view(ip)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":177,"context_line":"    @wsgi.response(202)"},{"line_number":178,"context_line":"    @extensions.expected_errors((400, 403, 404, 409))"},{"line_number":179,"context_line":"    def delete(self, req, id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_1367b94d","line":176,"range":{"start_line":176,"start_character":40,"end_line":176,"end_character":69},"updated":"2017-02-08 09:58:38.000000000","message":"this is max supported version, so further API version will get a 400 error?","commit_id":"184471279cf46be4f9788508c079f0f4d1a565c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4043a5d76db5f9aa3e4a1a24cd87ca52e516cfdc","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            msg \u003d _(\u0027Cannot disassociate auto assigned floating IP\u0027)"},{"line_number":203,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":204,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":205,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":206,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_1a367eb4","line":205,"range":{"start_line":205,"start_character":30,"end_line":205,"end_character":32},"updated":"2017-02-02 11:08:12.000000000","message":"IP","commit_id":"184471279cf46be4f9788508c079f0f4d1a565c3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"09c0f0f191b299e4c4c5361594b2cfd4bfd58ed1","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":204,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":205,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":206,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class FloatingIPActionController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_a6286134","line":206,"range":{"start_line":206,"start_character":28,"end_line":206,"end_character":40},"updated":"2016-12-16 10:59:58.000000000","message":"this API is deprecated, but still seems a valid fix","commit_id":"184471279cf46be4f9788508c079f0f4d1a565c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4043a5d76db5f9aa3e4a1a24cd87ca52e516cfdc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":204,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":205,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":206,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class FloatingIPActionController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_da0236b4","line":206,"range":{"start_line":206,"start_character":28,"end_line":206,"end_character":40},"in_reply_to":"1a6eadb0_a6286134","updated":"2017-02-02 11:08:12.000000000","message":"Which API are you referring to? This fixes issues when using the neutron API rather than the nova-network API, right?","commit_id":"184471279cf46be4f9788508c079f0f4d1a565c3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"cbead5c0420bb5096534c3edd8e07ebbb96f2240","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":204,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":205,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":206,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class FloatingIPActionController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_f3c86d24","line":206,"range":{"start_line":206,"start_character":28,"end_line":206,"end_character":40},"in_reply_to":"3a461143_da0236b4","updated":"2017-02-08 09:58:38.000000000","message":"yes, neutron proxy is also deprecated per above comments..","commit_id":"184471279cf46be4f9788508c079f0f4d1a565c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb867876087018a7565e086205f226522497255c","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            msg \u003d _(\u0027Cannot disassociate auto assigned floating IP\u0027)"},{"line_number":201,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":202,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":203,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":204,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_5a36fa04","line":203,"range":{"start_line":203,"start_character":18,"end_line":203,"end_character":69},"updated":"2017-06-06 14:49:51.000000000","message":"This is redundant with the actual FloatingIpNotFoundForAddress message, why don\u0027t we just use:\n\nraise webob.exc.HTTPNotFound(explanation\u003dex.format_message())\n\n?","commit_id":"d6cfd5b482abb4b09c90072d3d57dec895882fbe"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"49cd3d924c72ccefc7a0adbf1c8b75e84b588aa7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            msg \u003d _(\u0027Cannot disassociate auto assigned floating IP\u0027)"},{"line_number":201,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":202,"context_line":"        except exception.FloatingIpNotFoundForAddress:"},{"line_number":203,"context_line":"            msg \u003d _(\"Floating ip not found for address %s\") % address"},{"line_number":204,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_4ed87851","line":203,"range":{"start_line":203,"start_character":18,"end_line":203,"end_character":69},"in_reply_to":"df140735_5a36fa04","updated":"2017-06-06 16:05:15.000000000","message":"Done","commit_id":"d6cfd5b482abb4b09c90072d3d57dec895882fbe"}],"nova/tests/unit/api/openstack/compute/test_floating_ips.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fb8f584053154a47d5f514d675a73c18c675a991","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                                   expected_exc):"},{"line_number":164,"context_line":"        \"\"\"Ensure that various exceptions are correctly transformed."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Handle the myriad exceptions that could be raised from the"},{"line_number":167,"context_line":"        \u0027disassociate_and_release_floating_ip\u0027 call."},{"line_number":168,"context_line":"        \"\"\""},{"line_number":169,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_ce1ec80a","line":166,"range":{"start_line":166,"start_character":19,"end_line":166,"end_character":25},"updated":"2017-06-06 16:07:07.000000000","message":"Since when was 3 \u003d\u003d myriad? :)","commit_id":"d99197aece6451013d1de1f08c1af16832ee0e7e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"38fbddacfd922333b9ff31e8f0015bc1286d5a1d","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                                   expected_exc):"},{"line_number":164,"context_line":"        \"\"\"Ensure that various exceptions are correctly transformed."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        Handle the myriad exceptions that could be raised from the"},{"line_number":167,"context_line":"        \u0027disassociate_and_release_floating_ip\u0027 call."},{"line_number":168,"context_line":"        \"\"\""},{"line_number":169,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_0e9a8060","line":166,"range":{"start_line":166,"start_character":19,"end_line":166,"end_character":25},"in_reply_to":"df140735_ce1ec80a","updated":"2017-06-06 16:08:11.000000000","message":"It\u0027s a cool word :)","commit_id":"d99197aece6451013d1de1f08c1af16832ee0e7e"}],"nova/tests/unit/network/test_neutronv2.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb867876087018a7565e086205f226522497255c","unresolved":false,"context_lines":[{"line_number":2511,"context_line":"    def test_release_floating_ip_not_found(self):"},{"line_number":2512,"context_line":"        api \u003d neutronapi.API()"},{"line_number":2513,"context_line":"        address \u003d self.fip_associated[\u0027floating_ip_address\u0027]"},{"line_number":2514,"context_line":"        neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)"},{"line_number":2515,"context_line":"        self.moxed_client.list_floatingips(floating_ip_address\u003daddress).\\"},{"line_number":2516,"context_line":"            AndReturn({\u0027floatingips\u0027: [self.fip_unassociated]})"},{"line_number":2517,"context_line":"        self.moxed_client.delete_floatingip(mox.IgnoreArg()).AndRaise("}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_ba051616","line":2514,"range":{"start_line":2514,"start_character":9,"end_line":2514,"end_character":75},"updated":"2017-06-06 14:49:51.000000000","message":"Please don\u0027t use the existing mox-based tests. Do this in the TestNeutronv2WithMock test class.","commit_id":"d6cfd5b482abb4b09c90072d3d57dec895882fbe"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"49cd3d924c72ccefc7a0adbf1c8b75e84b588aa7","unresolved":false,"context_lines":[{"line_number":2511,"context_line":"    def test_release_floating_ip_not_found(self):"},{"line_number":2512,"context_line":"        api \u003d neutronapi.API()"},{"line_number":2513,"context_line":"        address \u003d self.fip_associated[\u0027floating_ip_address\u0027]"},{"line_number":2514,"context_line":"        neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)"},{"line_number":2515,"context_line":"        self.moxed_client.list_floatingips(floating_ip_address\u003daddress).\\"},{"line_number":2516,"context_line":"            AndReturn({\u0027floatingips\u0027: [self.fip_unassociated]})"},{"line_number":2517,"context_line":"        self.moxed_client.delete_floatingip(mox.IgnoreArg()).AndRaise("}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_2edb044f","line":2514,"range":{"start_line":2514,"start_character":9,"end_line":2514,"end_character":75},"in_reply_to":"df140735_ba051616","updated":"2017-06-06 16:05:15.000000000","message":"Done, and I converted one or two others to mock","commit_id":"d6cfd5b482abb4b09c90072d3d57dec895882fbe"}]}
