)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"43c02ff5422c33b71f6752c87d8517ecfd48391c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"delete_minimum_bandwidth_ingress empty methods to sriov/ovs/linuxbridge"},{"line_number":14,"context_line":"extension drivers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"TODO:"},{"line_number":17,"context_line":"- unit tests"},{"line_number":18,"context_line":"- documentation"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I6eb21ccf0400ea9adae90ff0bf97e08cdb09b8eb"},{"line_number":21,"context_line":"Depends-On: https://review.openstack.org/580387"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_8ebbc5e2","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":15},"updated":"2018-09-26 15:58:16.000000000","message":"- Documentation: it is in a separate patch: https://review.openstack.org/582956\n\n- Unit tests: I have no idea what to test on empty methods. I anybody has any suggestion, please help me out\n\nI remove the TODOs and the WIP","commit_id":"5fb2063503f339a53e842a0cba786ab41cf9d575"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/extension_drivers/qos_driver.py":[{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"566523fd266f98992372e7f9ae7dac0dcafbae1d","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9b2eecf8","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"updated":"2018-08-16 20:35:14.000000000","message":"I assume this placeholder will be replaced by an implementation?","commit_id":"4016c098aa5e05a21c211880bbfc5eed0168db45"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"183ee6c5bc065789beec898e0ec96fcea9469fe6","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e102bf09","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"in_reply_to":"3f79a3b5_9b2eecf8","updated":"2018-08-17 12:00:28.000000000","message":"That is not part of this work. That is another RFE:\nhttps://bugs.launchpad.net/neutron/+bug/1560963 ([RFE] Minimum bandwidth support (egress))\n\nSo by agreement we add these empty methods, and when the implementation progress for the Minimum BW support (egress) RFE they will be implemented :-)","commit_id":"4016c098aa5e05a21c211880bbfc5eed0168db45"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"c82480f38a0bc456fe90dc99d004c5c031b4d398","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f21a8b6d","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"in_reply_to":"3f79a3b5_e102bf09","updated":"2018-08-17 14:27:25.000000000","message":"I see. IMHO, it is better to write down a note or todo about that because these empty methods might confuse people.","commit_id":"4016c098aa5e05a21c211880bbfc5eed0168db45"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e36b7a81c8c3ee92b80802a7615fd27f6d5aacf9","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            cfg.CONF.QOS.kernel_hz,"},{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_edb334eb","line":181,"updated":"2018-10-10 18:30:21.000000000","message":"Why did you remove this?","commit_id":"7cb122cd8e78d9b445b7db2888cc45f3f2a205ad"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6b4fba044bc96021d39867ed4f52289bcb2c1e57","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            cfg.CONF.QOS.kernel_hz,"},{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1d946940","line":181,"in_reply_to":"3f79a3b5_8377c19f","updated":"2018-10-12 16:30:46.000000000","message":"You are right, this is only for ovs and sriov.\n\nThanks!","commit_id":"7cb122cd8e78d9b445b7db2888cc45f3f2a205ad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d58e55e04b4558acc616b11b68908ed41b118cd9","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            cfg.CONF.QOS.kernel_hz,"},{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8377c19f","line":181,"in_reply_to":"3f79a3b5_edb334eb","updated":"2018-10-12 13:11:34.000000000","message":"In the spec we said that the placement bandwidth allocation support will work for sriov and ovs, I can\u0027t let the user create ingress min. bw. rule for linuxbridge as for that there will be no dataplane or placement enforcement.","commit_id":"7cb122cd8e78d9b445b7db2888cc45f3f2a205ad"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_5fa1f1a7","line":182,"range":{"start_line":182,"start_character":19,"end_line":182,"end_character":43},"updated":"2018-10-08 09:51:44.000000000","message":"Really need such function name for the log? The log context already print the function name.","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        )"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":182,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_3fce758f","line":182,"range":{"start_line":182,"start_character":70,"end_line":182,"end_character":71},"updated":"2018-10-08 09:51:44.000000000","message":"need a space","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"},{"line_number":186,"context_line":"        LOG.debug(\"update_minimum_bandwidth was called for port %s and\""},{"line_number":187,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def delete_minimum_bandwidth(self, port):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_1fab7988","line":186,"range":{"start_line":186,"start_character":19,"end_line":186,"end_character":43},"updated":"2018-10-08 09:51:44.000000000","message":"ditto","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def update_minimum_bandwidth(self, port, rule):"},{"line_number":186,"context_line":"        LOG.debug(\"update_minimum_bandwidth was called for port %s and\""},{"line_number":187,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def delete_minimum_bandwidth(self, port):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_5fd33138","line":186,"range":{"start_line":186,"start_character":70,"end_line":186,"end_character":71},"updated":"2018-10-08 09:51:44.000000000","message":"ditto","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def delete_minimum_bandwidth(self, port):"},{"line_number":190,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":193,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_bf8fe52d","line":190,"range":{"start_line":190,"start_character":19,"end_line":190,"end_character":43},"updated":"2018-10-08 09:51:44.000000000","message":"ditto","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":193,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":194,"context_line":"                  port)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_df8c213b","line":193,"range":{"start_line":193,"start_character":19,"end_line":193,"end_character":51},"updated":"2018-10-08 09:51:44.000000000","message":"ditto","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"}],"neutron/plugins/ml2/drivers/mech_sriov/agent/extension_drivers/qos_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bf023ff2113480aeece668b3aca8b80b7118834f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            LOG.info(\"No device with MAC %s defined on agent.\", device)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":65,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":66,"context_line":"                  port)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_906a70e9","line":64,"updated":"2018-10-03 13:32:59.000000000","message":"small nit: move this function below delete_minimum_bandwidth (only if you want and you are going to respin the patch)","commit_id":"47614b81e88da29852ce24ae68ce9d8e2797a34b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0300838fe9ffcbbaf8548d3770be872499a7b9cf","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            LOG.info(\"No device with MAC %s defined on agent.\", device)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":65,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":66,"context_line":"                  port)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_9471e448","line":64,"in_reply_to":"3f79a3b5_906a70e9","updated":"2018-10-04 15:08:25.000000000","message":"Thanks, I moved it","commit_id":"47614b81e88da29852ce24ae68ce9d8e2797a34b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            self._set_vf_min_tx_rate(device, pci_slot)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":83,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":84,"context_line":"                  port)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _set_vf_min_tx_rate(self, device, pci_slot, min_tx_kbps\u003d0):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9f6f895f","line":83,"range":{"start_line":83,"start_character":19,"end_line":83,"end_character":51},"updated":"2018-10-08 09:51:44.000000000","message":"OK, looks like all such kind of logs are added for testing or debug use. Maybe rephrase these logs.","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3138c7dc730d4185c3c2c5d6da702342121a96cc","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            self._set_vf_min_tx_rate(device, pci_slot)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":83,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":84,"context_line":"                  port)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _set_vf_min_tx_rate(self, device, pci_slot, min_tx_kbps\u003d0):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_8f1fd107","line":83,"range":{"start_line":83,"start_character":19,"end_line":83,"end_character":51},"updated":"2018-10-14 05:03:50.000000000","message":"Again the function name is already added to the DEBUG LOG by default [1], please rephrase this.\n[1] https://github.com/openstack/oslo.log/blob/master/oslo_log/_options.py#L124","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            self._set_vf_min_tx_rate(device, pci_slot)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":83,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":84,"context_line":"                  port)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _set_vf_min_tx_rate(self, device, pci_slot, min_tx_kbps\u003d0):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_dcb8f612","line":83,"range":{"start_line":83,"start_character":19,"end_line":83,"end_character":51},"in_reply_to":"3f79a3b5_8f1fd107","updated":"2018-10-16 14:57:49.000000000","message":"Done","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"}],"neutron/plugins/ml2/drivers/openvswitch/agent/extension_drivers/qos_driver.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":171,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and\""},{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_ffd79d21","line":171,"range":{"start_line":171,"start_character":70,"end_line":171,"end_character":71},"updated":"2018-10-08 09:51:44.000000000","message":"need a space","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31601ae1a8bae86e77cf2416729d478d9d842704","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"},{"line_number":175,"context_line":"        LOG.debug(\"update_minimum_bandwidth was called for port %s and\""},{"line_number":176,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def delete_minimum_bandwidth(self, port):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_bfe12500","line":175,"range":{"start_line":175,"start_character":70,"end_line":175,"end_character":71},"updated":"2018-10-08 09:51:44.000000000","message":"ditto","commit_id":"56232bc3657f11138bc24ce56b8d3dc36f2e8885"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"c998575827d286cb769a3d6eca7a75e961ceb3c6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            max_burst_kbps"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":171,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and \""},{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_69c91f22","line":170,"updated":"2018-10-12 20:10:24.000000000","message":"It\u0027s not clear to me why nothing is being done here except log.  I\u0027m sure there is a good reason, but perhaps rather than depending on the quality of my guessing, a comment might be in order?","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            max_burst_kbps"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":171,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and \""},{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_3cd56a47","line":170,"in_reply_to":"3f79a3b5_69c91f22","updated":"2018-10-16 14:57:49.000000000","message":"I added notes for these methods, as it is really not clear why these empty methods are here.\nShortly: for the Strict minimum bandwidth support (egress) RFE (this is the placement based enforcement) we enable the minimum bw rule for OVS (for SRIOV we have it already except the ingress direction) but as there is no dataplane enforcement ready for OVS (and for SRIOV no ingress enforcement) now these methods are empty.","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3138c7dc730d4185c3c2c5d6da702342121a96cc","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":171,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and \""},{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_0f2c2148","line":171,"range":{"start_line":171,"start_character":19,"end_line":171,"end_character":43},"updated":"2018-10-14 05:03:50.000000000","message":"Again the function name is already added to the DEBUG LOG by default [1], please rephrase this.\n[1] https://github.com/openstack/oslo.log/blob/master/oslo_log/_options.py#L124","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def create_minimum_bandwidth(self, port, rule):"},{"line_number":171,"context_line":"        LOG.debug(\"create_minimum_bandwidth was called for port %s and \""},{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_dcdf9664","line":171,"range":{"start_line":171,"start_character":19,"end_line":171,"end_character":43},"in_reply_to":"3f79a3b5_0f2c2148","updated":"2018-10-16 14:57:49.000000000","message":"Done","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3138c7dc730d4185c3c2c5d6da702342121a96cc","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"},{"line_number":175,"context_line":"        LOG.debug(\"update_minimum_bandwidth was called for port %s and \""},{"line_number":176,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def delete_minimum_bandwidth(self, port):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_2f2f9d3e","line":175,"range":{"start_line":175,"start_character":19,"end_line":175,"end_character":43},"updated":"2018-10-14 05:03:50.000000000","message":"ditto","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def update_minimum_bandwidth(self, port, rule):"},{"line_number":175,"context_line":"        LOG.debug(\"update_minimum_bandwidth was called for port %s and \""},{"line_number":176,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def delete_minimum_bandwidth(self, port):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_9ccfdeb1","line":175,"range":{"start_line":175,"start_character":19,"end_line":175,"end_character":43},"in_reply_to":"3f79a3b5_2f2f9d3e","updated":"2018-10-16 14:57:49.000000000","message":"Done","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3138c7dc730d4185c3c2c5d6da702342121a96cc","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def delete_minimum_bandwidth(self, port):"},{"line_number":179,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":182,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_cf214951","line":179,"range":{"start_line":179,"start_character":19,"end_line":179,"end_character":43},"updated":"2018-10-14 05:03:50.000000000","message":"ditto","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                  \"rule %s.\", port, rule)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def delete_minimum_bandwidth(self, port):"},{"line_number":179,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":182,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_5cc5c68e","line":179,"range":{"start_line":179,"start_character":19,"end_line":179,"end_character":43},"in_reply_to":"3f79a3b5_cf214951","updated":"2018-10-16 14:57:49.000000000","message":"Done","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3138c7dc730d4185c3c2c5d6da702342121a96cc","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":182,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":183,"context_line":"                  port)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_ef244561","line":182,"range":{"start_line":182,"start_character":19,"end_line":182,"end_character":51},"updated":"2018-10-14 05:03:50.000000000","message":"ditto","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        LOG.debug(\"delete_minimum_bandwidth was called for port %s.\", port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def delete_minimum_bandwidth_ingress(self, port):"},{"line_number":182,"context_line":"        LOG.debug(\"delete_minimum_bandwidth_ingress was called for port %s\","},{"line_number":183,"context_line":"                  port)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_1cc3ce8b","line":182,"range":{"start_line":182,"start_character":19,"end_line":182,"end_character":51},"in_reply_to":"3f79a3b5_ef244561","updated":"2018-10-16 14:57:49.000000000","message":"Done","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"}],"neutron/services/qos/drivers/openvswitch/driver.py":[{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"c998575827d286cb769a3d6eca7a75e961ceb3c6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    },"},{"line_number":40,"context_line":"    qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH: {"},{"line_number":41,"context_line":"        qos_consts.MIN_KBPS: {"},{"line_number":42,"context_line":"            \u0027type:range\u0027: [0, db_consts.DB_INTEGER_MAX_VALUE]},"},{"line_number":43,"context_line":"        qos_consts.DIRECTION: {\u0027type:values\u0027: constants.VALID_DIRECTIONS}"},{"line_number":44,"context_line":"    }"},{"line_number":45,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_89cefb29","line":42,"updated":"2018-10-12 20:10:24.000000000","message":"What does it mean to have a minimum bandwidth of zero?  Is this really a valid value?","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"30c57f69addcb459c12aec7e2ef96ceb3dc1b5a3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    },"},{"line_number":40,"context_line":"    qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH: {"},{"line_number":41,"context_line":"        qos_consts.MIN_KBPS: {"},{"line_number":42,"context_line":"            \u0027type:range\u0027: [0, db_consts.DB_INTEGER_MAX_VALUE]},"},{"line_number":43,"context_line":"        qos_consts.DIRECTION: {\u0027type:values\u0027: constants.VALID_DIRECTIONS}"},{"line_number":44,"context_line":"    }"},{"line_number":45,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_5c070671","line":42,"in_reply_to":"3f79a3b5_89cefb29","updated":"2018-10-16 14:57:49.000000000","message":"I just innocently copy-pasted it from the sriov driver:\nhttps://github.com/openstack/neutron/blob/master/neutron/services/qos/drivers/sriov/driver.py#id\u003dL39 :-)\n\nIt was originally commented here, but nobody complained for having zero:\nhttps://review.openstack.org/#/c/426946/13/neutron/services/qos/drivers/linuxbridge/driver.py@29","commit_id":"a181091a9903cc76dba5e3e26cc31a61f2f1a2f1"}]}
