)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add port forwarding floating IP QoS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port forwarding floating IPs QoS should be limitted under"},{"line_number":10,"context_line":"the binding QoS policy. So this patch extends the l3-agent"},{"line_number":11,"context_line":"fip-qos agent extension floating IP list with the port"},{"line_number":12,"context_line":"forwarding related IPs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fdfeff1_b532b6a6","line":9,"range":{"start_line":9,"start_character":43,"end_line":9,"end_character":51},"updated":"2019-01-21 09:40:28.000000000","message":"nit: limited","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add port forwarding floating IP QoS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port forwarding floating IPs QoS should be limitted under"},{"line_number":10,"context_line":"the binding QoS policy. So this patch extends the l3-agent"},{"line_number":11,"context_line":"fip-qos agent extension floating IP list with the port"},{"line_number":12,"context_line":"forwarding related IPs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fdfeff1_45bf0afb","line":9,"range":{"start_line":9,"start_character":43,"end_line":9,"end_character":51},"in_reply_to":"9fdfeff1_b532b6a6","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"}],"neutron/agent/l3/router_info.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def get_port_forwarding_fips(self):"},{"line_number":170,"context_line":"        \"\"\"Get router port forwarding floating IPs.\"\"\""},{"line_number":171,"context_line":"        return self.router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def floating_forward_rules(self, fip):"},{"line_number":174,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5527ca65","line":171,"updated":"2019-01-21 09:40:28.000000000","message":"why You are not using PORT_FORWARDING_FLOATINGIP_KEY here?","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def get_port_forwarding_fips(self):"},{"line_number":170,"context_line":"        \"\"\"Get router port forwarding floating IPs.\"\"\""},{"line_number":171,"context_line":"        return self.router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def floating_forward_rules(self, fip):"},{"line_number":174,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_e5d07e53","line":171,"in_reply_to":"9fdfeff1_5527ca65","updated":"2019-01-22 12:41:46.000000000","message":"Will do it once this const moved to neutron-lib, here I just do not want import pf plugin to this file.","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"db99d5942857f322b0ea26a27987820ab4fbba1e","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def get_port_forwarding_fips(self):"},{"line_number":170,"context_line":"        \"\"\"Get router port forwarding floating IPs.\"\"\""},{"line_number":171,"context_line":"        return self.router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def floating_forward_rules(self, fip):"},{"line_number":174,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_1a5a4a82","line":171,"range":{"start_line":171,"start_character":31,"end_line":171,"end_character":48},"updated":"2019-01-28 19:46:02.000000000","message":"Should this be the key from pf_plugin.py ?","commit_id":"4f13a2ea2b01a9bd144faf1215b09d63c26c278e"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d82d6d1a9b8135fb0ce3afbf73c5f080424d5e77","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def get_port_forwarding_fips(self):"},{"line_number":170,"context_line":"        \"\"\"Get router port forwarding floating IPs.\"\"\""},{"line_number":171,"context_line":"        return self.router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def floating_forward_rules(self, fip):"},{"line_number":174,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_c9239e55","line":171,"range":{"start_line":171,"start_character":31,"end_line":171,"end_character":48},"in_reply_to":"9fdfeff1_1a5a4a82","updated":"2019-01-29 01:25:53.000000000","message":"IMO, we should not import that \u0027plugin\u0027 to agent side code. Will revert this to neutron-lib constants.","commit_id":"4f13a2ea2b01a9bd144faf1215b09d63c26c278e"}],"neutron/services/portforwarding/pf_plugin.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                router[\u0027fip_managed_by_port_forwardings\u0027] \u003d router_fip["},{"line_number":531,"context_line":"                    router[\u0027id\u0027]]"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"                router_floatingips \u003d router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":534,"context_line":"                for f_id in router_fip[router[\u0027id\u0027]]:"},{"line_number":535,"context_line":"                    fip \u003d self.l3_plugin.get_floatingip(context, f_id)"},{"line_number":536,"context_line":"                    router_floatingips.append(fip)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_351ec60c","line":533,"range":{"start_line":533,"start_character":49,"end_line":533,"end_character":64},"updated":"2019-01-21 09:40:28.000000000","message":"why not \"PORT_FORWARDING_FLOATINGIP_KEY\"?","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                router[\u0027fip_managed_by_port_forwardings\u0027] \u003d router_fip["},{"line_number":531,"context_line":"                    router[\u0027id\u0027]]"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"                router_floatingips \u003d router.get(\u0027_pf_floatingips\u0027, [])"},{"line_number":534,"context_line":"                for f_id in router_fip[router[\u0027id\u0027]]:"},{"line_number":535,"context_line":"                    fip \u003d self.l3_plugin.get_floatingip(context, f_id)"},{"line_number":536,"context_line":"                    router_floatingips.append(fip)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_a5c27684","line":533,"range":{"start_line":533,"start_character":49,"end_line":533,"end_character":64},"in_reply_to":"9fdfeff1_351ec60c","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5e7b94009f1e346b01ca88cfe7262049592032e4","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"# Move to neutron-lib someday."},{"line_number":51,"context_line":"PORT_FORWARDING_FLOATINGIP_KEY \u003d \u0027_pf_floatingips\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_c2489dcd","line":50,"updated":"2019-01-24 08:37:57.000000000","message":"nit: please add TODO if You will respin this patch","commit_id":"400d7fac1aaed4810af5548f6fc684dfd963db8d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5e7b94009f1e346b01ca88cfe7262049592032e4","unresolved":false,"context_lines":[{"line_number":534,"context_line":"                    PORT_FORWARDING_FLOATINGIP_KEY, [])"},{"line_number":535,"context_line":"                for f_id in router_fip[router[\u0027id\u0027]]:"},{"line_number":536,"context_line":"                    fip \u003d self.l3_plugin.get_floatingip(context, f_id)"},{"line_number":537,"context_line":"                    router_floatingips.append(fip)"},{"line_number":538,"context_line":"                router[PORT_FORWARDING_FLOATINGIP_KEY] \u003d router_floatingips"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_c2765d07","line":537,"updated":"2019-01-24 08:37:57.000000000","message":"what is in fact \"router_fip\" here and \"router_floatingips\"? For me those names are very similar and can represent the same thing.\nAlso what exactly is f_id? Is it floating IP id?","commit_id":"400d7fac1aaed4810af5548f6fc684dfd963db8d"},{"author":{"_account_id":25618,"name":"Paweł Suder","email":"pawel@suder.info","username":"SuderPawel"},"change_message_id":"dcc637148bcfea0220aebb74133bf920525d1406","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"# Move to neutron-lib someday."},{"line_number":51,"context_line":"PORT_FORWARDING_FLOATINGIP_KEY \u003d \u0027_pf_floatingips\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def make_result_with_fields(f):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_6723a4be","line":51,"range":{"start_line":50,"start_character":0,"end_line":51,"end_character":50},"updated":"2019-01-30 08:56:22.000000000","message":"Why not to move it at this moment?","commit_id":"4f13a2ea2b01a9bd144faf1215b09d63c26c278e"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"aea06d4b98bfd22cb8e63cc048b68e04421f6fde","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"# Move to neutron-lib someday."},{"line_number":51,"context_line":"PORT_FORWARDING_FLOATINGIP_KEY \u003d \u0027_pf_floatingips\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def make_result_with_fields(f):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_a20bba21","line":51,"range":{"start_line":50,"start_character":0,"end_line":51,"end_character":50},"in_reply_to":"9fdfeff1_6723a4be","updated":"2019-01-30 09:02:02.000000000","message":"I\u0027m working on that, : ). It will be a long story, we should get it merged first, and then waiting for a new neutron-lib release.","commit_id":"4f13a2ea2b01a9bd144faf1215b09d63c26c278e"}],"releasenotes/notes/add-port-forwarding-fip-qos-f808d6b4826fb849.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_95bbf2e3","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":70},"updated":"2019-01-21 09:40:28.000000000","message":"I would say it differently, something like: \"L3 agent supports now QoS bandwidth limit functionality for port forwarding floating IPs\". Or something like that","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_e55e3ee5","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":70},"in_reply_to":"9fdfeff1_95bbf2e3","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_75ba0edf","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":9},"updated":"2019-01-21 09:40:28.000000000","message":"I think that this isn\u0027t necessary.","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_15cf0280","line":5,"range":{"start_line":5,"start_character":19,"end_line":5,"end_character":22},"updated":"2019-01-21 09:40:28.000000000","message":"IP IMO would be better here","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33cf12b4839a64b2c4adaa70f878978c6238df18","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_55b58aed","line":5,"range":{"start_line":5,"start_character":52,"end_line":5,"end_character":67},"updated":"2019-01-21 09:40:28.000000000","message":"bandwidth limit rules","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_8573b280","line":5,"range":{"start_line":5,"start_character":19,"end_line":5,"end_character":22},"in_reply_to":"9fdfeff1_15cf0280","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_a5703674","line":5,"range":{"start_line":5,"start_character":52,"end_line":5,"end_character":67},"in_reply_to":"9fdfeff1_55b58aed","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"265079151aecd8729ea48f762c5c7765c6cb3036","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Port forwarding floating IPs has QoS functionality in L3 agent now. If"},{"line_number":5,"context_line":"    these floating IPs has binding QoS policy (with bandwidth rules), the"},{"line_number":6,"context_line":"    traffic bandwidth will be limited."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_456dca96","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":9},"in_reply_to":"9fdfeff1_75ba0edf","updated":"2019-01-22 12:41:46.000000000","message":"Done","commit_id":"fc29ab211b2061279599f14014214c12d4d60a0f"}]}
