)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1334e6e2aeac135127aa4eec34eed1331d18d2ef","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[3] Neutron server part of Port forwarding plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces a new API extension named \u0027extend-fip-port-forwarding\u0027"},{"line_number":10,"context_line":"for exposing \u0027port_forwardings\u0027 field in GET floatingip responses."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is for fitting the spec [1] about the existing floatingip API affect."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_01ad8d31","line":9,"range":{"start_line":9,"start_character":72,"end_line":9,"end_character":76},"updated":"2018-06-27 20:26:16.000000000","message":"Nit: 3 characters too long","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"3128ce1f5a4ef4d0285724f41c688d837886497c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[3] Neutron server part of Port forwarding plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces a new API extension named \u0027extend-fip-port-forwarding\u0027"},{"line_number":10,"context_line":"for exposing \u0027port_forwardings\u0027 field in GET floatingip responses."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is for fitting the spec [1] about the existing floatingip API affect."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_a38ff920","line":9,"range":{"start_line":9,"start_character":72,"end_line":9,"end_character":76},"in_reply_to":"5f7c97a3_01ad8d31","updated":"2018-06-28 01:20:03.000000000","message":"Done","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1334e6e2aeac135127aa4eec34eed1331d18d2ef","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch introduces a new API extension named \u0027extend-fip-port-forwarding\u0027"},{"line_number":10,"context_line":"for exposing \u0027port_forwardings\u0027 field in GET floatingip responses."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is for fitting the spec [1] about the existing floatingip API affect."},{"line_number":13,"context_line":"[1]"},{"line_number":14,"context_line":"https://specs.openstack.org/openstack/neutron-specs/specs/rocky/port-forwarding.html"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_812c3db3","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":74},"updated":"2018-06-27 20:26:16.000000000","message":"I would re-phrase this as:\n\nThis change implements the effect of port forwarding on the existing floating IP API, as specified in [1]","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"3128ce1f5a4ef4d0285724f41c688d837886497c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch introduces a new API extension named \u0027extend-fip-port-forwarding\u0027"},{"line_number":10,"context_line":"for exposing \u0027port_forwardings\u0027 field in GET floatingip responses."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is for fitting the spec [1] about the existing floatingip API affect."},{"line_number":13,"context_line":"[1]"},{"line_number":14,"context_line":"https://specs.openstack.org/openstack/neutron-specs/specs/rocky/port-forwarding.html"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_239be964","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":74},"in_reply_to":"5f7c97a3_812c3db3","updated":"2018-06-28 01:20:03.000000000","message":"Done","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3c373b47084a89f57dbfb0146b22f7d3ebaf893e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[server side] Expose port forwardings in FIP API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces a new API extension named"},{"line_number":10,"context_line":"\u0027extend-fip-port-forwarding\u0027"},{"line_number":11,"context_line":"for exposing \u0027port_forwardings\u0027 field in floatingip responses."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change implements the effect of port forwarding on exsiting"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5f7c97a3_1dfd4908","line":10,"updated":"2018-07-18 14:33:51.000000000","message":"Why start a new line here?","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8473553b22f181ac89b0630bf8a117b4a9fed261","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[server side] Expose port forwardings in FIP API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces a new API extension named"},{"line_number":10,"context_line":"\u0027extend-fip-port-forwarding\u0027"},{"line_number":11,"context_line":"for exposing \u0027port_forwardings\u0027 field in floatingip responses."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change implements the effect of port forwarding on exsiting"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5f7c97a3_302cdeff","line":10,"in_reply_to":"5f7c97a3_1dfd4908","updated":"2018-07-19 02:27:26.000000000","message":"It\u0027s automatic start a new line in my git bash. Maybe it\u0027s too long..","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3c373b47084a89f57dbfb0146b22f7d3ebaf893e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u0027extend-fip-port-forwarding\u0027"},{"line_number":11,"context_line":"for exposing \u0027port_forwardings\u0027 field in floatingip responses."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change implements the effect of port forwarding on exsiting"},{"line_number":14,"context_line":"Floatingip API, as specified in [1]"},{"line_number":15,"context_line":"[1]"},{"line_number":16,"context_line":"https://specs.openstack.org/openstack/neutron-specs/specs/rocky/port-forwarding.html"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I9016abb6eb650c86c570a0ee78ee12361f4632e4"},{"line_number":19,"context_line":"Partial-Bug: #1491317"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5f7c97a3_9d11595f","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":84},"updated":"2018-07-18 14:33:51.000000000","message":"You can add that \u0027Partially-Implements: blueprint port-forwarding\u0027 here.","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8473553b22f181ac89b0630bf8a117b4a9fed261","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u0027extend-fip-port-forwarding\u0027"},{"line_number":11,"context_line":"for exposing \u0027port_forwardings\u0027 field in floatingip responses."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change implements the effect of port forwarding on exsiting"},{"line_number":14,"context_line":"Floatingip API, as specified in [1]"},{"line_number":15,"context_line":"[1]"},{"line_number":16,"context_line":"https://specs.openstack.org/openstack/neutron-specs/specs/rocky/port-forwarding.html"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I9016abb6eb650c86c570a0ee78ee12361f4632e4"},{"line_number":19,"context_line":"Partial-Bug: #1491317"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5f7c97a3_903cd230","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":84},"in_reply_to":"5f7c97a3_9d11595f","updated":"2018-07-19 02:27:26.000000000","message":"Done","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"}],"neutron/extensions/_expose_port_forwarding_in_fip_lib.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4e01a70685eb812578545543118c4180d9c3757f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5f7c97a3_390aecd0","updated":"2018-07-14 23:53:36.000000000","message":"I just +Wed https://review.openstack.org/#/c/578764 in neutron-lib and next week we will be releasing neutron-lib. In the next revision of this patch, let\u0027s consume this definition from neutron-lib","commit_id":"c4854899d42927d4eb54890835ba455a9bcb534a"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"967967b86fcf92ab0e29fb0f65b0ac38e7703618","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5f7c97a3_1b103f59","in_reply_to":"5f7c97a3_390aecd0","updated":"2018-07-16 03:26:53.000000000","message":"Thanks Miguel.","commit_id":"c4854899d42927d4eb54890835ba455a9bcb534a"}],"neutron/extensions/extend_fip_port_forwarding.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1334e6e2aeac135127aa4eec34eed1331d18d2ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5f7c97a3_749681a3","updated":"2018-06-27 20:26:16.000000000","message":"Is there a corresponding patch to define this extension in neutron-lib, like this one: https://review.openstack.org/#/c/535638/? I tried to find it but I couldn\u0027t","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"3128ce1f5a4ef4d0285724f41c688d837886497c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5f7c97a3_83d8bd24","in_reply_to":"5f7c97a3_749681a3","updated":"2018-06-28 01:20:03.000000000","message":"Oh, I have not post this in neutron-lib yet for making forward this work. :). If possible, I will rename it with \"_\" prefix and post it in neutron-lib.","commit_id":"3f657f60d05923eb998deb9138c4224cd174627c"}],"neutron/tests/unit/extensions/test_expose_port_forwarding_in_fip.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80ba655efab34964be1e7b136b7651ce33adbb8c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                self._router_interface_action(\u0027add\u0027, router[\u0027router\u0027][\u0027id\u0027],"},{"line_number":85,"context_line":"                                              insub[\u0027subnet\u0027][\u0027id\u0027], None)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"                def _get_expect(ref):"},{"line_number":88,"context_line":"                    want_fields \u003d [apidef.INTERNAL_IP_ADDRESS, apidef.PROTOCOL,"},{"line_number":89,"context_line":"                                   apidef.INTERNAL_PORT, apidef.EXTERNAL_PORT]"},{"line_number":90,"context_line":"                    exp \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_482d46ac","line":87,"range":{"start_line":87,"start_character":20,"end_line":87,"end_character":31},"updated":"2018-07-18 09:23:28.000000000","message":"_get_expected maybe?","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8473553b22f181ac89b0630bf8a117b4a9fed261","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                self._router_interface_action(\u0027add\u0027, router[\u0027router\u0027][\u0027id\u0027],"},{"line_number":85,"context_line":"                                              insub[\u0027subnet\u0027][\u0027id\u0027], None)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"                def _get_expect(ref):"},{"line_number":88,"context_line":"                    want_fields \u003d [apidef.INTERNAL_IP_ADDRESS, apidef.PROTOCOL,"},{"line_number":89,"context_line":"                                   apidef.INTERNAL_PORT, apidef.EXTERNAL_PORT]"},{"line_number":90,"context_line":"                    exp \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_101202b5","line":87,"range":{"start_line":87,"start_character":20,"end_line":87,"end_character":31},"in_reply_to":"5f7c97a3_482d46ac","updated":"2018-07-19 02:27:26.000000000","message":"Correct. Thanks :)","commit_id":"c2d5291b18b51f43614eae8a052f2fbbc42cc35f"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"bbae46004338cd3053dac62737b80f0a3f5de750","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            plugin\u003dCORE_PLUGIN, ext_mgr\u003dext_mgr, service_plugins\u003dsvc_plugins)"},{"line_number":56,"context_line":"        self.pf_plugin \u003d pf_plugin.PortForwardingPlugin()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def test_get_fip_contain_port_forwardings_fields(self):"},{"line_number":59,"context_line":"        kwargs \u003d {\u0027arg_list\u0027: (extnet_apidef.EXTERNAL,),"},{"line_number":60,"context_line":"                  extnet_apidef.EXTERNAL: True}"},{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_20f43155","line":58,"range":{"start_line":58,"start_character":13,"end_line":58,"end_character":16},"updated":"2018-07-23 18:58:10.000000000","message":"name doesn\u0027t reflect what the test is doing its actually testing the create_floating_ip call has pf, which is not really the get_fip.","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"0cb1aab8c117bb92ef3f1099046d719e84b46212","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            plugin\u003dCORE_PLUGIN, ext_mgr\u003dext_mgr, service_plugins\u003dsvc_plugins)"},{"line_number":56,"context_line":"        self.pf_plugin \u003d pf_plugin.PortForwardingPlugin()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def test_get_fip_contain_port_forwardings_fields(self):"},{"line_number":59,"context_line":"        kwargs \u003d {\u0027arg_list\u0027: (extnet_apidef.EXTERNAL,),"},{"line_number":60,"context_line":"                  extnet_apidef.EXTERNAL: True}"},{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_6d41b936","line":58,"range":{"start_line":58,"start_character":13,"end_line":58,"end_character":16},"in_reply_to":"5f7c97a3_20f43155","updated":"2018-07-24 01:19:27.000000000","message":"Oh, yes, Thanks. This is my bad. This test willing to test create fip, and get the \u0027port_forwardings\u0027 fields in the response, also we can show fip. Nice catch.:)","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"bbae46004338cd3053dac62737b80f0a3f5de750","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                  extnet_apidef.EXTERNAL: True}"},{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"},{"line_number":62,"context_line":"            with self.subnet(network\u003dn, cidr\u003d\u0027200.0.0.0/22\u0027):"},{"line_number":63,"context_line":"                fip \u003d self._make_floatingip(self.fmt, n[\u0027network\u0027][\u0027id\u0027])"},{"line_number":64,"context_line":"                self.assertIn(apidef.COLLECTION_NAME, fip[\u0027floatingip\u0027])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_get_fip_after_port_forwarding_create(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_4007ed1f","line":63,"range":{"start_line":63,"start_character":14,"end_line":63,"end_character":73},"updated":"2018-07-23 18:58:10.000000000","message":"or self._show(\u0027floatingips\u0027, -----) can be used after this\nthen the name of test looks correct.","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"0cb1aab8c117bb92ef3f1099046d719e84b46212","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                  extnet_apidef.EXTERNAL: True}"},{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"},{"line_number":62,"context_line":"            with self.subnet(network\u003dn, cidr\u003d\u0027200.0.0.0/22\u0027):"},{"line_number":63,"context_line":"                fip \u003d self._make_floatingip(self.fmt, n[\u0027network\u0027][\u0027id\u0027])"},{"line_number":64,"context_line":"                self.assertIn(apidef.COLLECTION_NAME, fip[\u0027floatingip\u0027])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_get_fip_after_port_forwarding_create(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_ed6e29c7","line":63,"range":{"start_line":63,"start_character":14,"end_line":63,"end_character":73},"in_reply_to":"5f7c97a3_4007ed1f","updated":"2018-07-24 01:19:27.000000000","message":"Let me fix it. Thanks","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5fa70c84879f2596a4a570dcbd80fb807ef7cf22","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"},{"line_number":62,"context_line":"            with self.subnet(network\u003dn, cidr\u003d\u0027200.0.0.0/22\u0027):"},{"line_number":63,"context_line":"                fip \u003d self._make_floatingip(self.fmt, n[\u0027network\u0027][\u0027id\u0027])"},{"line_number":64,"context_line":"                self.assertIn(apidef.COLLECTION_NAME, fip[\u0027floatingip\u0027])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_get_fip_after_port_forwarding_create(self):"},{"line_number":67,"context_line":"        port_forwarding \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_fb26deb9","line":64,"updated":"2018-07-24 08:21:05.000000000","message":"Do You need this test?\nI think that enough would be to just check if this new field is in floating_ip in test below, before creating pf - so in L81 I think. Than You have one test which You can call \"test_fip_port_forwarding\" and it will cover both those test cases IMO.","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"827c9201726c0cbb1ab685d69cad82acab7c1cf3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        with self.network(**kwargs) as n:"},{"line_number":62,"context_line":"            with self.subnet(network\u003dn, cidr\u003d\u0027200.0.0.0/22\u0027):"},{"line_number":63,"context_line":"                fip \u003d self._make_floatingip(self.fmt, n[\u0027network\u0027][\u0027id\u0027])"},{"line_number":64,"context_line":"                self.assertIn(apidef.COLLECTION_NAME, fip[\u0027floatingip\u0027])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_get_fip_after_port_forwarding_create(self):"},{"line_number":67,"context_line":"        port_forwarding \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_e7c63c6a","line":64,"in_reply_to":"5f7c97a3_fb26deb9","updated":"2018-07-24 12:01:05.000000000","message":"Very good suggest. I just want to test different target in different test functions. But this seems not necessary. I may just add the L64 before L82, that\u0027s done. Let me move. Thanks you both. :)","commit_id":"0a917bf879c0ed1b412385267733f7dd04d5156c"}]}
