)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"956e8b5001d690dee441b678451cf027ee08f4ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3223eb76_42607034","updated":"2023-01-23 12:37:59.000000000","message":"Voting +1 but you will need to submit a new patch-set fixing the pep8 problem","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"840a1296d69f12ea7e2e4ed351ed36b0d7b3a3b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"23069f06_ceb65403","in_reply_to":"0eb4a8d2_bad4e4ea","updated":"2023-01-24 09:23:22.000000000","message":"Done","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"2e94392772fa0353e5d379c6f4edd24d925e6d39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0eb4a8d2_bad4e4ea","in_reply_to":"3223eb76_42607034","updated":"2023-01-23 13:23:28.000000000","message":"Also functional failures are in newly added tests:\nhttps://5132fc4a29e1cfa921ad-21b0bd21f45f83c83b77a87ffa43cecc.ssl.cf5.rackcdn.com/870115/6/check/neutron-functional-with-uwsgi/be5e94c/testr_results.html\nTimeout on both, maybe 5 sec is too short? (I have not checked logs)","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ba1d01f3a6297a79c4ba81ad68b817fbe2346c89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ca396dfe_a5ae7755","updated":"2023-01-25 23:32:45.000000000","message":"You are getting a failure in one of the functional test cases you added. I left a question in the code","commit_id":"80a7c0ed35b058dc1800472c786f171548b37be6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"913a41b0e2a06ea1d353abc9a734219de42baf5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"29d317f6_0903c549","updated":"2023-01-30 14:13:48.000000000","message":"recheck grenade","commit_id":"adaf04638a3c1cda2d26c613383469be86ba7303"}],"neutron/agent/ovn/agent/ovsdb.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ba1d01f3a6297a79c4ba81ad68b817fbe2346c89","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        return {}"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    net_name \u003d lsp.external_ids[ovn_const.OVN_NETWORK_NAME_EXT_ID_KEY]"},{"line_number":168,"context_line":"    ls \u003d nb_idl.lookup(\u0027Logical_Switch\u0027, net_name)"},{"line_number":169,"context_line":"    for qos_rule in iter(r for r in ls.qos_rules if"},{"line_number":170,"context_line":"                         r.external_ids[ovn_const.OVN_PORT_EXT_ID_KEY]):"},{"line_number":171,"context_line":"        if qos_rule.direction !\u003d \u0027from-lport\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"6492b0ed_81579389","line":168,"updated":"2023-01-25 23:32:45.000000000","message":"Test case test_get_port_qos in your new functional test is failing here. It\u0027s not finding the logical switch. In L167 you get net_name from the lsp\u0027s external_ids key \u0027neutron:network_name\u0027 (https://github.com/openstack/neutron/blob/master/neutron/common/ovn/constants.py#L24). In my local environment, that would return something like \"neutron-7e659653-284a-48dc-a285-a3f363818488\". Can you lookup the logical switch like this?","commit_id":"80a7c0ed35b058dc1800472c786f171548b37be6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bfd04ce155c2c7bd21fc20d2c2d27c55158a8d35","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        return {}"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    net_name \u003d lsp.external_ids[ovn_const.OVN_NETWORK_NAME_EXT_ID_KEY]"},{"line_number":168,"context_line":"    ls \u003d nb_idl.lookup(\u0027Logical_Switch\u0027, net_name)"},{"line_number":169,"context_line":"    for qos_rule in iter(r for r in ls.qos_rules if"},{"line_number":170,"context_line":"                         r.external_ids[ovn_const.OVN_PORT_EXT_ID_KEY]):"},{"line_number":171,"context_line":"        if qos_rule.direction !\u003d \u0027from-lport\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba9be4db_fdee6cfc","line":168,"in_reply_to":"6492b0ed_81579389","updated":"2023-01-26 11:43:51.000000000","message":"FT test fixed. That was a mistake on the \"get_port_qos\" method, fixed in PS8. But this test was incorrectly using the previous version.","commit_id":"80a7c0ed35b058dc1800472c786f171548b37be6"}],"neutron/agent/ovn/extensions/qos_hwol.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"956e8b5001d690dee441b678451cf027ee08f4ee","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"class PortBindingChassisCreatedEvent(_PortBindingChassisEvent):"},{"line_number":160,"context_line":"    LOG_MSG \u003d \u0027Port %s in datapath %s bound to our chassis (event: %s)\u0027"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def __init__(self, ovn_agent):"},{"line_number":163,"context_line":"        events \u003d (self.ROW_UPDATE,)"}],"source_content_type":"text/x-python","patch_set":6,"id":"faacf359_6de70184","line":160,"updated":"2023-01-23 12:37:59.000000000","message":"Nit: This doesn\u0027t seem to be used at all in this class. Only log message being used is L177. \n\nPerhaps we just keep it as a convention with other Event\u0027s classes","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"840a1296d69f12ea7e2e4ed351ed36b0d7b3a3b9","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"class PortBindingChassisCreatedEvent(_PortBindingChassisEvent):"},{"line_number":160,"context_line":"    LOG_MSG \u003d \u0027Port %s in datapath %s bound to our chassis (event: %s)\u0027"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def __init__(self, ovn_agent):"},{"line_number":163,"context_line":"        events \u003d (self.ROW_UPDATE,)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c98aaec6_eaca57db","line":160,"in_reply_to":"faacf359_6de70184","updated":"2023-01-24 09:23:22.000000000","message":"I added a new log message in L177. I\u0027ll remove one.","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"956e8b5001d690dee441b678451cf027ee08f4ee","unresolved":true,"context_lines":[{"line_number":285,"context_line":"            return"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        self._set_device_rate(pr[\u0027pf_name\u0027], pr[\u0027vf_num\u0027],"},{"line_number":288,"context_line":"                              {MAX_TX_RATE: 0, MIN_TX_RATE: 0})"}],"source_content_type":"text/x-python","patch_set":6,"id":"280a51d8_112d0a73","line":288,"updated":"2023-01-23 12:37:59.000000000","message":"Nit: I think it would be good to have some DEBUG/INFO logs in these methods ? Right now nothing gets logged when updating/resetting/removing things","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"840a1296d69f12ea7e2e4ed351ed36b0d7b3a3b9","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            return"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        self._set_device_rate(pr[\u0027pf_name\u0027], pr[\u0027vf_num\u0027],"},{"line_number":288,"context_line":"                              {MAX_TX_RATE: 0, MIN_TX_RATE: 0})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f3aaf24_47837655","line":288,"in_reply_to":"280a51d8_112d0a73","updated":"2023-01-24 09:23:22.000000000","message":"Right, I\u0027ll add it at the beginning of \"_set_device_rate\" method.","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"}],"neutron/tests/functional/agent/ovn/agent/test_ovsdb.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"8a6baa31f2bce2c1d7cb7dbf8e09ddeb49b0e367","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_get_port_qos(self):"},{"line_number":31,"context_line":"        network_id \u003d uuidutils.generate_uuid()"},{"line_number":32,"context_line":"        network_name \u003d ovn_utils.ovn_name(network_id)"},{"line_number":33,"context_line":"        ext_ids \u003d {ovn_const.OVN_NETWORK_NAME_EXT_ID_KEY: network_name}"},{"line_number":34,"context_line":"        ls \u003d self.nb_api.ls_add(network_name).execute(check_error\u003dTrue)"},{"line_number":35,"context_line":"        lsp_name \u003d (\u0027port-\u0027 + uuidutils.generate_uuid())[:15]"}],"source_content_type":"text/x-python","patch_set":9,"id":"2310e9c9_3d65992b","line":32,"updated":"2023-01-26 23:08:15.000000000","message":"Yeah, this fixes the lookup problem","commit_id":"81e7ba6f850525817cd88b9d533d4a4f766f7ab7"}],"releasenotes/notes/ovn-agent-qos-hwol-extension-a282afcf3f005c80.yaml":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"956e8b5001d690dee441b678451cf027ee08f4ee","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added a new OVN Neutron Agent extension: QoS for hardware offloaded ports."},{"line_number":5,"context_line":"    This extension will enforce the minimum bandwidth and maximum bandwidth"},{"line_number":6,"context_line":"    egress QoS rules for ports with hardware offload (DevLink ports). This"},{"line_number":7,"context_line":"    extension uses the \"ip-link\" commands to set the \"ceil\" and \"rate\""},{"line_number":8,"context_line":"    parameters on the corresponding virtual functions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"cde6e3d2_8aab8513","line":5,"range":{"start_line":5,"start_character":36,"end_line":5,"end_character":75},"updated":"2023-01-23 12:37:59.000000000","message":"nit: minimum and maximum bandwidth","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"840a1296d69f12ea7e2e4ed351ed36b0d7b3a3b9","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added a new OVN Neutron Agent extension: QoS for hardware offloaded ports."},{"line_number":5,"context_line":"    This extension will enforce the minimum bandwidth and maximum bandwidth"},{"line_number":6,"context_line":"    egress QoS rules for ports with hardware offload (DevLink ports). This"},{"line_number":7,"context_line":"    extension uses the \"ip-link\" commands to set the \"ceil\" and \"rate\""},{"line_number":8,"context_line":"    parameters on the corresponding virtual functions."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"31818dc3_9e99e228","line":5,"range":{"start_line":5,"start_character":36,"end_line":5,"end_character":75},"in_reply_to":"cde6e3d2_8aab8513","updated":"2023-01-24 09:23:22.000000000","message":"Done","commit_id":"dd32316e8420c402722728a3f272579bbc6f0608"}]}
