)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"160b7f6547991ba7db1c43ccd30faf81240302ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"72563b8c_fa46999f","updated":"2021-10-11 13:45:25.000000000","message":"Better and better every time I check it :-)\nWhat I miss is the edit policy option and what amotoki commented previously that on the add rule form the qos policy id is shown and name would be (perhaps together with the id) more informative.\nPlease also increase the coverage","commit_id":"b380e128a7f6b02e157280f4e4e45752840fcafb"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3d5be2f3fad3576dfda11501bc4d0d5c07a3ead5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"2e2a786c_dbca92d8","updated":"2021-10-14 10:01:31.000000000","message":"* If I have a policy without rule, in the dropdown list edit is active and I got an error msg that the operation is not available, the \"edit rule\" action (and the \"delet rule\" as well) should be greyed out.\n\n* Shall we have pps rules as well: https://docs.openstack.org/api-ref/network/v2/index.html#qos-packet-rate-limit-rules ? min_pps was merged recently so the API should work.\n\n* I realized that the edit policy action should be in a followup for https://review.opendev.org/c/openstack/horizon/+/799461","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8e0f094d7c06d24f9af43e6d683c5eec198ef5c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"89802ff5_0d93988b","updated":"2021-10-25 10:35:31.000000000","message":"tried latest P.S., Please find below some feedbacks:\n\n• In the \"Add Rule\" form, QoS policy name is missing.\n• In the \"Edit Rule\" form, help message is missing for \"DSCP Rule\".\n• \"QoS policy detail\" view doesn\u0027t show any information about the added rules for now.\n• Could we also skip two-step form for \"Edit Rule\" option and show the editable field on the same form basis on which \"Rule ID\" is selected.","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c25832c54d3e62a7dcdc4e0fabc510b93fe97db4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"ff921c03_615689bd","in_reply_to":"2e2a786c_dbca92d8","updated":"2021-10-14 10:10:05.000000000","message":"not sure if the clients have support for the pps rules already....","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d4cf06b2_f2a7165d","updated":"2021-11-10 12:51:01.000000000","message":"LGTM, will +2 after the below comments are fixed:\n\n• \"QoS policy detail\" view still doesn\u0027t show any information about the added rules with \n  the latest P.S. see https://ibb.co/YN6g4VS\n• Add/Edit/Delete Minimum Packet Rule doesn\u0027t work as of now using horizon because the related \n  attribute is not added in python-neutronclient, maybe work after \n  https://review.opendev.org/c/openstack/python-neutronclient/+/812132 merged.\n• Please add a release note for this patch.\n","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6de9b6a198dd01a06fd60de3516dc1127b0c8531","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"59dc0575_3d634803","updated":"2021-11-11 05:58:26.000000000","message":"One more issue I face with the latest P.S. is below:\n1. Add a policy rule with \u0027minimum_bandwith\u0027 and \u0027dscp_marking\u0027 rule.\n2. then try to edit the rule and edit rule form looks wired and doesn\u0027t work.\n3. See https://ibb.co/KFH36Hb","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"8305634a3c0d05d222cdec37cb035ce2a4ad9f39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"a8b935e3_aed4e6af","in_reply_to":"59dc0575_3d634803","updated":"2021-11-11 07:19:34.000000000","message":"Editing dscp_marking and minimum_banwdith rules are also working fine. Please find the below screenshots links from the latest patch - 18\nhttps://ibb.co/6ychQCB\nhttps://ibb.co/KXmkQXZ\nhttps://ibb.co/G5nWyy2\n\nI will also verify it again.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6de9b6a198dd01a06fd60de3516dc1127b0c8531","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"7cf9ba4e_1fcbc3f9","in_reply_to":"d4cf06b2_f2a7165d","updated":"2021-11-11 05:58:26.000000000","message":"Please ignore my first comment \"Qos policy detail view doesn\u0027t show info. about the added rule\", it is working fine just tested on a new env.\nMaybe some issue with my old env.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"92ea7618abd5633798886bfde8c2f7d14c11e39b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"15d1e96c_b678089a","updated":"2021-11-11 09:34:25.000000000","message":"recheck","commit_id":"1b17ffbc4682d81f6894c0b95caae3e101db6146"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"dd8eb12c5ced37b3943e62bf2098b2f60961fa36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"28fed59a_81222c7d","updated":"2021-11-12 19:19:09.000000000","message":"LGTM to merge, the only issue I observe sometimes \"Edit Rule\" operation\ndoesn\u0027t work properly specifically after adding the \u0027Minimum Bandwidth\u0027 rule.\n\nAfter adding the \u0027Minimum Bandwidth\u0027 rule the edit form looks like https://ibb.co/KFH36Hb\nalthough I have tried it in two different env. but hit the same issue every time.\n\nJust try to add only \u0027Minimum Bandwidth\u0027 rule and then edit and you will hit this issue.\nAlso sometimes if I add a combination of \u0027Minimum Bandwidth\u0027 and \u0027DSCP Marking\u0027 rule and\nthen try to edit hit the same issue.\n\nI\u0027ll keep my vote until someone confirms the above cases are working fine in their env.","commit_id":"c0f52a56a8c57269a314e6be3ac19b19c64a631b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e01e98cea7a36be7042b15e44531d2702eb9775b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"70bac522_d680989b","updated":"2021-11-12 07:27:12.000000000","message":"Thanks for the hard work","commit_id":"c0f52a56a8c57269a314e6be3ac19b19c64a631b"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"1cd77965a9208204eaf558978c2e25fbf75ec006","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"2e238909_eaf9a8f6","in_reply_to":"28fed59a_81222c7d","updated":"2021-11-15 12:17:20.000000000","message":"\u003e LGTM to merge, the only issue I observe sometimes \"Edit Rule\" operation\n\u003e doesn\u0027t work properly specifically after adding the \u0027Minimum Bandwidth\u0027 rule.\n\u003e \n\u003e After adding the \u0027Minimum Bandwidth\u0027 rule the edit form looks like https://ibb.co/KFH36Hb\n\u003e although I have tried it in two different env. but hit the same issue every time.\n\u003e \n\u003e Just try to add only \u0027Minimum Bandwidth\u0027 rule and then edit and you will hit this issue.\n\u003e Also sometimes if I add a combination of \u0027Minimum Bandwidth\u0027 and \u0027DSCP Marking\u0027 rule and\n\u003e then try to edit hit the same issue.\n\u003e \n\u003e I\u0027ll keep my vote until someone confirms the above cases are working fine in their env.\n\n\nI also noticed the minimum-bandwidth \u0026 dscp-mark edit form issues.\nI just fixed the issue.","commit_id":"c0f52a56a8c57269a314e6be3ac19b19c64a631b"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"850a359616e8fd4da0ba8552bfc64fe8be18c4c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"593c9cec_4123d8e4","in_reply_to":"70bac522_d680989b","updated":"2021-11-12 10:30:26.000000000","message":"thank you","commit_id":"c0f52a56a8c57269a314e6be3ac19b19c64a631b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"5c316faa_605cacfa","updated":"2021-11-17 16:27:31.000000000","message":"I just checked the python codes, but many cleanups are required unfortunately.\n\napi/neutron.py and api/rest/neutron.py need test coverages in openstack_dashboard/test/unit/api/test_neutron.py and openstack_dashboard/test/unit/api/rest/test_neutron.py.\n(I found non-working codes for min packet rate. If test codes covers the new code, such thing would not happen.)\n\nI will review JS side and test the patch later soon, but it looks worth dropping review comments now.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"3e72ff8fe4d074328653eb1b4b8ec1174019d4d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"0e3b9de7_edbe4281","updated":"2021-11-16 08:31:46.000000000","message":"Nice Work, LGTM.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"68962494f5f7bc59c533255d2313f109030ffef4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"36e8ddee_68ef94f8","updated":"2021-11-16 10:24:06.000000000","message":"Thanks for the efforts","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"4b0cb0702565a8211b0c171bc8a875d47355b80c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"b94114d8_3201a8d4","updated":"2021-11-16 03:52:51.000000000","message":"recheck","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"e5c7522b00f8dd826fca4e4b09270e8d2d478dca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"5b02d41f_99c39aa6","updated":"2021-11-15 15:53:40.000000000","message":"recheck, as integration job is fixed.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"0be35c6bb37df5022887e6d033c19aefd61256ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"2a66849a_f257c08c","updated":"2021-11-16 06:44:22.000000000","message":"recheck, unable to open error logs for integration job.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"302f07ecae5977b27234123b9cf08f23e6eefcb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a3f99de4_9f69de33","updated":"2021-11-17 16:25:07.000000000","message":"removing my vote as amotoki pointed out this patch still need some cleanup during the horizon\nweekly meeting.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"aabe71d7af22cba17fa8adbc24728fa1aa842fa3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"36062c5d_983156eb","updated":"2021-12-30 11:55:41.000000000","message":"recheck, as integration job is failed.","commit_id":"9f92e7f23886fb7a0317effe4697fc8f928b0d15"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b49159a3db4095e505f5179407125d3c0bdc9be6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"2281a8bc_42402115","updated":"2022-01-06 07:14:19.000000000","message":"recheck","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"abc2bea62e4dffdf23751289dbbf757305c142a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"4140e855_27d82c70","updated":"2022-01-04 12:19:38.000000000","message":"recheck","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"60fcbc0ebbeac9f79388e64aaa15dbbd1acdb201","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"af2c3c2a_f47b18a7","updated":"2022-01-04 09:39:05.000000000","message":"recheck","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e744a333a9a1113e4a9fe2c0d8fa03e7c60cdda5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"fe3c051e_933ff516","updated":"2022-01-04 19:20:16.000000000","message":"recheck","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"315e6184d15ed8f973a58f24c400313af7a6f772","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"3d314ee0_f96cbf90","updated":"2021-12-31 07:22:19.000000000","message":"recheck, as integration job is failed.","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"35e3e703e44759e5b2b86d2fbcadd8f16d731baf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"a83b33f3_dfc4be0b","updated":"2021-12-31 11:28:14.000000000","message":"recheck, as integration job is failed.","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"8e54e4dc5da983372928d5c812afc7e3d655dc41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"336e51af_d15837f8","updated":"2022-01-03 04:10:07.000000000","message":"recheck, as integration job is timeout.","commit_id":"4a986b6734ce4ea8c2e6c4b9421f7367eececcbf"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"d6eab5dbdbb83ee7d7c85125f63afa622ce0d756","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"1bc48fda_19698550","updated":"2022-01-17 09:52:17.000000000","message":"adding review priority for this patch to get more attention.","commit_id":"f8118b3ba8e976150413b35016c2834adde42e8d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e2ad72f7b6d2b133c59440ee1716217165a3cef0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"bf0c9ae1_53e6e9cc","in_reply_to":"1bc48fda_19698550","updated":"2022-01-17 13:27:59.000000000","message":"Thanks Vishal, I had to upload new patch due to lint error (I haven\u0027t worked with javascript recently....)","commit_id":"f8118b3ba8e976150413b35016c2834adde42e8d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b9740790670b7338f35a313a0b28462bb7b2a8a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"e86e42a4_d397350e","updated":"2022-01-24 10:47:05.000000000","message":"I tested it (I added only the \"ANY\" direction for min_pps rule) and it\u0027s ok from usage perspective.","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"79c93b1a_8b9af77e","updated":"2022-02-15 11:47:45.000000000","message":"I tested the patch. It works almost well.\nThere are feedbacks.\n\n---\n\nAfter deleting a policy from QoS policy detail page, \"Page not found\" error is returned.\nIt tries to access an URL like http://localhost:18001/dashboard/dashboard/project/network_qos/.\n\"dashboard/\" is included twice, but it should be something like \"http://localhost:18001/dashboard/project/network_qos\".\nNote that when deleting a policy from the QoS policy table, it works as expected.\n\n---\n\nWhen there is no rule in a QoS policy,\n\"There are no rules to modify.\" and \"There are no rules to delete.\" are shown as error,\nbut they are not \"error\". I believe it should be \"info\".\n\nIdeally, \"Edit Rule\" and \"Delete Rule\" menus should be hidden if there is no rule in a QoS policy.\n\n---\n\nIn the \"Add Rule\" form, the default value of \"Direction\" is \"egress\",\nso it is better to select \"egress\" by default instead of showing a blank.\n\nIn the help text of the \"Add Rule\" form, the minimum packet rule needs to be covered.\n\n---\n\nFeedbacks on label texts.\nI tried to comment them as inline, but I gave it up :p\n\n[Add Rule form]\n\n- QosPolicy ID -\u003e QoS Policy ID\n- QoSPolicy Name -\u003e QoS Policy Name\n- Add Rules -\u003e Rule Type\n\nFor DSCP marking rule,\n\n- DSCP -\u003e DSCP mark\n\nFor Bandwidth Limit rule,\n\n- \"Max Kbps\" -\u003e \"Max bandwidth (in kbps)\"\n- \"Max burst Kbps\" -\u003e \"Max Burst Size (in kbps)\" [The help text uses \"Max burst size\" and I think it is a better label.]\n\nFor minimum packet rate rule,\n\"Min Kbps\" is shown, but at least it should be \"Min Kpps\".\nI think \"Minimum packet rate (in kpps)\" is better and recognized easily.\n\n[Edit Rule form]\n- QoSPolicyId -\u003e QoS Policy ID\n- QoSPolicyName -\u003e QoS Policy Name\n- \"Edit Rules\" -\u003e \"Rule to edit\"\n\n[Delete Rule form]\n- QoSPolicyId -\u003e QoS Policy ID\n- QoSPolicyName -\u003e QoS Policy Name\n- RuleID -\u003e Rule (it contains information other than ID)\n","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"3cf3f496_3b76a7ac","updated":"2022-02-16 05:36:13.000000000","message":"There are many comments carried over from past patch sets (by a gerrit feature) and they make it difficult to review the patch. All of them looks already addressed. I clean them up by this comment. Nothing else are touched.\nHopefully the author mark such comments as \"revolved\" once they are fixed next time.","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cd728447fa0028ecb15e505f0fd6a695a65e918c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"59ff7c84_f175730f","in_reply_to":"0d222719_b58cb642","updated":"2022-02-18 05:41:43.000000000","message":"\u003e For me deleting from policy details page doesn\u0027t throw page not found.\n\nI checked it again. It turns out that the operation I hit the page not found error was \"Delete Policy\" from the policy detail. \"Delete Rule\" works fine.\n\"Delete Policy\" is not what this commit covers. It is a different topic and can be fixed separately.","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"0d222719_b58cb642","in_reply_to":"79c93b1a_8b9af77e","updated":"2022-02-17 12:47:37.000000000","message":"Thanks, I changed the labels, and other small things. You are right the edit/delete action should not be available when there is nothing to edit/delete.\nFor me deleting from policy details page doesn\u0027t throw page not found.\nI try to find somebody in our company who can address the above issue.","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cd728447fa0028ecb15e505f0fd6a695a65e918c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"9b17135f_3cb5ef5a","updated":"2022-02-18 05:41:43.000000000","message":"I tested the latest patch set and it works well.","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e795597752ecca4aa4f3788a8c8190329441aebc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"8ff99f15_6ce5f525","updated":"2022-02-18 05:47:55.000000000","message":"I think the following two points in my comments in the past patch sets can be improved separately.\nThey would be minor improvements and the current version is in a good shape in general.\nThanks,\n\n--\n\n\u003e Ideally, \"Edit Rule\" and \"Delete Rule\" menus should be hidden if there is no rule in a QoS policy.\n\n--\n\n\u003e In the \"Add Rule\" form, the default value of \"Direction\" is \"egress\",\n\u003e so it is better to select \"egress\" by default instead of showing a blank.\n\nIn a second thought, another option is to mark \"Direction\" as required in GUI.\n\"direction\" is an optional field in the neutron API, but users should be careful\non \"direction\" choice when adding a rule, so \"required\" might make sense.\n\nAnyway, it is a bit confusing that \u0027blank\u0027 means \u0027egress\u0027 :p","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8e0dc5ae4e3ee714ae8f163a900969178ce48e83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"f04d33e3_e181f3eb","updated":"2022-02-21 18:27:17.000000000","message":"LGTM, tested the latest P.S. with devstack.\nworking as expected.","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"d036811e6361b75ddf8185945468390aa331e934","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"d19e99b0_15aec392","updated":"2022-02-18 05:34:52.000000000","message":"recheck","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c494e6724f6cef92980f9d9ee0f643f5e7e480e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"3563f9ad_406618ad","updated":"2022-02-17 18:33:00.000000000","message":"recheck\nfailures were not related to this patch","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"fe305b8575e7ecb1b1ad3b6f7c7ed06400a00d0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e6249ede_1ec56115","in_reply_to":"8ff99f15_6ce5f525","updated":"2022-02-18 08:55:21.000000000","message":"One follow-up comment:\n\n\u003e Ideally, \"Edit Rule\" and \"Delete Rule\" menus should be hidden if there is no rule in a QoS policy.\n\nWhile this would be ideal, this behavior is common in horizon Angular-basd pages.\nThere is no need to tackle this as part of the QoS panel implementation.","commit_id":"aa83752f20225c9817196263915ad02b9d823cb7"}],"openstack_dashboard/api/neutron.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":2004,"context_line":"    \"\"\"Create a DSCP Marking rule."},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"    :param request: request context"},{"line_number":2007,"context_line":"    :param policyid: Id of the policy"},{"line_number":2008,"context_line":"    :param dscp_mark: integer"},{"line_number":2009,"context_line":"    :return: A dscp_mark_rule object."},{"line_number":2010,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"6e87775a_7fb190fe","line":2007,"range":{"start_line":2007,"start_character":11,"end_line":2007,"end_character":19},"updated":"2021-08-31 23:20:01.000000000","message":"IMO policy_id looks better here.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":2004,"context_line":"    \"\"\"Create a DSCP Marking rule."},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"    :param request: request context"},{"line_number":2007,"context_line":"    :param policyid: Id of the policy"},{"line_number":2008,"context_line":"    :param dscp_mark: integer"},{"line_number":2009,"context_line":"    :return: A dscp_mark_rule object."},{"line_number":2010,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"545162af_0f1ca764","line":2007,"range":{"start_line":2007,"start_character":11,"end_line":2007,"end_character":19},"in_reply_to":"6e87775a_7fb190fe","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"    :param request: request context"},{"line_number":2007,"context_line":"    :param policyid: Id of the policy"},{"line_number":2008,"context_line":"    :param dscp_mark: integer"},{"line_number":2009,"context_line":"    :return: A dscp_mark_rule object."},{"line_number":2010,"context_line":"    \"\"\""},{"line_number":2011,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"}],"source_content_type":"text/x-python","patch_set":6,"id":"fae6c46c_6890a848","line":2008,"range":{"start_line":2008,"start_character":5,"end_line":2008,"end_character":29},"updated":"2021-08-31 23:20:01.000000000","message":"Should we add reference of possible here [1] ?\nhttps://docs.openstack.org/neutron/latest/admin/config-qos.html#valid-dscp-marks","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"    :param request: request context"},{"line_number":2007,"context_line":"    :param policyid: Id of the policy"},{"line_number":2008,"context_line":"    :param dscp_mark: integer"},{"line_number":2009,"context_line":"    :return: A dscp_mark_rule object."},{"line_number":2010,"context_line":"    \"\"\""},{"line_number":2011,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"}],"source_content_type":"text/x-python","patch_set":6,"id":"6212881f_59ca8720","line":2008,"range":{"start_line":2008,"start_character":5,"end_line":2008,"end_character":29},"in_reply_to":"fae6c46c_6890a848","updated":"2022-02-16 05:36:13.000000000","message":"I don\u0027t think we need to add reference URL one by one. It is natural to refer to the API reference when looking at this file.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":2034,"context_line":""},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":"class MinimumBandwidthRule(NeutronAPIDictWrapper):"},{"line_number":2037,"context_line":"    \"\"\"Wrapper for neutron DSCPMarkingRule.\"\"\""},{"line_number":2038,"context_line":"    def to_dict(self):"},{"line_number":2039,"context_line":"        return self._apidict"},{"line_number":2040,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"77bf2297_30ddc61f","line":2037,"range":{"start_line":2037,"start_character":27,"end_line":2037,"end_character":42},"updated":"2021-08-31 23:20:01.000000000","message":"It needs to be \u0027MinimumBandwidthRule\u0027.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":2034,"context_line":""},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":"class MinimumBandwidthRule(NeutronAPIDictWrapper):"},{"line_number":2037,"context_line":"    \"\"\"Wrapper for neutron DSCPMarkingRule.\"\"\""},{"line_number":2038,"context_line":"    def to_dict(self):"},{"line_number":2039,"context_line":"        return self._apidict"},{"line_number":2040,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e53674bf_315cc44e","line":2037,"range":{"start_line":2037,"start_character":27,"end_line":2037,"end_character":42},"in_reply_to":"77bf2297_30ddc61f","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":2044,"context_line":"    \"\"\"Create a Minimum Bandwidth rule."},{"line_number":2045,"context_line":""},{"line_number":2046,"context_line":"    :param request: request context"},{"line_number":2047,"context_line":"    :param policyid: Id of the policy"},{"line_number":2048,"context_line":"    :param min_kbps: integer"},{"line_number":2049,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2050,"context_line":"    :return: A minimum_bandwidth_rule object."}],"source_content_type":"text/x-python","patch_set":6,"id":"96723f45_fc79e21a","line":2047,"range":{"start_line":2047,"start_character":11,"end_line":2047,"end_character":19},"updated":"2021-08-31 23:20:01.000000000","message":"IMO policy_id looks better here.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":2044,"context_line":"    \"\"\"Create a Minimum Bandwidth rule."},{"line_number":2045,"context_line":""},{"line_number":2046,"context_line":"    :param request: request context"},{"line_number":2047,"context_line":"    :param policyid: Id of the policy"},{"line_number":2048,"context_line":"    :param min_kbps: integer"},{"line_number":2049,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2050,"context_line":"    :return: A minimum_bandwidth_rule object."}],"source_content_type":"text/x-python","patch_set":6,"id":"a48c67a1_0fe47355","line":2047,"range":{"start_line":2047,"start_character":11,"end_line":2047,"end_character":19},"in_reply_to":"96723f45_fc79e21a","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":2085,"context_line":"class BandwidthLimitRule(NeutronAPIDictWrapper):"},{"line_number":2086,"context_line":"    \"\"\"Wrapper for neutron BandwidthLimitRule.\"\"\""},{"line_number":2087,"context_line":"    def to_dict(self):"},{"line_number":2088,"context_line":"        return self._apidict"},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"@profiler.trace"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f5bf08d_3c4ab7dc","line":2088,"updated":"2021-09-14 06:04:15.000000000","message":"This is unnecessary. APIDictWrapper already has the same definition.","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":2085,"context_line":"class BandwidthLimitRule(NeutronAPIDictWrapper):"},{"line_number":2086,"context_line":"    \"\"\"Wrapper for neutron BandwidthLimitRule.\"\"\""},{"line_number":2087,"context_line":"    def to_dict(self):"},{"line_number":2088,"context_line":"        return self._apidict"},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"@profiler.trace"}],"source_content_type":"text/x-python","patch_set":7,"id":"b60e7a55_155458c0","line":2088,"in_reply_to":"7f5bf08d_3c4ab7dc","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":1998,"context_line":""},{"line_number":1999,"context_line":""},{"line_number":2000,"context_line":"@profiler.trace"},{"line_number":2001,"context_line":"def dscp_marking_rule_create(request, qos, **kwargs):"},{"line_number":2002,"context_line":"    \"\"\"Create a DSCP Marking rule."},{"line_number":2003,"context_line":""},{"line_number":2004,"context_line":"    :param request: request context"}],"source_content_type":"text/x-python","patch_set":20,"id":"98f6e51d_31c72216","line":2001,"range":{"start_line":2001,"start_character":38,"end_line":2001,"end_character":41},"updated":"2021-11-17 16:27:31.000000000","message":"I think this refers to QoS policy ID, so I would suggest \"policy_id\" for consistency with policy_* functions.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":1998,"context_line":""},{"line_number":1999,"context_line":""},{"line_number":2000,"context_line":"@profiler.trace"},{"line_number":2001,"context_line":"def dscp_marking_rule_create(request, qos, **kwargs):"},{"line_number":2002,"context_line":"    \"\"\"Create a DSCP Marking rule."},{"line_number":2003,"context_line":""},{"line_number":2004,"context_line":"    :param request: request context"}],"source_content_type":"text/x-python","patch_set":20,"id":"a944a015_2e3a765b","line":2001,"range":{"start_line":2001,"start_character":38,"end_line":2001,"end_character":41},"in_reply_to":"98f6e51d_31c72216","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2009,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"},{"line_number":2010,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2011,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2012,"context_line":"        body[\u0027dscp_marking_rule\u0027].update(kwargs)"},{"line_number":2013,"context_line":"    rule \u003d \u0027dscp_marking_rule\u0027"},{"line_number":2014,"context_line":"    dscp_marking_rule \u003d neutronclient(request)\\"},{"line_number":2015,"context_line":"        .create_dscp_marking_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"8f4a4dfc_9b518876","line":2012,"updated":"2021-11-17 16:27:31.000000000","message":"The above logic sounds a bit tricky.\n\nL.2011 changes \"kwargs\" which is referred in body[\"dscp_marking_rule\"], so the content of body[\"dscp_marking_rule\"] is also updated at the same time. L.2012 is unnecessary.\n\nConsider the following instead of L.2009-2112? I believe it is much clearer than the current one.\n\n  if \u0027tenant_id\u0027 not in kwargs:\n      kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id\n  body \u003d {\u0027dscp_marking_rule\u0027: kwargs}","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2009,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"},{"line_number":2010,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2011,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2012,"context_line":"        body[\u0027dscp_marking_rule\u0027].update(kwargs)"},{"line_number":2013,"context_line":"    rule \u003d \u0027dscp_marking_rule\u0027"},{"line_number":2014,"context_line":"    dscp_marking_rule \u003d neutronclient(request)\\"},{"line_number":2015,"context_line":"        .create_dscp_marking_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"68570af7_2794c3cd","line":2012,"in_reply_to":"8f4a4dfc_9b518876","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2017,"context_line":""},{"line_number":2018,"context_line":""},{"line_number":2019,"context_line":"@profiler.trace"},{"line_number":2020,"context_line":"def dscp_marking_rule_update(request, qos_policy, qos_rule, **kwargs):"},{"line_number":2021,"context_line":"    \"\"\"Update a DSCP Marking Limit Rule.\"\"\""},{"line_number":2022,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"},{"line_number":2023,"context_line":"    ruleType \u003d \u0027dscp_marking_rule\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"76f3022b_5e202c68","line":2020,"updated":"2021-11-17 16:27:31.000000000","message":"Consider including \"_id\" as parameter names to clarify ID is passed.\n\n- policy_id\n- rule_id","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2017,"context_line":""},{"line_number":2018,"context_line":""},{"line_number":2019,"context_line":"@profiler.trace"},{"line_number":2020,"context_line":"def dscp_marking_rule_update(request, qos_policy, qos_rule, **kwargs):"},{"line_number":2021,"context_line":"    \"\"\"Update a DSCP Marking Limit Rule.\"\"\""},{"line_number":2022,"context_line":"    body \u003d {\u0027dscp_marking_rule\u0027: kwargs}"},{"line_number":2023,"context_line":"    ruleType \u003d \u0027dscp_marking_rule\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"1185f4f2_cdb43738","line":2020,"in_reply_to":"76f3022b_5e202c68","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2026,"context_line":"    return DSCPMarkingRule(dscpmarking_update)"},{"line_number":2027,"context_line":""},{"line_number":2028,"context_line":""},{"line_number":2029,"context_line":"def dscp_marking_rule_delete(request, policy, rule):"},{"line_number":2030,"context_line":"    \"\"\"Deletes a DSCP Marking Rule.\"\"\""},{"line_number":2031,"context_line":"    neutronclient(request).delete_dscp_marking_rule(rule, policy)"},{"line_number":2032,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"c5f26da3_a154e94b","line":2029,"updated":"2021-11-17 16:27:31.000000000","message":"same as the above.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2026,"context_line":"    return DSCPMarkingRule(dscpmarking_update)"},{"line_number":2027,"context_line":""},{"line_number":2028,"context_line":""},{"line_number":2029,"context_line":"def dscp_marking_rule_delete(request, policy, rule):"},{"line_number":2030,"context_line":"    \"\"\"Deletes a DSCP Marking Rule.\"\"\""},{"line_number":2031,"context_line":"    neutronclient(request).delete_dscp_marking_rule(rule, policy)"},{"line_number":2032,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"e0272fd4_64da720a","line":2029,"in_reply_to":"c5f26da3_a154e94b","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2045,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2046,"context_line":"    :return: A minimum_bandwidth_rule object."},{"line_number":2047,"context_line":"    \"\"\""},{"line_number":2048,"context_line":"    body \u003d {\u0027minimum_bandwidth_rule\u0027: kwargs}"},{"line_number":2049,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2050,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2051,"context_line":"        body[\u0027minimum_bandwidth_rule\u0027].update(kwargs)"},{"line_number":2052,"context_line":"    rule \u003d \u0027minimum_bandwidth_rule\u0027"},{"line_number":2053,"context_line":"    minimum_bandwidth_rule \u003d neutronclient(request)\\"},{"line_number":2054,"context_line":"        .create_minimum_bandwidth_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"cdf54b40_34ac1dd5","line":2051,"range":{"start_line":2048,"start_character":4,"end_line":2051,"end_character":53},"updated":"2021-11-17 16:27:31.000000000","message":"Same comment as for DSCP rule.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2045,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2046,"context_line":"    :return: A minimum_bandwidth_rule object."},{"line_number":2047,"context_line":"    \"\"\""},{"line_number":2048,"context_line":"    body \u003d {\u0027minimum_bandwidth_rule\u0027: kwargs}"},{"line_number":2049,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2050,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2051,"context_line":"        body[\u0027minimum_bandwidth_rule\u0027].update(kwargs)"},{"line_number":2052,"context_line":"    rule \u003d \u0027minimum_bandwidth_rule\u0027"},{"line_number":2053,"context_line":"    minimum_bandwidth_rule \u003d neutronclient(request)\\"},{"line_number":2054,"context_line":"        .create_minimum_bandwidth_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"b774c209_9862ad40","line":2051,"range":{"start_line":2048,"start_character":4,"end_line":2051,"end_character":53},"in_reply_to":"cdf54b40_34ac1dd5","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"    \"\"\"Update a Minimum Bandwidth rule."},{"line_number":2061,"context_line":""},{"line_number":2062,"context_line":"    :param request: request context"},{"line_number":2063,"context_line":"    :param policy_id: Id of the policy"},{"line_number":2064,"context_line":"    :param min_kbps: integer"},{"line_number":2065,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2066,"context_line":"    :return: A minimum_bandwidth_rule object."}],"source_content_type":"text/x-python","patch_set":20,"id":"628dc7b0_996f6f49","line":2063,"range":{"start_line":2063,"start_character":11,"end_line":2063,"end_character":20},"updated":"2021-11-17 16:27:31.000000000","message":"qos_policy? It does not match the actual parameter names.\n\nId -\u003e ID","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2060,"context_line":"    \"\"\"Update a Minimum Bandwidth rule."},{"line_number":2061,"context_line":""},{"line_number":2062,"context_line":"    :param request: request context"},{"line_number":2063,"context_line":"    :param policy_id: Id of the policy"},{"line_number":2064,"context_line":"    :param min_kbps: integer"},{"line_number":2065,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2066,"context_line":"    :return: A minimum_bandwidth_rule object."}],"source_content_type":"text/x-python","patch_set":20,"id":"a662c415_845fe37d","line":2063,"range":{"start_line":2063,"start_character":11,"end_line":2063,"end_character":20},"in_reply_to":"628dc7b0_996f6f49","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":2093,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2094,"context_line":"    :return: A bandwidth_limit_rule object."},{"line_number":2095,"context_line":"    \"\"\""},{"line_number":2096,"context_line":"    body \u003d {\u0027bandwidth_limit_rule\u0027: kwargs}"},{"line_number":2097,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2098,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2099,"context_line":"        body[\u0027bandwidth_limit_rule\u0027].update(kwargs)"},{"line_number":2100,"context_line":"    rule \u003d \u0027bandwidth_limit_rule\u0027"},{"line_number":2101,"context_line":"    bandwidth_limit_rule \u003d neutronclient(request)\\"},{"line_number":2102,"context_line":"        .create_bandwidth_limit_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"c272f746_692da5d0","line":2099,"range":{"start_line":2096,"start_character":3,"end_line":2099,"end_character":51},"updated":"2021-11-17 16:27:31.000000000","message":"Same comment as for DSCP rule.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":2093,"context_line":"    :param direction: string (egress or ingress)"},{"line_number":2094,"context_line":"    :return: A bandwidth_limit_rule object."},{"line_number":2095,"context_line":"    \"\"\""},{"line_number":2096,"context_line":"    body \u003d {\u0027bandwidth_limit_rule\u0027: kwargs}"},{"line_number":2097,"context_line":"    if \u0027tenant_id\u0027 not in kwargs:"},{"line_number":2098,"context_line":"        kwargs[\u0027tenant_id\u0027] \u003d request.user.project_id"},{"line_number":2099,"context_line":"        body[\u0027bandwidth_limit_rule\u0027].update(kwargs)"},{"line_number":2100,"context_line":"    rule \u003d \u0027bandwidth_limit_rule\u0027"},{"line_number":2101,"context_line":"    bandwidth_limit_rule \u003d neutronclient(request)\\"},{"line_number":2102,"context_line":"        .create_bandwidth_limit_rule(qos, body).get(rule)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7b9463c1_62b0bd2a","line":2099,"range":{"start_line":2096,"start_character":3,"end_line":2099,"end_character":51},"in_reply_to":"c272f746_692da5d0","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"}],"openstack_dashboard/api/rest/neutron.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":"@urls.register"},{"line_number":336,"context_line":"class MinimumBandwidthRules(generic.View):"},{"line_number":337,"context_line":"    \"\"\"API for DSCP Marking Rule\"\"\""},{"line_number":338,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)/minimum_bandwidth_rules/$\u0027"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"b50c09fe_1e26a37e","line":337,"range":{"start_line":337,"start_character":15,"end_line":337,"end_character":27},"updated":"2021-08-31 23:20:01.000000000","message":"Isn\u0027t need to be Minimum Bandwidth?","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":"@urls.register"},{"line_number":336,"context_line":"class MinimumBandwidthRules(generic.View):"},{"line_number":337,"context_line":"    \"\"\"API for DSCP Marking Rule\"\"\""},{"line_number":338,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)/minimum_bandwidth_rules/$\u0027"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf5b2f3b_0e6a384b","line":337,"range":{"start_line":337,"start_character":15,"end_line":337,"end_character":27},"in_reply_to":"b50c09fe_1e26a37e","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":350,"context_line":""},{"line_number":351,"context_line":"@urls.register"},{"line_number":352,"context_line":"class MinimumBandwidthRule(generic.View):"},{"line_number":353,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":354,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":355,"context_line":"        + \u0027/minimum_bandwidth_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"971a7490_9c140f61","line":353,"range":{"start_line":353,"start_character":15,"end_line":353,"end_character":25},"updated":"2021-08-31 23:20:01.000000000","message":"Isn\u0027t need to be Minimum Bandwidth for Update and Delete Rule?","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":350,"context_line":""},{"line_number":351,"context_line":"@urls.register"},{"line_number":352,"context_line":"class MinimumBandwidthRule(generic.View):"},{"line_number":353,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":354,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":355,"context_line":"        + \u0027/minimum_bandwidth_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"0600f0ff_208bc49a","line":353,"range":{"start_line":353,"start_character":15,"end_line":353,"end_character":25},"in_reply_to":"971a7490_9c140f61","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"@urls.register"},{"line_number":402,"context_line":"class BandwidthLimitRules(generic.View):"},{"line_number":403,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":404,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)/bandwidth_limit_rules/$\u0027"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bb69621b_97bdf805","line":403,"range":{"start_line":403,"start_character":15,"end_line":403,"end_character":25},"updated":"2021-08-31 23:20:01.000000000","message":"needs to be -\u003eBandwidth Limit","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"@urls.register"},{"line_number":402,"context_line":"class BandwidthLimitRules(generic.View):"},{"line_number":403,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":404,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)/bandwidth_limit_rules/$\u0027"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"b98461de_00c77661","line":403,"range":{"start_line":403,"start_character":15,"end_line":403,"end_character":25},"in_reply_to":"bb69621b_97bdf805","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"@urls.register"},{"line_number":418,"context_line":"class BandwidthLimitRule(generic.View):"},{"line_number":419,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":420,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":421,"context_line":"        + \u0027/bandwidth_limit_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9c6f091e_7c5af44d","line":419,"range":{"start_line":419,"start_character":15,"end_line":419,"end_character":25},"updated":"2021-08-31 23:20:01.000000000","message":"It needs to be -\u003e Bandwidth Limit Update and delete","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"@urls.register"},{"line_number":418,"context_line":"class BandwidthLimitRule(generic.View):"},{"line_number":419,"context_line":"    \"\"\"API for QoS Policy Rule\"\"\""},{"line_number":420,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":421,"context_line":"        + \u0027/bandwidth_limit_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"24ee63ce_f47d48bc","line":419,"range":{"start_line":419,"start_character":15,"end_line":419,"end_character":25},"in_reply_to":"9c6f091e_7c5af44d","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":340,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":341,"context_line":"    def post(self, req, id):"},{"line_number":342,"context_line":"        minimum_bandwidth_rule \u003d api.neutron\\"},{"line_number":343,"context_line":"            .minimum_bandwidth_rule_create(req, id, **req.DATA)"},{"line_number":344,"context_line":"        return rest_utils.CreatedResponse("},{"line_number":345,"context_line":"            \u0027/api/neutron/qospolicies/minimumbandwidthrules/%s\u0027"},{"line_number":346,"context_line":"            % minimum_bandwidth_rule.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3411bcd1_6d7b2006","line":343,"updated":"2021-09-14 06:04:15.000000000","message":"We don\u0027t use a backslash to wrap lines as much as possible.\nIn this case, the suggestion would be:\n\n  minimum_bandwidth_rule \u003d api.neutron.minimum_bandwidth_rule_create(\n      req, id, **req.DATA)","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":341,"context_line":"    def post(self, req, id):"},{"line_number":342,"context_line":"        minimum_bandwidth_rule \u003d api.neutron\\"},{"line_number":343,"context_line":"            .minimum_bandwidth_rule_create(req, id, **req.DATA)"},{"line_number":344,"context_line":"        return rest_utils.CreatedResponse("},{"line_number":345,"context_line":"            \u0027/api/neutron/qospolicies/minimumbandwidthrules/%s\u0027"},{"line_number":346,"context_line":"            % minimum_bandwidth_rule.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"04d664b4_34590adc","line":343,"in_reply_to":"3411bcd1_6d7b2006","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":352,"context_line":"class MinimumBandwidthRule(generic.View):"},{"line_number":353,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":354,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":355,"context_line":"        + \u0027/minimum_bandwidth_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":358,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"322a338c_2d565051","line":355,"updated":"2021-09-14 06:04:15.000000000","message":"- Use parentheses to wrap lines instead of a backslash.\n- Could you consider renaming the paremeters (id and rid) to more readable names like policy_id and rule_id?","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":352,"context_line":"class MinimumBandwidthRule(generic.View):"},{"line_number":353,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":354,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":355,"context_line":"        + \u0027/minimum_bandwidth_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":358,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"a263142a_88dff6c2","line":355,"in_reply_to":"322a338c_2d565051","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":358,"context_line":"    def patch(self, req, id, rid):"},{"line_number":359,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":360,"context_line":"        return api.neutron\\"},{"line_number":361,"context_line":"            .minimum_bandwidth_rule_update(req, id, rid, **req.DATA)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    @rest_utils.ajax()"},{"line_number":364,"context_line":"    def delete(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"95fb9834_44efa7ec","line":361,"updated":"2021-09-14 06:04:15.000000000","message":"Same as for L.343","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    def patch(self, req, id, rid):"},{"line_number":359,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":360,"context_line":"        return api.neutron\\"},{"line_number":361,"context_line":"            .minimum_bandwidth_rule_update(req, id, rid, **req.DATA)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    @rest_utils.ajax()"},{"line_number":364,"context_line":"    def delete(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"212451e2_30fa7581","line":361,"in_reply_to":"95fb9834_44efa7ec","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":386,"context_line":"    \"\"\"API for DSCP Marking Rule Delete and Update\"\"\""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":389,"context_line":"        + \u0027/dscp_marking_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":392,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"a5907329_1568df0b","line":389,"updated":"2021-09-14 06:04:15.000000000","message":"See L.355","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":386,"context_line":"    \"\"\"API for DSCP Marking Rule Delete and Update\"\"\""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":389,"context_line":"        + \u0027/dscp_marking_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":392,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"968cfb45_0ef350e5","line":389,"in_reply_to":"a5907329_1568df0b","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":418,"context_line":"class BandwidthLimitRule(generic.View):"},{"line_number":419,"context_line":"    \"\"\"API for Bandwidth Limit Rule Update and Delete\"\"\""},{"line_number":420,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":421,"context_line":"        + \u0027/bandwidth_limit_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":424,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"f47bc660_da43157c","line":421,"updated":"2021-09-14 06:04:15.000000000","message":"See L.355","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":418,"context_line":"class BandwidthLimitRule(generic.View):"},{"line_number":419,"context_line":"    \"\"\"API for Bandwidth Limit Rule Update and Delete\"\"\""},{"line_number":420,"context_line":"    url_regex \u003d r\u0027neutron/qos/policies/(?P\u003cid\u003e[^/]+)\u0027\\"},{"line_number":421,"context_line":"        + \u0027/bandwidth_limit_rules/(?P\u003crid\u003e[^/]+)$\u0027"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":424,"context_line":"    def patch(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"e889f98e_0620a383","line":421,"in_reply_to":"f47bc660_da43157c","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":424,"context_line":"    def patch(self, req, id, rid):"},{"line_number":425,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":426,"context_line":"        return api.neutron\\"},{"line_number":427,"context_line":"            .bandwidth_limit_rule_update(req, id, rid, **req.DATA)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    @rest_utils.ajax()"},{"line_number":430,"context_line":"    def delete(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9d3189b2_dbdec005","line":427,"updated":"2021-09-14 06:04:15.000000000","message":"Same as for L.343","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":424,"context_line":"    def patch(self, req, id, rid):"},{"line_number":425,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":426,"context_line":"        return api.neutron\\"},{"line_number":427,"context_line":"            .bandwidth_limit_rule_update(req, id, rid, **req.DATA)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    @rest_utils.ajax()"},{"line_number":430,"context_line":"    def delete(self, req, id, rid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"aaa50cba_49efa30b","line":427,"in_reply_to":"9d3189b2_dbdec005","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"fa02d13c10aeb7bc5d669b3b6934fbe3beb34a25"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":337,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":338,"context_line":"    url_regex \u003d ("},{"line_number":339,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":340,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_bandwidth_rules/$\u0027)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":343,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf1ac0b4_a16f7d26","line":340,"range":{"start_line":340,"start_character":8,"end_line":340,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"\"r\" prefix is required in the second string too.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":338,"context_line":"    url_regex \u003d ("},{"line_number":339,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":340,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_bandwidth_rules/$\u0027)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":343,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa555557_63f4efec","line":340,"range":{"start_line":340,"start_character":8,"end_line":340,"end_character":9},"in_reply_to":"bf1ac0b4_a16f7d26","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":355,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":356,"context_line":"    url_regex \u003d ("},{"line_number":357,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":358,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_bandwidth_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"},{"line_number":359,"context_line":"    )"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ca9d9154_6ba9be5a","line":358,"range":{"start_line":358,"start_character":8,"end_line":358,"end_character":10},"updated":"2021-11-17 16:27:31.000000000","message":"r\u0027...\u0027","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    \"\"\"API for Minimum Bandwidth Rule\"\"\""},{"line_number":356,"context_line":"    url_regex \u003d ("},{"line_number":357,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":358,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_bandwidth_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"},{"line_number":359,"context_line":"    )"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"74d03e30_b9bacd2e","line":358,"range":{"start_line":358,"start_character":8,"end_line":358,"end_character":10},"in_reply_to":"ca9d9154_6ba9be5a","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":362,"context_line":"    def patch(self, req, policy_id, rule_id):"},{"line_number":363,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":364,"context_line":"        return api.neutron.minimum_bandwidth_rule_update("},{"line_number":365,"context_line":"            req, policy_id, rule_id, **req.DATA)"},{"line_number":366,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"549a1560_4d088181","line":363,"updated":"2021-11-17 16:27:31.000000000","message":"Only patch() has docstring. Could you make all functions consistent, all or nothing?","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":362,"context_line":"    def patch(self, req, policy_id, rule_id):"},{"line_number":363,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":364,"context_line":"        return api.neutron.minimum_bandwidth_rule_update("},{"line_number":365,"context_line":"            req, policy_id, rule_id, **req.DATA)"},{"line_number":366,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"90a5ff90_0ee6e0cd","line":363,"in_reply_to":"39568d7e_0b850795","updated":"2022-02-17 12:47:37.000000000","message":"I added docstring to all methods to be on the safe side :-)","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":362,"context_line":"    def patch(self, req, policy_id, rule_id):"},{"line_number":363,"context_line":"        \"\"\"Update a qos policy rule.\"\"\""},{"line_number":364,"context_line":"        return api.neutron.minimum_bandwidth_rule_update("},{"line_number":365,"context_line":"            req, policy_id, rule_id, **req.DATA)"},{"line_number":366,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"39568d7e_0b850795","line":363,"in_reply_to":"549a1560_4d088181","updated":"2022-02-15 11:47:45.000000000","message":"nit (again): Why do you have docstring only for patch()?","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":374,"context_line":"    \"\"\"API for DSCP Marking Rule\"\"\""},{"line_number":375,"context_line":"    url_regex \u003d ("},{"line_number":376,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":377,"context_line":"        \u0027/dscp_marking_rules/$\u0027)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":380,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"4d74443e_9c37089c","line":377,"range":{"start_line":377,"start_character":8,"end_line":377,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":374,"context_line":"    \"\"\"API for DSCP Marking Rule\"\"\""},{"line_number":375,"context_line":"    url_regex \u003d ("},{"line_number":376,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":377,"context_line":"        \u0027/dscp_marking_rules/$\u0027)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":380,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"dd781ab9_b4115323","line":377,"range":{"start_line":377,"start_character":8,"end_line":377,"end_character":9},"in_reply_to":"4d74443e_9c37089c","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":392,"context_line":"    \"\"\"API for DSCP Marking Rule Delete and Update\"\"\""},{"line_number":393,"context_line":"    url_regex \u003d ("},{"line_number":394,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":395,"context_line":"        \u0027/dscp_marking_rules/(?P\u003crule_id\u003e[^/]+)$\u0027)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":398,"context_line":"    def patch(self, req, policy_id, rule_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"d12e0522_609deefc","line":395,"range":{"start_line":395,"start_character":8,"end_line":395,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto  r\u0027...\u0027","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":392,"context_line":"    \"\"\"API for DSCP Marking Rule Delete and Update\"\"\""},{"line_number":393,"context_line":"    url_regex \u003d ("},{"line_number":394,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":395,"context_line":"        \u0027/dscp_marking_rules/(?P\u003crule_id\u003e[^/]+)$\u0027)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":398,"context_line":"    def patch(self, req, policy_id, rule_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"4e4c4ba4_d3f56577","line":395,"range":{"start_line":395,"start_character":8,"end_line":395,"end_character":9},"in_reply_to":"d12e0522_609deefc","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":410,"context_line":"    \"\"\"API for Bandwidth Limit Rule\"\"\""},{"line_number":411,"context_line":"    url_regex \u003d ("},{"line_number":412,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":413,"context_line":"        \u0027/bandwidth_limit_rules/$\u0027"},{"line_number":414,"context_line":"    )"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"e01fd607_9df366c1","line":413,"range":{"start_line":413,"start_character":8,"end_line":413,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":410,"context_line":"    \"\"\"API for Bandwidth Limit Rule\"\"\""},{"line_number":411,"context_line":"    url_regex \u003d ("},{"line_number":412,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":413,"context_line":"        \u0027/bandwidth_limit_rules/$\u0027"},{"line_number":414,"context_line":"    )"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5411da7e_2bd9bfd2","line":413,"range":{"start_line":413,"start_character":8,"end_line":413,"end_character":9},"in_reply_to":"e01fd607_9df366c1","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":429,"context_line":"    \"\"\"API for Bandwidth Limit Rule Update and Delete\"\"\""},{"line_number":430,"context_line":"    url_regex \u003d ("},{"line_number":431,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":432,"context_line":"        \u0027/bandwidth_limit_rules/(?P\u003crule_id\u003e[^/]+)$\u0027)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":435,"context_line":"    def patch(self, req, policy_id, rule_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"3b23ec92_555f4c18","line":432,"range":{"start_line":432,"start_character":8,"end_line":432,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":429,"context_line":"    \"\"\"API for Bandwidth Limit Rule Update and Delete\"\"\""},{"line_number":430,"context_line":"    url_regex \u003d ("},{"line_number":431,"context_line":"        r\u0027neutron/qos/policies/(?P\u003cpolicy_id\u003e[^/]+)\u0027 +"},{"line_number":432,"context_line":"        \u0027/bandwidth_limit_rules/(?P\u003crule_id\u003e[^/]+)$\u0027)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":435,"context_line":"    def patch(self, req, policy_id, rule_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"e0a550bf_ea51f1fc","line":432,"range":{"start_line":432,"start_character":8,"end_line":432,"end_character":9},"in_reply_to":"3b23ec92_555f4c18","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"8ca2734b_4c11eda9","line":444,"updated":"2021-11-17 16:27:31.000000000","message":"Could you drop the classes related to min packet rate?\nAPI functions for min packet rate are not found in api/neutron.py and python-neutronclient python bindings, so these classes would not work.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"817116d6_f71faad8","line":444,"in_reply_to":"315ba388_f43825d9","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"a297bb0c_5d4e5f7b","line":444,"in_reply_to":"315ba388_f43825d9","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"05608fd3855fb63700879230720b56a082b8fa95","unresolved":true,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"cfb644ae_85d33cd3","line":444,"in_reply_to":"81e37a26_85a772db","updated":"2021-11-17 16:52:52.000000000","message":"The development of min packet rate is not a trivial work as a whole, so my current suggestion is to split the support of min packet rate into a separate patch.\nI don\u0027t think it is a good idea to wait for the completion of the min packet rate feature.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e8bf4caba2874adbb4c2d052ea857770c15fd3da","unresolved":true,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"81e37a26_85a772db","line":444,"in_reply_to":"8ca2734b_4c11eda9","updated":"2021-11-17 16:46:27.000000000","message":"I missed min packet rate code in api/neutron.py somehow,\nbut I am still against merging a code under development in a backend service (neutron). We never merged non-working codes so far.\nIf a patch depends on some feature under development, please use Depeends-On in the commit message. Otherwise, we assume features available in backend services when we merge the patch.","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"36cc1ffd06be475b73df0e35ec66273a9cd5059c","unresolved":true,"context_lines":[{"line_number":441,"context_line":"    def delete(self, req, policy_id, rule_id):"},{"line_number":442,"context_line":"        api.neutron.bandwidth_limit_rule_delete(req, policy_id, rule_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"@urls.register"},{"line_number":446,"context_line":"class MinimumPacketRateRules(generic.View):"},{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"315ba388_f43825d9","line":444,"in_reply_to":"cfb644ae_85d33cd3","updated":"2021-11-19 09:23:46.000000000","message":"the client code for min pps is here waiting for review: https://review.opendev.org/c/openstack/python-neutronclient/+/812132\n\nBut sure, perhaps this patch can be split to have min pps in a separated patch","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":448,"context_line":"    url_regex \u003d ("},{"line_number":449,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":450,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/$\u0027)"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":453,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"c61ee47d_1cd51698","line":450,"range":{"start_line":450,"start_character":8,"end_line":450,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":447,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":448,"context_line":"    url_regex \u003d ("},{"line_number":449,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":450,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/$\u0027)"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"},{"line_number":453,"context_line":"    def post(self, req, policy_id):"}],"source_content_type":"text/x-python","patch_set":20,"id":"2de6a5bf_74d228dd","line":450,"range":{"start_line":450,"start_character":8,"end_line":450,"end_character":9},"in_reply_to":"c61ee47d_1cd51698","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e82e724539d7f87b1d9b312d71ef57a3b4d14d6b","unresolved":true,"context_lines":[{"line_number":465,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":466,"context_line":"    url_regex \u003d ("},{"line_number":467,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":468,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"},{"line_number":469,"context_line":"    )"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"4ac7164b_9366fc03","line":468,"range":{"start_line":468,"start_character":8,"end_line":468,"end_character":9},"updated":"2021-11-17 16:27:31.000000000","message":"ditto","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"6ccba6c3a1455c239f58962c75010e0e0973974a","unresolved":false,"context_lines":[{"line_number":465,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":466,"context_line":"    url_regex \u003d ("},{"line_number":467,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":468,"context_line":"        \u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"},{"line_number":469,"context_line":"    )"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    @rest_utils.ajax(data_required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"a8a224b9_217c12bc","line":468,"range":{"start_line":468,"start_character":8,"end_line":468,"end_character":9},"in_reply_to":"4ac7164b_9366fc03","updated":"2021-11-22 12:40:05.000000000","message":"Done","commit_id":"b171fc3a20ead1ec68a2b80d736fa2c473d6f850"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"@urls.register"},{"line_number":464,"context_line":"class MinimumPacketRateRule(generic.View):"},{"line_number":465,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":466,"context_line":"    url_regex \u003d ("},{"line_number":467,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":468,"context_line":"        r\u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"b990622e_1e25b438","line":465,"range":{"start_line":465,"start_character":4,"end_line":465,"end_character":42},"updated":"2022-02-15 11:47:45.000000000","message":"nit: For consistency with other classes, perhaps you want to add \"Update and Delete\".","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"@urls.register"},{"line_number":464,"context_line":"class MinimumPacketRateRule(generic.View):"},{"line_number":465,"context_line":"    \"\"\"API for Minimum Packet Rate Rule\"\"\""},{"line_number":466,"context_line":"    url_regex \u003d ("},{"line_number":467,"context_line":"        r\u0027neutron/qos/policies/\u0027 +"},{"line_number":468,"context_line":"        r\u0027(?P\u003cpolicy_id\u003e[^/]+)/minimum_packet_rate_rules/(?P\u003crule_id\u003e[^/]+)$\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"647f2439_51fea769","line":465,"range":{"start_line":465,"start_character":4,"end_line":465,"end_character":42},"in_reply_to":"b990622e_1e25b438","updated":"2022-02-17 12:47:37.000000000","message":"Done","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"}],"openstack_dashboard/static/app/core/network_qos/actions/add-rule.action.service.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"621c1dec_ff72b227","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"updated":"2021-08-31 23:20:01.000000000","message":"right now if I try to add a new rule in horizon using \u0027minimum-bandwidth\u0027 type and didn\u0027t pass the \u0027direction\u0027 field it takes egress as default argument which is wrong because if I do the same with cli got an error i.e. ``Create\" rule command for type \"minimum-bandwidth\" requires arguments: direction, min_kbps``.\nAlso you should add * for \u0027min_kbps\u0027 and \u0027direction\u0027 filed as these are mandatory field and submit button shouldn\u0027t be visible until user fill these filed.\nPlease correct me if I am wrong?\n\nCommand I use in cli to add minimum-bandwidth rule is ``openstack network qos rule create --type minimum-bandwidth  --min-kbps 1000 test``","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"4229fbff_b92b24ca","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"in_reply_to":"52d27c57_c7b86fb1","updated":"2022-02-16 05:36:13.000000000","message":"The latest patch set behaves as the neutron API does and we seem to have no more comment. (Gerrit provides a feature to carry over unresolved comments. I am marking this as resolved to clarify unresolved comments in the latest patch set.)","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"014e42e8a24b34a87cbb328ae83ec6fdfb8c6b2a","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"e34071e8_3e3c772a","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"in_reply_to":"621c1dec_ff72b227","updated":"2021-09-01 09:12:52.000000000","message":"This comment is really important, and to tell the truth don\u0027t know the solution:-)\nThe Networking api-ref (see [0]) says that the direction is optional and the default direction is EGRESS (see [1]) but the CLI will fail if direction is not specified, not sure what rule to follow.\n\n[0]: https://docs.openstack.org/api-ref/network/v2/index.html?expanded\u003dcreate-minimum-bandwidth-rule-detail\n[1]: https://opendev.org/openstack/neutron-lib/src/branch/master/neutron_lib/api/definitions/qos.py#L164","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"2cb46066d7ba8005d1598f3d212d0992fe8c100e","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"ebbfb15b_d2edaad3","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"in_reply_to":"e34071e8_3e3c772a","updated":"2021-09-02 09:29:58.000000000","message":"Hi Lajos, IMO we should have the same behavior in CLI and horizon.\nI also confused when I look at api-ref, maybe networking api-ref is incorrect and needs to be updated.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"9e7d03a3eb6da982d5632a917aec7fdcea39db9c","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"c60a571b_474a3f40","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"in_reply_to":"ebbfb15b_d2edaad3","updated":"2021-09-03 13:03:16.000000000","message":"Hi Vishal, api-ref is correct, it documents how API works (I tested QoS policy creation to be sure :P)\nI am on the side to follow what\u0027s in the api-ref, but perhaps we can have amotoki\u0027s opinion.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4d12115cfa8167ead1d820185b329aaa561db741","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        return neutronAPI.createDSCPMarkingRule(id, data).then(onAddRule);"},{"line_number":107,"context_line":"      }"},{"line_number":108,"context_line":"      else if (context.model.type \u003d\u003d\u003d \u0027minimum-bandwidth\u0027) {"},{"line_number":109,"context_line":"        direction \u003d context.model.direction !\u003d\u003d undefined"},{"line_number":110,"context_line":"                      ? context.model.direction : \u0027egress\u0027;"},{"line_number":111,"context_line":"        data \u003d {direction: context.model.direction,"},{"line_number":112,"context_line":"          min_kbps: context.model.minkbps};"},{"line_number":113,"context_line":"        return neutronAPI.createMinimumBandwidthRule(id, data).then(onAddRule);"}],"source_content_type":"text/javascript","patch_set":6,"id":"52d27c57_c7b86fb1","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":59},"in_reply_to":"ebbfb15b_d2edaad3","updated":"2021-09-14 06:04:15.000000000","message":"To answer Vishal\u0027s question on the neutron API, we need to visit the history of QoS support in both neutron and OSC.\n\nFirst, let\u0027s look at the history in neutron. The initial version of QoS minimum bandwidth rule supported \u0027egress\u0027 only (in \"qos\" extension) and the \u0027ingress\u0027 support was added to neutron later (as \"qos-bw-minimum-ingress\" extension), so the default value is set to \u0027egress\u0027 to ensure the backward-compatibility for those who use the minimum bandwidth rule. The default value is intentional and the API reference in neutron is correct.\n\nNext, let\u0027s look at the history in OSC. When neutron QoS support was implemented in OSC, both of \"ingress\" and \"egress\" support of the minimum bandwidth rule were already implemented and --direction option was implemented as required. I think it is natural as both directions are already supported and QoS implementation has no preference over two of these.\n(BTW, as a side story, \u0027--direction\u0027 for the bandwidth limit is optional and lets neutron decide the default value (i.e \"egress\". It is because \"ingress\" support was added later and it needs to be optional to ensure the backward compatibility.)\n\n\u003e IMO we should have the same behavior in CLI and horizon.\n\nThere is no strict need that that CLI and API should have the same defaults.\nThe default values can be decided from different reasons and aspects.\n\n\u003e I also confused when I look at api-ref, maybe networking api-ref is incorrect and needs to be updated.\n\nAs explained above, the neutron API reference is correct. I confirmed the neutron API implementation.\n\nThis is my understanding on the neutron API and OSC. Hope it helps your understanding.\n\nI will comment my advise on the dashboard implementaiton in the latest patch set (after checking the proposed implementation).","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable no-undefined */"},{"line_number":2,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":4,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"cfda4703_119a663a","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":33},"updated":"2021-11-10 12:51:01.000000000","message":"it looks unnecessary.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable no-undefined */"},{"line_number":2,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":4,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"92403bb3_7b92dd20","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":33},"in_reply_to":"cfda4703_119a663a","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":53,"context_line":"      type: \"object\","},{"line_number":54,"context_line":"      properties: {"},{"line_number":55,"context_line":"        qospolicy: {"},{"line_number":56,"context_line":"          title: gettext(\u0027QoSPolicyId\u0027),"},{"line_number":57,"context_line":"          type: \u0027string\u0027,"},{"line_number":58,"context_line":"          readOnly: true"},{"line_number":59,"context_line":"        },"}],"source_content_type":"text/javascript","patch_set":27,"id":"6c3367f7_350907fb","line":56,"range":{"start_line":56,"start_character":26,"end_line":56,"end_character":37},"updated":"2022-02-15 11:47:45.000000000","message":"-\u003e QoS Policy ID","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"      type: \"object\","},{"line_number":54,"context_line":"      properties: {"},{"line_number":55,"context_line":"        qospolicy: {"},{"line_number":56,"context_line":"          title: gettext(\u0027QoSPolicyId\u0027),"},{"line_number":57,"context_line":"          type: \u0027string\u0027,"},{"line_number":58,"context_line":"          readOnly: true"},{"line_number":59,"context_line":"        },"}],"source_content_type":"text/javascript","patch_set":27,"id":"a6f001ad_4092afd1","line":56,"range":{"start_line":56,"start_character":26,"end_line":56,"end_character":37},"in_reply_to":"6c3367f7_350907fb","updated":"2022-02-17 12:47:37.000000000","message":"Done","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":58,"context_line":"          readOnly: true"},{"line_number":59,"context_line":"        },"},{"line_number":60,"context_line":"        qospolicyname: {"},{"line_number":61,"context_line":"          title: gettext(\u0027QoSPolicyName\u0027),"},{"line_number":62,"context_line":"          type: \u0027string\u0027,"},{"line_number":63,"context_line":"          readOnly: true"},{"line_number":64,"context_line":"        },"}],"source_content_type":"text/javascript","patch_set":27,"id":"c9a59578_75ebcb78","line":61,"range":{"start_line":61,"start_character":26,"end_line":61,"end_character":39},"updated":"2022-02-15 11:47:45.000000000","message":"-\u003e QoS Policy Name","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"          readOnly: true"},{"line_number":59,"context_line":"        },"},{"line_number":60,"context_line":"        qospolicyname: {"},{"line_number":61,"context_line":"          title: gettext(\u0027QoSPolicyName\u0027),"},{"line_number":62,"context_line":"          type: \u0027string\u0027,"},{"line_number":63,"context_line":"          readOnly: true"},{"line_number":64,"context_line":"        },"}],"source_content_type":"text/javascript","patch_set":27,"id":"d567d516_70357cb1","line":61,"range":{"start_line":61,"start_character":26,"end_line":61,"end_character":39},"in_reply_to":"c9a59578_75ebcb78","updated":"2022-02-17 12:47:37.000000000","message":"Done","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"}],"openstack_dashboard/static/app/core/network_qos/actions/add-rule.action.service.spec.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable no-unused-vars */"},{"line_number":2,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":4,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"a3c54965_ce4d2785","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":35},"updated":"2021-11-10 12:51:01.000000000","message":"it looks unnecessary.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable no-unused-vars */"},{"line_number":2,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":4,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"567cda24_5be5ba14","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":35},"in_reply_to":"a3c54965_ce4d2785","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"}],"openstack_dashboard/static/app/core/network_qos/actions/add-rule.html":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8e0f094d7c06d24f9af43e6d683c5eec198ef5c0","unresolved":true,"context_lines":[{"line_number":25,"context_line":"                ng-change\u003d\"ctrl.bwdLimit(bwd)\"\u003e"},{"line_number":26,"context_line":"        \u003clabel class\u003d\"control-label  required\"\u003e"},{"line_number":27,"context_line":"          \u003ctranslate\u003eMax burst Kbps\u003c/translate\u003e"},{"line_number":28,"context_line":"          \u003cspan class\u003d\"hz-icon-required fa fa-asterisk\"\u003e\u003c/span\u003e"},{"line_number":29,"context_line":"        \u003c/label\u003e"},{"line_number":30,"context_line":"        \u003cinput class\u003d\"form-control ng-pristine ng-untouched ng-valid\""},{"line_number":31,"context_line":"                ng-model\u003d\"bwd.maxburstkbps\""}],"source_content_type":"text/html","patch_set":15,"id":"12aadcf5_25d3850e","line":28,"range":{"start_line":28,"start_character":16,"end_line":28,"end_character":54},"updated":"2021-10-25 10:35:31.000000000","message":"It is an optional field, so you can remove the asterisk.","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"8305634a3c0d05d222cdec37cb035ce2a4ad9f39","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                ng-change\u003d\"ctrl.bwdLimit(bwd)\"\u003e"},{"line_number":26,"context_line":"        \u003clabel class\u003d\"control-label  required\"\u003e"},{"line_number":27,"context_line":"          \u003ctranslate\u003eMax burst Kbps\u003c/translate\u003e"},{"line_number":28,"context_line":"          \u003cspan class\u003d\"hz-icon-required fa fa-asterisk\"\u003e\u003c/span\u003e"},{"line_number":29,"context_line":"        \u003c/label\u003e"},{"line_number":30,"context_line":"        \u003cinput class\u003d\"form-control ng-pristine ng-untouched ng-valid\""},{"line_number":31,"context_line":"                ng-model\u003d\"bwd.maxburstkbps\""}],"source_content_type":"text/html","patch_set":15,"id":"3dc1acfd_a4635eef","line":28,"range":{"start_line":28,"start_character":16,"end_line":28,"end_character":54},"in_reply_to":"12aadcf5_25d3850e","updated":"2021-11-11 07:19:34.000000000","message":"Done","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        \u003cinput class\u003d\"form-control ng-pristine ng-untouched ng-valid\""},{"line_number":54,"context_line":"                ng-model\u003d\"dscpmark\""},{"line_number":55,"context_line":"                name\u003d\"dscpmarking\""},{"line_number":56,"context_line":"                placeholder\u003d\"valid DSCP marks is:"},{"line_number":57,"context_line":"                0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56\""},{"line_number":58,"context_line":"                ng-change\u003d\"ctrl.onDSCPChange(dscpmark)\"\u003e"},{"line_number":59,"context_line":"      \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":27,"id":"23482a95_7ed5b258","line":56,"range":{"start_line":56,"start_character":46,"end_line":56,"end_character":48},"updated":"2022-02-15 11:47:45.000000000","message":"is -\u003e are","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e630e9f7bcec5c00af73363b7e53d184fa517e5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        \u003cinput class\u003d\"form-control ng-pristine ng-untouched ng-valid\""},{"line_number":54,"context_line":"                ng-model\u003d\"dscpmark\""},{"line_number":55,"context_line":"                name\u003d\"dscpmarking\""},{"line_number":56,"context_line":"                placeholder\u003d\"valid DSCP marks is:"},{"line_number":57,"context_line":"                0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56\""},{"line_number":58,"context_line":"                ng-change\u003d\"ctrl.onDSCPChange(dscpmark)\"\u003e"},{"line_number":59,"context_line":"      \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":27,"id":"934cbe90_7dfb40fe","line":56,"range":{"start_line":56,"start_character":46,"end_line":56,"end_character":48},"in_reply_to":"23482a95_7ed5b258","updated":"2022-02-17 12:47:37.000000000","message":"Done","commit_id":"0cef9696612a285ac3b8caf9575a81d02486c83b"}],"openstack_dashboard/static/app/core/network_qos/actions/delete-rule.action.service.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    function allowed() {"},{"line_number":63,"context_line":"      return policy.ifAllowed("},{"line_number":64,"context_line":"        {rules: [[\u0027network\u0027, \u0027deleteqospolicyrule\u0027]]});"},{"line_number":65,"context_line":"    }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    function perform(qospolicy) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"c5c2df50_ae865f62","line":64,"range":{"start_line":64,"start_character":30,"end_line":64,"end_character":49},"updated":"2021-09-01 13:51:26.000000000","message":"I cannot find any such rule in https://github.com/openstack/horizon/blob/master/openstack_dashboard/conf/default_policies/neutron.yaml","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    function allowed() {"},{"line_number":63,"context_line":"      return policy.ifAllowed("},{"line_number":64,"context_line":"        {rules: [[\u0027network\u0027, \u0027deleteqospolicyrule\u0027]]});"},{"line_number":65,"context_line":"    }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    function perform(qospolicy) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"e0993700_58538436","line":64,"range":{"start_line":64,"start_character":30,"end_line":64,"end_character":49},"in_reply_to":"c5c2df50_ae865f62","updated":"2022-02-16 05:36:13.000000000","message":"delete_policy_bandwidth_limit_rule","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"}],"openstack_dashboard/static/app/core/network_qos/actions/delete-rule.action.service.spec.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable max-len */"},{"line_number":2,"context_line":"/* eslint-disable no-unused-vars */"},{"line_number":3,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":5,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"c85439af_6d078eeb","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":35},"updated":"2021-11-10 12:51:01.000000000","message":"it looks unnecessary..","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/* eslint-disable max-len */"},{"line_number":2,"context_line":"/* eslint-disable no-unused-vars */"},{"line_number":3,"context_line":"/* Liscensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":" * you may not use this file except in compliance with the License."},{"line_number":5,"context_line":" * You may obtain a copy of the License at"}],"source_content_type":"text/javascript","patch_set":17,"id":"8b1e64af_dd55c4cb","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":35},"in_reply_to":"c85439af_6d078eeb","updated":"2022-02-16 05:36:13.000000000","message":"Already addressed","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"}],"openstack_dashboard/static/app/core/network_qos/actions/edit-rule.action.service.js":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7f1bfb97f617a5d1a14fdd98f0fc2e9cc8c399a8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e733be1a_02578ee3","updated":"2021-08-23 11:18:57.000000000","message":"comment for all edit actions: when editing I can\u0027t see the current value, the fields are empty","commit_id":"a6ce871024a4d19994b400ba41634794999aad48"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1f2f6bf8_b3db9745","in_reply_to":"e733be1a_02578ee3","updated":"2022-02-16 05:36:13.000000000","message":"Based on my testing against patch set 27, it has been addressed.","commit_id":"a6ce871024a4d19994b400ba41634794999aad48"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    function allowed() {"},{"line_number":61,"context_line":"      return policy.ifAllowed("},{"line_number":62,"context_line":"        {rules: [[\u0027network\u0027, \u0027editqospolicyrule\u0027]]});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function perform(qospolicy) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"e3256a0f_73f20847","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":47},"updated":"2021-09-01 13:51:26.000000000","message":"there is no such policy rule in https://github.com/openstack/horizon/blob/master/openstack_dashboard/conf/default_policies/neutron.yaml","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    function allowed() {"},{"line_number":61,"context_line":"      return policy.ifAllowed("},{"line_number":62,"context_line":"        {rules: [[\u0027network\u0027, \u0027editqospolicyrule\u0027]]});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function perform(qospolicy) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"b2ba1fb1_5c9d23dc","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":47},"in_reply_to":"e3256a0f_73f20847","updated":"2022-02-16 05:36:13.000000000","message":"already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"}],"openstack_dashboard/static/app/core/network_qos/actions/edit-rule.action.service.spec.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":true,"context_lines":[{"line_number":274,"context_line":"      );"},{"line_number":275,"context_line":"    });"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    // it(\u0027should submit DSCP Marking edit rule with new data request to neutron\u0027, function() {"},{"line_number":278,"context_line":"    //   var deferred \u003d $q.defer();"},{"line_number":279,"context_line":"    //   var data \u003d {\"dscp_mark\": 0};"},{"line_number":280,"context_line":"    //   spyOn(toast, \u0027add\u0027).and.callFake(angular.noop);"},{"line_number":281,"context_line":"    //   spyOn(neutronAPI, \u0027updateDSCPMarkingRule\u0027).and.returnValue(deferred.promise);"},{"line_number":282,"context_line":"    //   deferred.resolve({data: {dscp_mark: 0, id: \u00272\u0027}});"},{"line_number":283,"context_line":"    //   service.submit(edscpRule).then(service.success);"},{"line_number":284,"context_line":"    //   $scope.$apply();"},{"line_number":285,"context_line":"    //   expect(neutronAPI.updateDSCPMarkingRule).toHaveBeenCalledWith("},{"line_number":286,"context_line":"    //       qosPolicy.id, [edscpRule.model.ruleid], data);"},{"line_number":287,"context_line":"    //   expect(toast.add).toHaveBeenCalledWith("},{"line_number":288,"context_line":"    //     \u0027success\u0027, \u0027Qos Policy Rule 2 was successfully updated.\u0027"},{"line_number":289,"context_line":"    //   );"},{"line_number":290,"context_line":"    // });"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    it(\u0027should submit Bandwidth Limit edit rule request to neutron\u0027, function() {"},{"line_number":293,"context_line":"      var deferred \u003d $q.defer();"}],"source_content_type":"text/javascript","patch_set":17,"id":"10b82cd0_074d3e34","line":290,"range":{"start_line":277,"start_character":3,"end_line":290,"end_character":10},"updated":"2021-11-10 12:51:01.000000000","message":"Is this test fail if you uncomment?","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":274,"context_line":"      );"},{"line_number":275,"context_line":"    });"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    // it(\u0027should submit DSCP Marking edit rule with new data request to neutron\u0027, function() {"},{"line_number":278,"context_line":"    //   var deferred \u003d $q.defer();"},{"line_number":279,"context_line":"    //   var data \u003d {\"dscp_mark\": 0};"},{"line_number":280,"context_line":"    //   spyOn(toast, \u0027add\u0027).and.callFake(angular.noop);"},{"line_number":281,"context_line":"    //   spyOn(neutronAPI, \u0027updateDSCPMarkingRule\u0027).and.returnValue(deferred.promise);"},{"line_number":282,"context_line":"    //   deferred.resolve({data: {dscp_mark: 0, id: \u00272\u0027}});"},{"line_number":283,"context_line":"    //   service.submit(edscpRule).then(service.success);"},{"line_number":284,"context_line":"    //   $scope.$apply();"},{"line_number":285,"context_line":"    //   expect(neutronAPI.updateDSCPMarkingRule).toHaveBeenCalledWith("},{"line_number":286,"context_line":"    //       qosPolicy.id, [edscpRule.model.ruleid], data);"},{"line_number":287,"context_line":"    //   expect(toast.add).toHaveBeenCalledWith("},{"line_number":288,"context_line":"    //     \u0027success\u0027, \u0027Qos Policy Rule 2 was successfully updated.\u0027"},{"line_number":289,"context_line":"    //   );"},{"line_number":290,"context_line":"    // });"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    it(\u0027should submit Bandwidth Limit edit rule request to neutron\u0027, function() {"},{"line_number":293,"context_line":"      var deferred \u003d $q.defer();"}],"source_content_type":"text/javascript","patch_set":17,"id":"6fcf49f7_c7e35933","line":290,"range":{"start_line":277,"start_character":3,"end_line":290,"end_character":10},"in_reply_to":"10b82cd0_074d3e34","updated":"2022-02-16 05:36:13.000000000","message":"They looks unnecessary and have been removed in the latest patch set.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"6c924e26652ef475be781f5650917a1ab0448bd0","unresolved":true,"context_lines":[{"line_number":304,"context_line":"      );"},{"line_number":305,"context_line":"    });"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    // it(\u0027should submit Bandwidth Limit edit rule with new data request to neutron\u0027, function() {"},{"line_number":308,"context_line":"    //   var deferred \u003d $q.defer();"},{"line_number":309,"context_line":"    //   var data \u003d {\"max_kbps\": 1000, \"direction\": \"ingress\", \"max_burst_kbps\": 1200};"},{"line_number":310,"context_line":"    //   spyOn(toast, \u0027add\u0027).and.callFake(angular.noop);"},{"line_number":311,"context_line":"    //   spyOn(neutronAPI, \u0027updateBandwidthRule\u0027).and.returnValue(deferred.promise);"},{"line_number":312,"context_line":"    //   deferred.resolve({data: {\"id\": \"2\", \"max_kbps\": 1000, \"direction\": \"ingress\", \"max_burst_kbps\": 1200}});"},{"line_number":313,"context_line":"    //   service.submit(ebwdLmtRule).then(service.success);"},{"line_number":314,"context_line":"    //   $scope.$apply();"},{"line_number":315,"context_line":"    //   expect(neutronAPI.updateBandwidthRule).toHaveBeenCalledWith("},{"line_number":316,"context_line":"    //       qosPolicy.id, [bwdLmtRule.model.ruleid], data);"},{"line_number":317,"context_line":"    //   expect(toast.add).toHaveBeenCalledWith("},{"line_number":318,"context_line":"    //     \u0027success\u0027, \u0027Qos Policy Rule 2 was successfully updated.\u0027"},{"line_number":319,"context_line":"    //   );"},{"line_number":320,"context_line":"    // });"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    it(\u0027should submit Minimum BandwidthLimit edit rule request to neutron\u0027, function() {"},{"line_number":323,"context_line":"      var deferred \u003d $q.defer();"}],"source_content_type":"text/javascript","patch_set":17,"id":"6957fc17_177750a1","line":320,"range":{"start_line":307,"start_character":4,"end_line":320,"end_character":10},"updated":"2021-11-10 12:51:01.000000000","message":"ditto.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":304,"context_line":"      );"},{"line_number":305,"context_line":"    });"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    // it(\u0027should submit Bandwidth Limit edit rule with new data request to neutron\u0027, function() {"},{"line_number":308,"context_line":"    //   var deferred \u003d $q.defer();"},{"line_number":309,"context_line":"    //   var data \u003d {\"max_kbps\": 1000, \"direction\": \"ingress\", \"max_burst_kbps\": 1200};"},{"line_number":310,"context_line":"    //   spyOn(toast, \u0027add\u0027).and.callFake(angular.noop);"},{"line_number":311,"context_line":"    //   spyOn(neutronAPI, \u0027updateBandwidthRule\u0027).and.returnValue(deferred.promise);"},{"line_number":312,"context_line":"    //   deferred.resolve({data: {\"id\": \"2\", \"max_kbps\": 1000, \"direction\": \"ingress\", \"max_burst_kbps\": 1200}});"},{"line_number":313,"context_line":"    //   service.submit(ebwdLmtRule).then(service.success);"},{"line_number":314,"context_line":"    //   $scope.$apply();"},{"line_number":315,"context_line":"    //   expect(neutronAPI.updateBandwidthRule).toHaveBeenCalledWith("},{"line_number":316,"context_line":"    //       qosPolicy.id, [bwdLmtRule.model.ruleid], data);"},{"line_number":317,"context_line":"    //   expect(toast.add).toHaveBeenCalledWith("},{"line_number":318,"context_line":"    //     \u0027success\u0027, \u0027Qos Policy Rule 2 was successfully updated.\u0027"},{"line_number":319,"context_line":"    //   );"},{"line_number":320,"context_line":"    // });"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    it(\u0027should submit Minimum BandwidthLimit edit rule request to neutron\u0027, function() {"},{"line_number":323,"context_line":"      var deferred \u003d $q.defer();"}],"source_content_type":"text/javascript","patch_set":17,"id":"ebd12377_e3b282a4","line":320,"range":{"start_line":307,"start_character":4,"end_line":320,"end_character":10},"in_reply_to":"6957fc17_177750a1","updated":"2022-02-16 05:36:13.000000000","message":"They looks unnecessary and have been removed in the latest patch set.","commit_id":"d4233626cd84c5b6a28758ab6256035b7ae448c6"}],"openstack_dashboard/static/app/core/network_qos/actions/workflow/add-rule.workflow.service.js":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7f1bfb97f617a5d1a14fdd98f0fc2e9cc8c399a8","unresolved":true,"context_lines":[{"line_number":51,"context_line":"            type: \u0027string\u0027,"},{"line_number":52,"context_line":"            readOnly: true"},{"line_number":53,"context_line":"          },"},{"line_number":54,"context_line":"          dscpmarking: {"},{"line_number":55,"context_line":"            title: gettext(\u0027dscp-mark\u0027),"},{"line_number":56,"context_line":"            type: \u0027integer\u0027"},{"line_number":57,"context_line":"          }"},{"line_number":58,"context_line":"        },"},{"line_number":59,"context_line":"      };"}],"source_content_type":"text/javascript","patch_set":4,"id":"a515ae15_903853c0","line":56,"range":{"start_line":54,"start_character":10,"end_line":56,"end_character":27},"updated":"2021-08-23 11:18:57.000000000","message":"I miss the validation here (https://opendev.org/openstack/neutron-lib/src/branch/master/neutron_lib/constants.py#L358 )","commit_id":"a6ce871024a4d19994b400ba41634794999aad48"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"1c506b202454de4342d2966bcf9c2368022cd484","unresolved":true,"context_lines":[{"line_number":137,"context_line":"            readOnly: true"},{"line_number":138,"context_line":"          },"},{"line_number":139,"context_line":"          minkbps: {"},{"line_number":140,"context_line":"            title: gettext(\u0027mim-kbps\u0027),"},{"line_number":141,"context_line":"            type: \u0027integer\u0027"},{"line_number":142,"context_line":"          },"},{"line_number":143,"context_line":"          direction: {"}],"source_content_type":"text/javascript","patch_set":6,"id":"cdf82104_b656f821","line":140,"range":{"start_line":140,"start_character":28,"end_line":140,"end_character":31},"updated":"2021-08-31 23:20:01.000000000","message":"mim-\u003emin","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            readOnly: true"},{"line_number":138,"context_line":"          },"},{"line_number":139,"context_line":"          minkbps: {"},{"line_number":140,"context_line":"            title: gettext(\u0027mim-kbps\u0027),"},{"line_number":141,"context_line":"            type: \u0027integer\u0027"},{"line_number":142,"context_line":"          },"},{"line_number":143,"context_line":"          direction: {"}],"source_content_type":"text/javascript","patch_set":6,"id":"38bdd5d8_b7ce9c5b","line":140,"range":{"start_line":140,"start_character":28,"end_line":140,"end_character":31},"in_reply_to":"cdf82104_b656f821","updated":"2022-02-16 05:36:13.000000000","message":"Looks addressed already","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"}],"openstack_dashboard/static/app/core/network_qos/actions/workflow/edit-rule.workflow.service.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        type: \u0027object\u0027,"},{"line_number":78,"context_line":"        properties: {"},{"line_number":79,"context_line":"          ruleid: {"},{"line_number":80,"context_line":"            title: gettext(\u0027Rulee\u0027),"},{"line_number":81,"context_line":"            type: \u0027string\u0027,"},{"line_number":82,"context_line":"            readOnly: true"},{"line_number":83,"context_line":"          },"}],"source_content_type":"text/javascript","patch_set":6,"id":"a747239c_046ba1d8","line":80,"range":{"start_line":80,"start_character":28,"end_line":80,"end_character":33},"updated":"2021-09-01 13:51:26.000000000","message":"Rulee-\u003eRule","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        type: \u0027object\u0027,"},{"line_number":78,"context_line":"        properties: {"},{"line_number":79,"context_line":"          ruleid: {"},{"line_number":80,"context_line":"            title: gettext(\u0027Rulee\u0027),"},{"line_number":81,"context_line":"            type: \u0027string\u0027,"},{"line_number":82,"context_line":"            readOnly: true"},{"line_number":83,"context_line":"          },"}],"source_content_type":"text/javascript","patch_set":6,"id":"bd63dff9_298be774","line":80,"range":{"start_line":80,"start_character":28,"end_line":80,"end_character":33},"in_reply_to":"a747239c_046ba1d8","updated":"2022-02-16 05:36:13.000000000","message":"Looks addressed already","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":124,"context_line":"            readOnly: true"},{"line_number":125,"context_line":"          },"},{"line_number":126,"context_line":"          minkbps: {"},{"line_number":127,"context_line":"            title: gettext(\u0027mim-kbps\u0027),"},{"line_number":128,"context_line":"            type: \u0027integer\u0027"},{"line_number":129,"context_line":"          },"},{"line_number":130,"context_line":"          direction: {"}],"source_content_type":"text/javascript","patch_set":6,"id":"8af24d3a_9da1f518","line":127,"range":{"start_line":127,"start_character":28,"end_line":127,"end_character":31},"updated":"2021-09-01 13:51:26.000000000","message":"mim-\u003emin","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            readOnly: true"},{"line_number":125,"context_line":"          },"},{"line_number":126,"context_line":"          minkbps: {"},{"line_number":127,"context_line":"            title: gettext(\u0027mim-kbps\u0027),"},{"line_number":128,"context_line":"            type: \u0027integer\u0027"},{"line_number":129,"context_line":"          },"},{"line_number":130,"context_line":"          direction: {"}],"source_content_type":"text/javascript","patch_set":6,"id":"888ab543_c3209619","line":127,"range":{"start_line":127,"start_character":28,"end_line":127,"end_character":31},"in_reply_to":"8af24d3a_9da1f518","updated":"2022-02-16 05:36:13.000000000","message":"Looks addressed already","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"}],"openstack_dashboard/static/app/core/openstack-service-api/neutron.service.js":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":480,"context_line":"     * @property {integer} ruleId.max_kbps"},{"line_number":481,"context_line":"     * The maximum KBPS (kilobits per second) value."},{"line_number":482,"context_line":"     * If you specify this value, must be greater than \u00270\u0027"},{"line_number":483,"context_line":"     * otherwise max_kbps will have no value. Optional."},{"line_number":484,"context_line":"     *"},{"line_number":485,"context_line":"     * @property {integer} ruleId.max_burst_kbps"},{"line_number":486,"context_line":"     * The maximum burst size (in kilobits). Default is \u00270\u0027. Optional."}],"source_content_type":"text/javascript","patch_set":6,"id":"bb8e088b_a60232b3","line":483,"range":{"start_line":483,"start_character":46,"end_line":483,"end_character":55},"updated":"2021-09-01 13:51:26.000000000","message":"IMO it is mandatory field.","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":480,"context_line":"     * @property {integer} ruleId.max_kbps"},{"line_number":481,"context_line":"     * The maximum KBPS (kilobits per second) value."},{"line_number":482,"context_line":"     * If you specify this value, must be greater than \u00270\u0027"},{"line_number":483,"context_line":"     * otherwise max_kbps will have no value. Optional."},{"line_number":484,"context_line":"     *"},{"line_number":485,"context_line":"     * @property {integer} ruleId.max_burst_kbps"},{"line_number":486,"context_line":"     * The maximum burst size (in kilobits). Default is \u00270\u0027. Optional."}],"source_content_type":"text/javascript","patch_set":6,"id":"60982c94_507c21bc","line":483,"range":{"start_line":483,"start_character":46,"end_line":483,"end_character":55},"in_reply_to":"bb8e088b_a60232b3","updated":"2022-02-16 05:36:13.000000000","message":"already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":487,"context_line":"     *"},{"line_number":488,"context_line":"     * @property {string} ruleId.direction"},{"line_number":489,"context_line":"     * The direction of the traffic to which the QoS rule is applied,"},{"line_number":490,"context_line":"     * as seen from the point of view of the port. Valid values are egress and ingress."},{"line_number":491,"context_line":"     * Optional."},{"line_number":492,"context_line":"     *"},{"line_number":493,"context_line":"     */"}],"source_content_type":"text/javascript","patch_set":6,"id":"5ae08ce3_acb57ac4","line":490,"updated":"2021-09-01 13:51:26.000000000","message":"You can also mentioned here Default value is \u0027egress\u0027","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":487,"context_line":"     *"},{"line_number":488,"context_line":"     * @property {string} ruleId.direction"},{"line_number":489,"context_line":"     * The direction of the traffic to which the QoS rule is applied,"},{"line_number":490,"context_line":"     * as seen from the point of view of the port. Valid values are egress and ingress."},{"line_number":491,"context_line":"     * Optional."},{"line_number":492,"context_line":"     *"},{"line_number":493,"context_line":"     */"}],"source_content_type":"text/javascript","patch_set":6,"id":"30890158_094ca38a","line":490,"in_reply_to":"5ae08ce3_acb57ac4","updated":"2022-02-16 05:36:13.000000000","message":"already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"53fd62954ad52d5f780799df396ef6069ce17db6","unresolved":true,"context_lines":[{"line_number":522,"context_line":"     * Description of properties on the dscp marking rule object"},{"line_number":523,"context_line":"     *"},{"line_number":524,"context_line":"     * @property {integer} ruleId.dscp_mark"},{"line_number":525,"context_line":"     * The DSCP mark value. Optional."},{"line_number":526,"context_line":"     *"},{"line_number":527,"context_line":"     */"},{"line_number":528,"context_line":"    function createDSCPMarkingRule(policyId, ruleId) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"0b3d2df9_ecaa3bdd","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":26},"updated":"2021-09-01 13:51:26.000000000","message":"This is mandatory field as far I try with CLI.\nAlso good to mention it can accept only below values:\n0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":522,"context_line":"     * Description of properties on the dscp marking rule object"},{"line_number":523,"context_line":"     *"},{"line_number":524,"context_line":"     * @property {integer} ruleId.dscp_mark"},{"line_number":525,"context_line":"     * The DSCP mark value. Optional."},{"line_number":526,"context_line":"     *"},{"line_number":527,"context_line":"     */"},{"line_number":528,"context_line":"    function createDSCPMarkingRule(policyId, ruleId) {"}],"source_content_type":"text/javascript","patch_set":6,"id":"3e84e102_5ebf8a2f","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":26},"in_reply_to":"0b3d2df9_ecaa3bdd","updated":"2022-02-16 05:36:13.000000000","message":"already addressed","commit_id":"198b17eddad8676b015e629f9ce4c2f19d2021e6"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8e0f094d7c06d24f9af43e6d683c5eec198ef5c0","unresolved":true,"context_lines":[{"line_number":480,"context_line":"     * @property {integer} ruleId.max_kbps"},{"line_number":481,"context_line":"     * The maximum KBPS (kilobits per second) value."},{"line_number":482,"context_line":"     * If you specify this value, must be greater than \u00270\u0027"},{"line_number":483,"context_line":"     * otherwise max_kbps will have no value. Optional."},{"line_number":484,"context_line":"     *"},{"line_number":485,"context_line":"     * @property {integer} ruleId.max_burst_kbps"},{"line_number":486,"context_line":"     * The maximum burst size (in kilobits). Default is \u00270\u0027. Optional."}],"source_content_type":"text/javascript","patch_set":15,"id":"87757f67_7e948957","line":483,"range":{"start_line":483,"start_character":46,"end_line":483,"end_character":54},"updated":"2021-10-25 10:35:31.000000000","message":"As far I tested your patch, it is the mandatory field so update here.","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"8305634a3c0d05d222cdec37cb035ce2a4ad9f39","unresolved":false,"context_lines":[{"line_number":480,"context_line":"     * @property {integer} ruleId.max_kbps"},{"line_number":481,"context_line":"     * The maximum KBPS (kilobits per second) value."},{"line_number":482,"context_line":"     * If you specify this value, must be greater than \u00270\u0027"},{"line_number":483,"context_line":"     * otherwise max_kbps will have no value. Optional."},{"line_number":484,"context_line":"     *"},{"line_number":485,"context_line":"     * @property {integer} ruleId.max_burst_kbps"},{"line_number":486,"context_line":"     * The maximum burst size (in kilobits). Default is \u00270\u0027. Optional."}],"source_content_type":"text/javascript","patch_set":15,"id":"11d17a9a_5bdbc529","line":483,"range":{"start_line":483,"start_character":46,"end_line":483,"end_character":54},"in_reply_to":"87757f67_7e948957","updated":"2021-11-11 07:19:34.000000000","message":"Done","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8e0f094d7c06d24f9af43e6d683c5eec198ef5c0","unresolved":true,"context_lines":[{"line_number":523,"context_line":"     * Description of properties on the dscp marking rule object"},{"line_number":524,"context_line":"     *"},{"line_number":525,"context_line":"     * @property {integer} ruleId.dscp_mark"},{"line_number":526,"context_line":"     * The DSCP mark value. Optional."},{"line_number":527,"context_line":"     * Valid DSCP mark values are even numbers between 0 and 56,"},{"line_number":528,"context_line":"     * except 2-6, 42, 44, and 50-54. The full list of valid DSCP marks is:"},{"line_number":529,"context_line":"     * 0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56"}],"source_content_type":"text/javascript","patch_set":15,"id":"8f0941a8_fab05256","line":526,"range":{"start_line":526,"start_character":11,"end_line":526,"end_character":26},"updated":"2021-10-25 10:35:31.000000000","message":"it is mandatory field.","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"},{"author":{"_account_id":33643,"name":"Nitish Venkata Patcherla","display_name":"Nitish","email":"nitish.patcherla@est.tech","username":"zitptan"},"change_message_id":"8305634a3c0d05d222cdec37cb035ce2a4ad9f39","unresolved":false,"context_lines":[{"line_number":523,"context_line":"     * Description of properties on the dscp marking rule object"},{"line_number":524,"context_line":"     *"},{"line_number":525,"context_line":"     * @property {integer} ruleId.dscp_mark"},{"line_number":526,"context_line":"     * The DSCP mark value. Optional."},{"line_number":527,"context_line":"     * Valid DSCP mark values are even numbers between 0 and 56,"},{"line_number":528,"context_line":"     * except 2-6, 42, 44, and 50-54. The full list of valid DSCP marks is:"},{"line_number":529,"context_line":"     * 0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 46, 48, 56"}],"source_content_type":"text/javascript","patch_set":15,"id":"7e364bb6_852c4d6c","line":526,"range":{"start_line":526,"start_character":11,"end_line":526,"end_character":26},"in_reply_to":"8f0941a8_fab05256","updated":"2021-11-11 07:19:34.000000000","message":"Done","commit_id":"23efbc701011c3bdc9a3ae3ee58d9a7cf637b887"}],"releasenotes/notes/network_qos_rules-cd103f9383b6cdf9.yaml":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    Added create, edit, and delete rules operation to the network qos policy."},{"line_number":7,"context_line":"    Rules supported - Bandwidth-Limit, Minimum-Bandwidth, DSCP-Marking, and"},{"line_number":8,"context_line":"    Minimum-Packet-Rate."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"issues:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"3f672dd2_3f936991","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":24},"updated":"2022-02-15 11:47:45.000000000","message":"This is not covered by this commit now. Could you drop it?","commit_id":"07cb6957a9b9425b7cb799f6760b99f04594a453"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    Added create, edit, and delete rules operation to the network qos policy."},{"line_number":7,"context_line":"    Rules supported - Bandwidth-Limit, Minimum-Bandwidth, DSCP-Marking, and"},{"line_number":8,"context_line":"    Minimum-Packet-Rate."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"issues:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"f10176a0_5ef28110","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":24},"in_reply_to":"3f672dd2_3f936991","updated":"2022-02-16 05:36:13.000000000","message":"already addressed. minimum-packet-rate rule is coverd by this patch again.","commit_id":"07cb6957a9b9425b7cb799f6760b99f04594a453"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed4da61c9dc4a7145528356dba2d7e3fd3d43ef8","unresolved":true,"context_lines":[{"line_number":12,"context_line":"    Add/Edit/Delete Minimum Packet Rule doesn\u0027t work as of now in horizon"},{"line_number":13,"context_line":"    because the related attribute is not added in python-neutronclient."},{"line_number":14,"context_line":"    It will work after https://review.opendev.org/c/openstack/python-neutronclient/+/812132"},{"line_number":15,"context_line":"    is merged."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"6a491ddd_699ae0cd","line":15,"updated":"2022-02-15 11:47:45.000000000","message":"We dropped the support of minimum-packet-rate in this commit, so I don\u0027t think we need to mention this as an issue.","commit_id":"07cb6957a9b9425b7cb799f6760b99f04594a453"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78e490dcb98ffc2f4dad0122130271d0ad14fa72","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    Add/Edit/Delete Minimum Packet Rule doesn\u0027t work as of now in horizon"},{"line_number":13,"context_line":"    because the related attribute is not added in python-neutronclient."},{"line_number":14,"context_line":"    It will work after https://review.opendev.org/c/openstack/python-neutronclient/+/812132"},{"line_number":15,"context_line":"    is merged."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"0393cef6_788c0f7a","line":15,"in_reply_to":"6a491ddd_699ae0cd","updated":"2022-02-16 05:36:13.000000000","message":"already addressed. minimum-packet-rate rule is coverd by this patch again.","commit_id":"07cb6957a9b9425b7cb799f6760b99f04594a453"}]}
