)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"1064e0a94912dd0927f1059dbf79ab86d61a21af","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yunxiang Tao \u003ctaoyunxiang@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-21 12:38:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_f72beae6","line":7,"updated":"2020-01-21 08:12:31.000000000","message":"It could be prefixed with [OVN].","commit_id":"99d156d7af67c5a0ff022045ea4eab59531690bc"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9e13169b2c055a1f04026ce5d6dea56cda525699","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yunxiang Tao \u003ctaoyunxiang@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-21 12:38:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_dd904ff6","line":7,"in_reply_to":"3fa7e38b_f72beae6","updated":"2020-01-21 10:24:43.000000000","message":"Done","commit_id":"99d156d7af67c5a0ff022045ea4eab59531690bc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7ada57d1cb63d78e0f991171fc75d651aabf95bd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yunxiang Tao \u003ctaoyunxiang@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-21 21:09:06 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_09f1c96a","line":7,"range":{"start_line":7,"start_character":35,"end_line":7,"end_character":44},"updated":"2020-01-21 14:20:35.000000000","message":"s/networking","commit_id":"3ef4afc3f837c97872a92845a7a9c886d9b5aecc"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"580fabace755da16e757518c0893977d79893efa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yunxiang Tao \u003ctaoyunxiang@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-21 21:09:06 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_1a333bc6","line":7,"range":{"start_line":7,"start_character":35,"end_line":7,"end_character":44},"in_reply_to":"3fa7e38b_09f1c96a","updated":"2020-01-22 01:19:11.000000000","message":"Done","commit_id":"3ef4afc3f837c97872a92845a7a9c886d9b5aecc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7ada57d1cb63d78e0f991171fc75d651aabf95bd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_29f5a552","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":67},"updated":"2020-01-21 14:20:35.000000000","message":"s/ovn_client","commit_id":"3ef4afc3f837c97872a92845a7a9c886d9b5aecc"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"580fabace755da16e757518c0893977d79893efa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_3a38779d","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":67},"in_reply_to":"3fa7e38b_29f5a552","updated":"2020-01-22 01:19:11.000000000","message":"Done","commit_id":"3ef4afc3f837c97872a92845a7a9c886d9b5aecc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f602cca7db4ce0823e3ab9554175e962d1649379","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yunxiang Tao \u003ctaoyunxiang@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-02-04 11:02:26 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from s/networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of s/ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_4061163c","line":7,"range":{"start_line":7,"start_character":35,"end_line":7,"end_character":50},"updated":"2020-02-04 14:30:35.000000000","message":"networking-ovn","commit_id":"406eb3d6b9467f28a99b91017c9befc004b6b559"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f602cca7db4ce0823e3ab9554175e962d1649379","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from s/networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of s/ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_e06fe226","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"updated":"2020-02-04 14:30:35.000000000","message":"why the s/ ?","commit_id":"406eb3d6b9467f28a99b91017c9befc004b6b559"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e839a99cdc5117e999c81600a4b6e6b05047472f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from s/networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of s/ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_b89fcff4","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"in_reply_to":"3fa7e38b_6d2afb2e","updated":"2020-02-05 13:14:18.000000000","message":"that meant to substitute ovn-client.py for what was there, it\u0027s similar to sed notation, the s/ shouldn\u0027t be there","commit_id":"406eb3d6b9467f28a99b91017c9befc004b6b559"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"e69459c37676ae6c7c5dda50e8bccc7059126809","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from s/networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of s/ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_5f28f3eb","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"in_reply_to":"3fa7e38b_b89fcff4","updated":"2020-02-06 03:34:30.000000000","message":"Done. Sorry for misunderstood what you mean. :)","commit_id":"406eb3d6b9467f28a99b91017c9befc004b6b559"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"7752acc0287c1cb21dc398fcc5f4ddae9e59c1ba","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[OVN] Update QoS related code from s/networkig-ovn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In terms of [1], patch [0] has import the lasted code of s/ovn-client.py, but not"},{"line_number":10,"context_line":"\"/networking_ovn/ml2/qos_driver.py\", so this patch will update it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0] https://review.opendev.org/#/c/697316/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_6d2afb2e","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"in_reply_to":"3fa7e38b_e06fe226","updated":"2020-02-05 11:38:54.000000000","message":"Because the commnet[0] from you in Patch Set 3. :)\n\n[0]https://review.opendev.org/#/c/703537/3//COMMIT_MSG@7","commit_id":"406eb3d6b9467f28a99b91017c9befc004b6b559"}],"neutron/services/qos/drivers/ovn/driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                    options[\u0027qos_max_rate\u0027] \u003d str(rule.max_kbps)"},{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_e714269b","line":110,"range":{"start_line":110,"start_character":16,"end_line":110,"end_character":51},"updated":"2020-01-29 14:30:48.000000000","message":"nit: that is understood, this comment is not needed","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"68001686ae8dad2090e5f986916cb4b2ac4db986","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                    options[\u0027qos_max_rate\u0027] \u003d str(rule.max_kbps)"},{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a8800cc0","line":110,"range":{"start_line":110,"start_character":16,"end_line":110,"end_character":51},"in_reply_to":"3fa7e38b_e714269b","updated":"2020-02-03 09:26:13.000000000","message":"Done","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a7786ef6","line":113,"range":{"start_line":113,"start_character":16,"end_line":113,"end_character":39},"updated":"2020-01-29 14:30:48.000000000","message":"ditto","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"68001686ae8dad2090e5f986916cb4b2ac4db986","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_4865d849","line":113,"range":{"start_line":113,"start_character":16,"end_line":113,"end_character":39},"in_reply_to":"3fa7e38b_a7786ef6","updated":"2020-02-03 09:26:13.000000000","message":"Done","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_6757d65a","line":117,"range":{"start_line":114,"start_character":20,"end_line":117,"end_character":55},"updated":"2020-01-29 14:30:48.000000000","message":"BE CAREFUL: this should be indented at the same level of L105. As is now, this condition will never happen.","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_c7f56a53","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":55},"updated":"2020-01-29 14:30:48.000000000","message":"QosDscpMarkingRule does not have direction, is always egress.","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"0af870b80e15242b18be3f9a83de9ac78c3bb1e7","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_271c7e79","line":117,"range":{"start_line":114,"start_character":20,"end_line":117,"end_character":55},"in_reply_to":"3fa7e38b_6757d65a","updated":"2020-01-29 14:33:35.000000000","message":"++","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"68001686ae8dad2090e5f986916cb4b2ac4db986","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_68621444","line":117,"range":{"start_line":114,"start_character":20,"end_line":117,"end_character":55},"in_reply_to":"3fa7e38b_6757d65a","updated":"2020-02-03 09:26:13.000000000","message":"Done","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"722ef5d043e825b82211704273cd0a18da90bad1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_e5bb8d71","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":55},"in_reply_to":"3fa7e38b_c7f56a53","updated":"2020-02-03 07:14:58.000000000","message":"Thanks for your comment. I agree that dscp is always egress. But the API[0] in OVSDBAPP needs direction param, so I put a fixed one for it.  \n\n[0] https://github.com/openstack/ovsdbapp/blob/master/ovsdbapp/schema/ovn_northbound/impl_idl.py#L81","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":117,"context_line":"                        options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":118,"context_line":"        return options"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_beb36209","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":55},"in_reply_to":"3fa7e38b_e5bb8d71","updated":"2020-02-03 11:09:02.000000000","message":"Actually is OVNClient._create_qos_rules the method which needs \u0027direction\u0027. The output of this method is the input of [1].","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                if rule.direction:"},{"line_number":111,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_deb09ee2","line":111,"range":{"start_line":111,"start_character":20,"end_line":111,"end_character":57},"updated":"2020-02-03 11:09:02.000000000","message":"If, as you are saying in PS4, \u0027direction\u0027 is mandatory, we can\u0027t make this parameter optional in the dictionary.\n\nBut this should be addressed in another bug and a new patch. I\u0027ll take care of this.","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"fcc5f8cb6582551a943c6b39bef638259975bdab","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                if rule.direction:"},{"line_number":111,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_9020c3fb","line":111,"range":{"start_line":111,"start_character":20,"end_line":111,"end_character":57},"in_reply_to":"3fa7e38b_deb09ee2","updated":"2020-02-04 03:13:11.000000000","message":"If could,pelease CC to me in next new bug. I am interested in it.  Thanks,  :)","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                if rule.direction:"},{"line_number":111,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":115,"context_line":"                    options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":116,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_beafe27a","line":113,"range":{"start_line":113,"start_character":16,"end_line":113,"end_character":34},"updated":"2020-02-03 11:09:02.000000000","message":"In QosDscpMarkingRule, dscp_mark is a mandatory parameter. This check makes no sense. This should be\n\n  if isinstance(rule, qos_rule.QosDscpMarkingRule):\n    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark\n    options[\u0027direction\u0027] \u003d constants.EGRESS_DIRECTION","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"fcc5f8cb6582551a943c6b39bef638259975bdab","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                if rule.direction:"},{"line_number":111,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":115,"context_line":"                    options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":116,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f08017c1","line":113,"range":{"start_line":113,"start_character":16,"end_line":113,"end_character":34},"in_reply_to":"3fa7e38b_beafe27a","updated":"2020-02-04 03:13:11.000000000","message":"Thanks,done","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":115,"context_line":"                    options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":116,"context_line":"        return options"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_7ec5ea5c","line":115,"range":{"start_line":115,"start_character":43,"end_line":115,"end_character":51},"updated":"2020-02-03 11:09:02.000000000","message":"Please, use neutron_lib.constants.EGRESS_DIRECTION","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"fcc5f8cb6582551a943c6b39bef638259975bdab","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":113,"context_line":"                if rule.dscp_mark:"},{"line_number":114,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"},{"line_number":115,"context_line":"                    options[\u0027direction\u0027] \u003d \u0027egress\u0027"},{"line_number":116,"context_line":"        return options"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def get_qos_options(self, port):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_b0629f40","line":115,"range":{"start_line":115,"start_character":43,"end_line":115,"end_character":51},"in_reply_to":"3fa7e38b_7ec5ea5c","updated":"2020-02-04 03:13:11.000000000","message":"Done","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"}],"neutron/tests/unit/services/qos/drivers/ovn/test_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.policy \u003d self._create_fake_policy()"},{"line_number":67,"context_line":"        self.port \u003d self._create_fake_port()"},{"line_number":68,"context_line":"        self.rule \u003d self._create_bw_limit_rule()"},{"line_number":69,"context_line":"        self.expected \u003d {\u0027direction\u0027: \u0027egress\u0027, \u0027qos_max_rate\u0027: \u00271000\u0027,"},{"line_number":70,"context_line":"                         \u0027qos_burst\u0027: \u0027100000\u0027}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _create_bw_limit_rule(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_47b09a8d","line":69,"range":{"start_line":69,"start_character":8,"end_line":69,"end_character":21},"updated":"2020-01-29 14:30:48.000000000","message":"This is just for maxbw test, you should not add it as a member for all tests.","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"68001686ae8dad2090e5f986916cb4b2ac4db986","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.policy \u003d self._create_fake_policy()"},{"line_number":67,"context_line":"        self.port \u003d self._create_fake_port()"},{"line_number":68,"context_line":"        self.rule \u003d self._create_bw_limit_rule()"},{"line_number":69,"context_line":"        self.expected \u003d {\u0027direction\u0027: \u0027egress\u0027, \u0027qos_max_rate\u0027: \u00271000\u0027,"},{"line_number":70,"context_line":"                         \u0027qos_burst\u0027: \u0027100000\u0027}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _create_bw_limit_rule(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_686c5405","line":69,"range":{"start_line":69,"start_character":8,"end_line":69,"end_character":21},"in_reply_to":"3fa7e38b_47b09a8d","updated":"2020-02-03 09:26:13.000000000","message":"Done","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8510fde49f69ae03ea3f0b0edc2c205c354b8c98","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        rule_obj.max_burst_kbps \u003d 100000"},{"line_number":77,"context_line":"        rule_obj.obj_reset_changes()"},{"line_number":78,"context_line":"        return rule_obj"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _create_fake_policy(self):"},{"line_number":81,"context_line":"        policy_dict \u003d {\u0027id\u0027: self.network_policy_id}"},{"line_number":82,"context_line":"        policy_obj \u003d qos_policy.QosPolicy(context, **policy_dict)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2780fe9b","line":79,"updated":"2020-01-29 14:30:48.000000000","message":"You should add a DSCP test.","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"68001686ae8dad2090e5f986916cb4b2ac4db986","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        rule_obj.max_burst_kbps \u003d 100000"},{"line_number":77,"context_line":"        rule_obj.obj_reset_changes()"},{"line_number":78,"context_line":"        return rule_obj"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _create_fake_policy(self):"},{"line_number":81,"context_line":"        policy_dict \u003d {\u0027id\u0027: self.network_policy_id}"},{"line_number":82,"context_line":"        policy_obj \u003d qos_policy.QosPolicy(context, **policy_dict)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_087920c5","line":79,"in_reply_to":"3fa7e38b_2780fe9b","updated":"2020-02-03 09:26:13.000000000","message":"Done","commit_id":"042d14e286504a2ddf24d23a7992779248762be4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.port \u003d self._create_fake_port()"},{"line_number":68,"context_line":"        self.bw_rule \u003d self._create_bw_limit_rule()"},{"line_number":69,"context_line":"        self.bw_expected \u003d {\u0027direction\u0027: \u0027egress\u0027, \u0027qos_max_rate\u0027: \u00271000\u0027,"},{"line_number":70,"context_line":"                         \u0027qos_burst\u0027: \u0027100000\u0027}"},{"line_number":71,"context_line":"        self.dscp_rule \u003d self._create_dscp_rule()"},{"line_number":72,"context_line":"        self.dscp_expected \u003d {\u0027dscp_mark\u0027: 16, \u0027direction\u0027: \u0027egress\u0027}"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_be1fe258","line":70,"updated":"2020-02-03 11:09:02.000000000","message":"nit: this indentation is weird","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"fcc5f8cb6582551a943c6b39bef638259975bdab","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.port \u003d self._create_fake_port()"},{"line_number":68,"context_line":"        self.bw_rule \u003d self._create_bw_limit_rule()"},{"line_number":69,"context_line":"        self.bw_expected \u003d {\u0027direction\u0027: \u0027egress\u0027, \u0027qos_max_rate\u0027: \u00271000\u0027,"},{"line_number":70,"context_line":"                         \u0027qos_burst\u0027: \u0027100000\u0027}"},{"line_number":71,"context_line":"        self.dscp_rule \u003d self._create_dscp_rule()"},{"line_number":72,"context_line":"        self.dscp_expected \u003d {\u0027dscp_mark\u0027: 16, \u0027direction\u0027: \u0027egress\u0027}"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_105b7389","line":70,"in_reply_to":"3fa7e38b_be1fe258","updated":"2020-02-04 03:13:11.000000000","message":"Done","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c6f4edf0f02bfd21202626600e4df806090646ee","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test__generate_port_options_with_dscp_rule(self):"},{"line_number":135,"context_line":"        self._generate_port_options(self.policy_id, [self.dscp_rule],"},{"line_number":136,"context_line":"                                    self.dscp_expected)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _get_qos_options(self, port, port_policy, network_policy):"},{"line_number":139,"context_line":"        with mock.patch.object(qos_policy.QosPolicy, \u0027get_network_policy\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_3ebbf2be","line":136,"updated":"2020-02-03 11:09:02.000000000","message":"+1 thanks for those new tests.","commit_id":"516bc96d3f5ce72367058d565e1d3e2499ae074d"}]}
