)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":20,"context_line":"PASSED: Run full build, system install, bootstrap and unlock (SX)"},{"line_number":21,"context_line":"PASSED: Updated iptables rules using below command in runtime:"},{"line_number":22,"context_line":"        \"system host-if-modify -t 40 -r 30 controller-0 enp0s3\""},{"line_number":23,"context_line":"        Verification command:"},{"line_number":24,"context_line":"        \"sudo iptables -L -v -n --line-numbers\""},{"line_number":25,"context_line":"PASSED: Verify ingress and egress rules are updated per interface"},{"line_number":26,"context_line":"        in the iptables INPUT and OUTPUT chain without reboot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"5a8a2d5d_a6bcc83b","line":23,"updated":"2025-05-01 08:00:43.000000000","message":"system host-if-modify controller-0 enp0s3,what will happen?\nWith no tx and rx , both absent,possible?","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"7d2b331823ef66bedade578180ad2bb5fe065988","unresolved":false,"context_lines":[{"line_number":20,"context_line":"PASSED: Run full build, system install, bootstrap and unlock (SX)"},{"line_number":21,"context_line":"PASSED: Updated iptables rules using below command in runtime:"},{"line_number":22,"context_line":"        \"system host-if-modify -t 40 -r 30 controller-0 enp0s3\""},{"line_number":23,"context_line":"        Verification command:"},{"line_number":24,"context_line":"        \"sudo iptables -L -v -n --line-numbers\""},{"line_number":25,"context_line":"PASSED: Verify ingress and egress rules are updated per interface"},{"line_number":26,"context_line":"        in the iptables INPUT and OUTPUT chain without reboot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"e5bb751c_a16c5964","line":23,"in_reply_to":"5a8a2d5d_a6bcc83b","updated":"2025-05-04 17:09:30.000000000","message":"Nothing happens, CLI command prompts to provide parameters.\nlike tx,rx,vf-driver etc\nthere are other parameters which get applied using the same CLI command","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35496,"name":"Sirin Shaikh","email":"sirin.shaikh@windriver.com","username":"sshaikh1"},"change_message_id":"e0a52770c7ee6794fb24bdc506119ca5eb054cdf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ec19f418_4b6e55b3","updated":"2025-03-28 20:34:48.000000000","message":"Review Comments addressed.","commit_id":"21af6d88326ec91d4705b6542057fdfd1542bcf7"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"3e9e777e7dbb45600eb72416d9472aabad48ce88","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"24f9a353_9574bd60","updated":"2025-05-21 08:46:10.000000000","message":"recheck","commit_id":"45d3fcafd4cd898cb4a5e9ddfda921eb3be4f6b0"},{"author":{"_account_id":32933,"name":"Andre Kantek","display_name":"Andre Kantek","email":"AndreFernandoZanella.Kantek@windriver.com","username":"akantek"},"change_message_id":"583bda70436deac98b8998ba7b6ed782be765dba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"316f1e6e_de83f521","updated":"2025-05-27 14:21:56.000000000","message":"Have you tested if a SRIOV interface still can set correctly set max_tx_rate?","commit_id":"cd7f8f0d8a2d1cac736d08c452b5d3ada46cc674"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"d52629bd5426da1b2d3cdbc1beb3b8f8d869c2d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"deeeb8d2_57900221","updated":"2025-05-23 05:17:07.000000000","message":"recheck","commit_id":"cd7f8f0d8a2d1cac736d08c452b5d3ada46cc674"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"a1d443295fd8c5fe3582356f679f6a479033ef7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"e9107e0e_a4288907","in_reply_to":"316f1e6e_de83f521","updated":"2025-05-28 11:55:05.000000000","message":"Yes, It is tested and verified","commit_id":"cd7f8f0d8a2d1cac736d08c452b5d3ada46cc674"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/interface.py":[{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"eb9fcc29c57e96b2f649a5af2ebe932f0e02d18a","unresolved":true,"context_lines":[{"line_number":1093,"context_line":"        if interface[\u0027max_tx_rate\u0027] is not None:"},{"line_number":1094,"context_line":"            if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1095,"context_line":"                msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1096,"context_line":"                raise wsme.exc.ClientSideError(msg)"},{"line_number":1097,"context_line":"        if interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1098,"context_line":"            msg \u003d _(\"max_rx_rate is not applicable for VF interfaces\")"},{"line_number":1099,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"621f8ea1_fbd6b54d","line":1096,"updated":"2025-03-27 06:19:39.000000000","message":"I think the condition here has a loophole.\nWhen \u0027iftype \u003d constants.INTERFACE_TYPE_VF\u0027 and \u0027max_tx_rate\u0027 is None.\nfunction will still proceed further. \n\n\nIt will throw an error only if max_tx_rate is not None and is not an integer.\n\nIdeal if condition could be - \n\nif max_tx_rate is not None and interface[\u0027iftype\u0027] \u003d\u003d constants.INTERFACE_TYPE_VF\n\n@ L:1092","commit_id":"9ca51fe244c2d81209a800622157195122f21df4"},{"author":{"_account_id":35496,"name":"Sirin Shaikh","email":"sirin.shaikh@windriver.com","username":"sshaikh1"},"change_message_id":"e0a52770c7ee6794fb24bdc506119ca5eb054cdf","unresolved":false,"context_lines":[{"line_number":1093,"context_line":"        if interface[\u0027max_tx_rate\u0027] is not None:"},{"line_number":1094,"context_line":"            if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1095,"context_line":"                msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1096,"context_line":"                raise wsme.exc.ClientSideError(msg)"},{"line_number":1097,"context_line":"        if interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1098,"context_line":"            msg \u003d _(\"max_rx_rate is not applicable for VF interfaces\")"},{"line_number":1099,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"95a879a9_ce939c7c","line":1096,"in_reply_to":"621f8ea1_fbd6b54d","updated":"2025-03-28 20:34:48.000000000","message":"Addressed.","commit_id":"9ca51fe244c2d81209a800622157195122f21df4"},{"author":{"_account_id":35510,"name":"Kailas Vitthalrao Surkar","email":"kailasvitthalrao.surkar@windriver.com","username":"kssurkar"},"change_message_id":"9fbce2b6fb2c6e818e3bd5bf5b9ddb5717ad4f82","unresolved":true,"context_lines":[{"line_number":2002,"context_line":"                # for these two fields only."},{"line_number":2003,"context_line":"                allowed_paths \u003d {\u0027/max_tx_rate\u0027, \u0027/max_rx_rate\u0027}"},{"line_number":2004,"context_line":"                patch_paths \u003d {p[\u0027path\u0027] for p in patch}"},{"line_number":2005,"context_line":"                if (patch_paths.issubset(allowed_paths) and len(patch_paths) \u003e 0):"},{"line_number":2006,"context_line":"                    check_host \u003d False"},{"line_number":2007,"context_line":""},{"line_number":2008,"context_line":"    if check_host:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c3988d28_54ef4f4f","line":2005,"updated":"2025-03-27 10:00:30.000000000","message":"if modify cammand has other config para along with max_tx_rate/max_rx_rate and if it rquires lock, then this check may need to be modified.","commit_id":"9ca51fe244c2d81209a800622157195122f21df4"},{"author":{"_account_id":35496,"name":"Sirin Shaikh","email":"sirin.shaikh@windriver.com","username":"sshaikh1"},"change_message_id":"e0a52770c7ee6794fb24bdc506119ca5eb054cdf","unresolved":false,"context_lines":[{"line_number":2002,"context_line":"                # for these two fields only."},{"line_number":2003,"context_line":"                allowed_paths \u003d {\u0027/max_tx_rate\u0027, \u0027/max_rx_rate\u0027}"},{"line_number":2004,"context_line":"                patch_paths \u003d {p[\u0027path\u0027] for p in patch}"},{"line_number":2005,"context_line":"                if (patch_paths.issubset(allowed_paths) and len(patch_paths) \u003e 0):"},{"line_number":2006,"context_line":"                    check_host \u003d False"},{"line_number":2007,"context_line":""},{"line_number":2008,"context_line":"    if check_host:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1df7e023_14242f2f","line":2005,"in_reply_to":"c3988d28_54ef4f4f","updated":"2025-03-28 20:34:48.000000000","message":"Addressed.","commit_id":"9ca51fe244c2d81209a800622157195122f21df4"},{"author":{"_account_id":35510,"name":"Kailas Vitthalrao Surkar","email":"kailasvitthalrao.surkar@windriver.com","username":"kssurkar"},"change_message_id":"68d2681cfa5ca6ded15bc7897143fd2779cbe89e","unresolved":true,"context_lines":[{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027ifclass\u0027] \u003d\u003d constants.INTERFACE_CLASS_PCI_SRIOV:"},{"line_number":1093,"context_line":"        if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1094,"context_line":"            msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1095,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"24d313aa_05ce027d","line":1092,"updated":"2025-04-17 11:04:03.000000000","message":"is there any possibility that ifclass is not pci_sriov, but iftype is VF. If yes, then old behavior is changed.\nCan it be modified as below to be more safer:\n if interface[\u0027iftype\u0027] \u003d\u003d constants.INTERFACE_TYPE_VF","commit_id":"730af91bc6f666be3f8adbbd177c08ae8f792cf3"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"feef88a0faa0d81ef8f9886fa74fb7cee0a15748","unresolved":false,"context_lines":[{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027ifclass\u0027] \u003d\u003d constants.INTERFACE_CLASS_PCI_SRIOV:"},{"line_number":1093,"context_line":"        if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1094,"context_line":"            msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1095,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fcd53f64_683bd607","line":1092,"in_reply_to":"24d313aa_05ce027d","updated":"2025-04-22 04:53:37.000000000","message":"Done","commit_id":"730af91bc6f666be3f8adbbd177c08ae8f792cf3"},{"author":{"_account_id":35510,"name":"Kailas Vitthalrao Surkar","email":"kailasvitthalrao.surkar@windriver.com","username":"kssurkar"},"change_message_id":"68d2681cfa5ca6ded15bc7897143fd2779cbe89e","unresolved":true,"context_lines":[{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027ifclass\u0027] \u003d\u003d constants.INTERFACE_CLASS_PCI_SRIOV:"},{"line_number":1093,"context_line":"        if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1094,"context_line":"            msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1095,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1096,"context_line":"        if interface[\u0027iftype\u0027] !\u003d constants.INTERFACE_TYPE_VF:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f43b976_62a920f6","line":1093,"updated":"2025-04-17 11:04:03.000000000","message":"interface[\u0027max_tx_rate\u0027] is none, the what will be the behavior? \ncontrol can come up to this point when interface[\u0027max_tx_rate\u0027] is none and interface[\u0027max_rx_rate\u0027] has some value.","commit_id":"730af91bc6f666be3f8adbbd177c08ae8f792cf3"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"feef88a0faa0d81ef8f9886fa74fb7cee0a15748","unresolved":false,"context_lines":[{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027ifclass\u0027] \u003d\u003d constants.INTERFACE_CLASS_PCI_SRIOV:"},{"line_number":1093,"context_line":"        if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":1094,"context_line":"            msg \u003d _(\"max_tx_rate must be an integer value.\")"},{"line_number":1095,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1096,"context_line":"        if interface[\u0027iftype\u0027] !\u003d constants.INTERFACE_TYPE_VF:"}],"source_content_type":"text/x-python","patch_set":9,"id":"82398f7e_2f706c1e","line":1093,"in_reply_to":"3f43b976_62a920f6","updated":"2025-04-22 04:53:37.000000000","message":"Done","commit_id":"730af91bc6f666be3f8adbbd177c08ae8f792cf3"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":1121,"context_line":"        for i in interface_list:"},{"line_number":1122,"context_line":"            if (i[\u0027iftype\u0027] \u003d\u003d constants.INTERFACE_TYPE_VF and"},{"line_number":1123,"context_line":"                    lower_ifname \u003d\u003d i[\u0027uses\u0027][0] and"},{"line_number":1124,"context_line":"                    i.id !\u003d this_interface_id):"},{"line_number":1125,"context_line":"                if i[\u0027max_tx_rate\u0027] is not None:"},{"line_number":1126,"context_line":"                    total_rate_used +\u003d i[\u0027max_tx_rate\u0027] * i[\u0027sriov_numvfs\u0027]"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"a35d893d_53a2d887","line":1124,"updated":"2025-05-01 08:00:43.000000000","message":"should use i.get(\u0027id\u0027)","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"7d2b331823ef66bedade578180ad2bb5fe065988","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"        for i in interface_list:"},{"line_number":1122,"context_line":"            if (i[\u0027iftype\u0027] \u003d\u003d constants.INTERFACE_TYPE_VF and"},{"line_number":1123,"context_line":"                    lower_ifname \u003d\u003d i[\u0027uses\u0027][0] and"},{"line_number":1124,"context_line":"                    i.id !\u003d this_interface_id):"},{"line_number":1125,"context_line":"                if i[\u0027max_tx_rate\u0027] is not None:"},{"line_number":1126,"context_line":"                    total_rate_used +\u003d i[\u0027max_tx_rate\u0027] * i[\u0027sriov_numvfs\u0027]"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"6afbff50_7f951bb7","line":1124,"in_reply_to":"a35d893d_53a2d887","updated":"2025-05-04 17:09:30.000000000","message":"Not changing here because this actually is previously existing code.\nIt is being shown in the diff because of a change in Indentation.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        vfs_config \u003d interface[\u0027sriov_numvfs\u0027]"},{"line_number":1129,"context_line":"        if total_rate_used + (max_tx_rate * vfs_config) \u003e total_rate_for_vf:"},{"line_number":1130,"context_line":"            msg \u003d _(\"Configured (max_tx_rate*sriov_numvfs) exceeds \""},{"line_number":1131,"context_line":"                    \"available link speed bandwidth: %d Mbps.\" %"},{"line_number":1132,"context_line":"                    (total_rate_for_vf - total_rate_used))"},{"line_number":1133,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"f36268be_bc57c91e","line":1130,"updated":"2025-05-01 08:00:43.000000000","message":"There is a common pattern here, when some condition is violated, you are raising an exception. Even though i am aware whole file is following this approach, recommendation is:\n\ndef raise_if(condition, message):\n    if condition:\n        raise wsme.exc.ClientSideError(_(message))\n\nraise_if(\n    ports[0][\u0027speed\u0027] is None,\n    \"Port speed for %s could not be determined. Check if the port is cabled correctly.\" % ports[0][\u0027name\u0027]\n)\n\nraise_if(\n    len(ports)\u003d\u003d0,\n    \"Some message ....\u0027]\n)","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"7d2b331823ef66bedade578180ad2bb5fe065988","unresolved":false,"context_lines":[{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        vfs_config \u003d interface[\u0027sriov_numvfs\u0027]"},{"line_number":1129,"context_line":"        if total_rate_used + (max_tx_rate * vfs_config) \u003e total_rate_for_vf:"},{"line_number":1130,"context_line":"            msg \u003d _(\"Configured (max_tx_rate*sriov_numvfs) exceeds \""},{"line_number":1131,"context_line":"                    \"available link speed bandwidth: %d Mbps.\" %"},{"line_number":1132,"context_line":"                    (total_rate_for_vf - total_rate_used))"},{"line_number":1133,"context_line":"            raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"a95258cf_8c73c28b","line":1130,"in_reply_to":"f36268be_bc57c91e","updated":"2025-05-04 17:09:30.000000000","message":"Not changing here because this actually is previously existing code.\nIt is being shown here because of change in Indentation.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":1488,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1489,"context_line":"    _check_interface_ptp(interface)"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"cac7e8a6_1c12286c","line":1491,"updated":"2025-05-01 08:00:43.000000000","message":"This check will not be needed if we write the common validation logic as mentioned in line 1097","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"0330862612ef5ccd78b4f81ea6602e4a9401bc27","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1489,"context_line":"    _check_interface_ptp(interface)"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"81c48dde_defcf070","line":1491,"in_reply_to":"cac7e8a6_1c12286c","updated":"2025-05-01 08:06:14.000000000","message":"Done","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"},{"line_number":1495,"context_line":"            _check_platform_interface_ratelimit(interface)"},{"line_number":1496,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"453d7bc8_bb234061","line":1493,"updated":"2025-05-01 08:00:43.000000000","message":"May we should rename it to _check_vf_interface_ratelimit ?\n_check_platform_interface_ratelimit : checks for all interfaces except VF is it ?","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"7d2b331823ef66bedade578180ad2bb5fe065988","unresolved":true,"context_lines":[{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"},{"line_number":1495,"context_line":"            _check_platform_interface_ratelimit(interface)"},{"line_number":1496,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bd5e13d9_bac4fa26","line":1493,"in_reply_to":"453d7bc8_bb234061","updated":"2025-05-04 17:09:30.000000000","message":"Ideally Yes, the function name should be \"_check_vf_interface_ratelimit\"\nBut since \"_check_interface_ratelimit\" is the old function name, keeping it as it is for now.\n\n\"_check_platform_interface_ratelimit\" will check for interfaces of class \"platform\", These interfaces are not related to VFs, thus the bifurcation.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"3bf4e6242ef8deef4d532e29d6080db83354ca58","unresolved":true,"context_lines":[{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"},{"line_number":1495,"context_line":"            _check_platform_interface_ratelimit(interface)"},{"line_number":1496,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"b9b1b716_95f46474","line":1493,"in_reply_to":"453d7bc8_bb234061","updated":"2025-05-04 07:14:58.000000000","message":"_check_platform_interface_ratelimit from the function name seems like it should check all the platform interfaces so it should call _check_vf_interface_ratelimit also?","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"f5c99b849eaf839855ae233bd3151e8e2692edc8","unresolved":false,"context_lines":[{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    if interface[\u0027max_tx_rate\u0027] is not None or interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1492,"context_line":"        if iftype \u003d\u003d constants.INTERFACE_TYPE_VF:"},{"line_number":1493,"context_line":"            _check_interface_ratelimit(interface)"},{"line_number":1494,"context_line":"        else:"},{"line_number":1495,"context_line":"            _check_platform_interface_ratelimit(interface)"},{"line_number":1496,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"03b2f3ad_ff99faf0","line":1493,"in_reply_to":"bd5e13d9_bac4fa26","updated":"2025-05-05 06:46:43.000000000","message":"Done","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":2259,"context_line":"        interface[\u0027iftype\u0027] in [constants.INTERFACE_TYPE_ETHERNET,"},{"line_number":2260,"context_line":"                                constants.INTERFACE_TYPE_AE,"},{"line_number":2261,"context_line":"                                constants.INTERFACE_TYPE_VLAN]:"},{"line_number":2262,"context_line":"        if interface[\u0027max_tx_rate\u0027] is not None:"},{"line_number":2263,"context_line":"            if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":2264,"context_line":"                msg \u003d _(\"max_tx_rate must be an non-negative integer value.\")"},{"line_number":2265,"context_line":"                raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"863b442b_84b326c1","line":2262,"updated":"2025-05-01 08:00:43.000000000","message":"As mentioned in line 1130 \n\ndef validate_rate(rate, label, min_value):\n    raise_if(not isinstance(rate, int), f\"{label} must be a non-negative integer value.\")\n    raise_if(rate \u003c min_value, f\"Value of {label} shall be greater than or equal to {min_value} Mbps.\")\n\n\nSomething like this ...","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"f5c99b849eaf839855ae233bd3151e8e2692edc8","unresolved":false,"context_lines":[{"line_number":2259,"context_line":"        interface[\u0027iftype\u0027] in [constants.INTERFACE_TYPE_ETHERNET,"},{"line_number":2260,"context_line":"                                constants.INTERFACE_TYPE_AE,"},{"line_number":2261,"context_line":"                                constants.INTERFACE_TYPE_VLAN]:"},{"line_number":2262,"context_line":"        if interface[\u0027max_tx_rate\u0027] is not None:"},{"line_number":2263,"context_line":"            if not str(interface[\u0027max_tx_rate\u0027]).isdigit():"},{"line_number":2264,"context_line":"                msg \u003d _(\"max_tx_rate must be an non-negative integer value.\")"},{"line_number":2265,"context_line":"                raise wsme.exc.ClientSideError(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"61f94b2a_67f780b0","line":2262,"in_reply_to":"863b442b_84b326c1","updated":"2025-05-05 06:46:43.000000000","message":"Considering the repetition is only of 3 lines, and keeping in mind\nthe ease of reading here, a helper function \"validate_rate\" is not preferred.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":2279,"context_line":"                    constants.PLATFORM_RATELIMIT_LOWER_CUTOFF))"},{"line_number":2280,"context_line":"                raise wsme.exc.ClientSideError(msg)"},{"line_number":2281,"context_line":""},{"line_number":2282,"context_line":"        LOG.info(\"Modifying rate_limit of interface {}, max_tx_rate: {}, max_rx_rate {}\".format("},{"line_number":2283,"context_line":"                interface[\u0027ifname\u0027], interface[\u0027max_tx_rate\u0027], interface[\u0027max_rx_rate\u0027]))"},{"line_number":2284,"context_line":"    else:"},{"line_number":2285,"context_line":"        msg \u003d _(\"max_tx_rate/max_rx_rate modification not allowed for the provided \""}],"source_content_type":"text/x-python","patch_set":16,"id":"23a3c20a_e0136aab","line":2282,"updated":"2025-05-01 08:00:43.000000000","message":"\"Modifying log\" inside a validation function might create confusion.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"f5c99b849eaf839855ae233bd3151e8e2692edc8","unresolved":false,"context_lines":[{"line_number":2279,"context_line":"                    constants.PLATFORM_RATELIMIT_LOWER_CUTOFF))"},{"line_number":2280,"context_line":"                raise wsme.exc.ClientSideError(msg)"},{"line_number":2281,"context_line":""},{"line_number":2282,"context_line":"        LOG.info(\"Modifying rate_limit of interface {}, max_tx_rate: {}, max_rx_rate {}\".format("},{"line_number":2283,"context_line":"                interface[\u0027ifname\u0027], interface[\u0027max_tx_rate\u0027], interface[\u0027max_rx_rate\u0027]))"},{"line_number":2284,"context_line":"    else:"},{"line_number":2285,"context_line":"        msg \u003d _(\"max_tx_rate/max_rx_rate modification not allowed for the provided \""}],"source_content_type":"text/x-python","patch_set":16,"id":"699ecd75_db4837c7","line":2282,"in_reply_to":"23a3c20a_e0136aab","updated":"2025-05-05 06:46:43.000000000","message":"Done","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"396dd39d7c5b8576db0707c38a2d65e5f53e7bcb","unresolved":true,"context_lines":[{"line_number":1087,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1093,"context_line":"        msg \u003d _(\"max_rx_rate is not applicable for VF interfaces\")"}],"source_content_type":"text/x-python","patch_set":26,"id":"eabb17bc_a82960e3","line":1090,"updated":"2025-05-28 15:06:59.000000000","message":"Please this to _check_vf_interface_ratelimit","commit_id":"cd7f8f0d8a2d1cac736d08c452b5d3ada46cc674"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"6e7dfcbca7aed3127f80dcd64fcff9dc2f300ee0","unresolved":false,"context_lines":[{"line_number":1087,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":"def _check_interface_ratelimit(interface):"},{"line_number":1091,"context_line":"    # Ensure rate limit is valid for VF interfaces"},{"line_number":1092,"context_line":"    if interface[\u0027max_rx_rate\u0027] is not None:"},{"line_number":1093,"context_line":"        msg \u003d _(\"max_rx_rate is not applicable for VF interfaces\")"}],"source_content_type":"text/x-python","patch_set":26,"id":"a7cdd1a7_f37631ef","line":1090,"in_reply_to":"eabb17bc_a82960e3","updated":"2025-05-29 14:11:29.000000000","message":"Done","commit_id":"cd7f8f0d8a2d1cac736d08c452b5d3ada46cc674"}],"sysinv/sysinv/sysinv/sysinv/conductor/manager.py":[{"author":{"_account_id":36279,"name":"sabyasachi nayak","email":"sabyasachi.nayak@windriver.com","username":"snayak"},"change_message_id":"a17050987441dee6983013f467628382208f65a1","unresolved":true,"context_lines":[{"line_number":9908,"context_line":"        \"\"\""},{"line_number":9909,"context_line":"        # update manifest files and notify agent to apply them"},{"line_number":9910,"context_line":"        personalities \u003d [constants.CONTROLLER,"},{"line_number":9911,"context_line":"                            constants.WORKER]"},{"line_number":9912,"context_line":"        config_uuid \u003d self._config_update_hosts(context, personalities,"},{"line_number":9913,"context_line":"                                                host_uuids\u003d[host_uuid])"},{"line_number":9914,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"4b335176_181ac7cb","line":9911,"updated":"2025-05-01 08:00:43.000000000","message":"From https://docs.starlingx.io/storage/kubernetes/storage-backends.html\n\nstorage-nodes\n\nApplies to the Standard with Dedicated Storage deployment configuration.\nCeph OSDs are configured only on storage nodes.\n\nStorage nodes can flood the network with:\n\nCeph replication/backfill traffic\n\nSo we dont need to ratelimit storage nodes?","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"},{"author":{"_account_id":36262,"name":"Aman Pandae","display_name":"Aman Pandae","email":"amanpandae.mothukuri@windriver.com","username":"amothuku1"},"change_message_id":"f5c99b849eaf839855ae233bd3151e8e2692edc8","unresolved":false,"context_lines":[{"line_number":9908,"context_line":"        \"\"\""},{"line_number":9909,"context_line":"        # update manifest files and notify agent to apply them"},{"line_number":9910,"context_line":"        personalities \u003d [constants.CONTROLLER,"},{"line_number":9911,"context_line":"                            constants.WORKER]"},{"line_number":9912,"context_line":"        config_uuid \u003d self._config_update_hosts(context, personalities,"},{"line_number":9913,"context_line":"                                                host_uuids\u003d[host_uuid])"},{"line_number":9914,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9cdf196f_1b83ee03","line":9911,"in_reply_to":"4b335176_181ac7cb","updated":"2025-05-05 06:46:43.000000000","message":"We are not considering a rate limit for storage nodes at the moment.\nRate-limit feature is introduced to control management traffic.\nCeph replication traffic may not fall under that category.","commit_id":"cc8a24ae4a2678df23253c1c763b73aade5d537a"}]}
