)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"edb5ae07d577b2bfcaf2e73d7f269fafdf31ea39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9305536d_16926be8","updated":"2026-09-01 15:03:20.000000000","message":"Code and tests LGTM.","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"6058e6211f0ec5614ef3b224426750cce6c6f724","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bc7c29a1_34b6ffce","updated":"2026-09-01 15:58:03.000000000","message":"LGTM","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b704125cc844340f795655d69ca99586a85d2287","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"88334144_d023c8e4","updated":"2026-09-01 03:22:52.000000000","message":"Run-NetApp CI","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"aa3ed36d8de1f104f86e7a9707ecc515bdb570a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"42b35f31_bb37af06","updated":"2026-08-31 16:33:45.000000000","message":"recheck","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"be30619f64f388f84e7fd0cc76b158a84c6e0470","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b7f8386a_9a80322c","updated":"2026-08-31 15:21:30.000000000","message":"recheck","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"a04635f2e9cc683377a7eac4a45368fb4042bf8d","unresolved":true,"context_lines":[{"line_number":441,"context_line":"    \u0027policy_name\u0027: QOS_POLICY_GROUP_NAME,"},{"line_number":442,"context_line":"}"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"EXPECTED_IOPS_PER_GB \u003d \u0027128IOPS/GB\u0027"},{"line_number":445,"context_line":"PEAK_IOPS_PER_GB \u003d \u0027512IOPS/GB\u0027"},{"line_number":446,"context_line":"EXPECTED_IOPS_ALLOCATION \u003d \u0027used-space\u0027"},{"line_number":447,"context_line":"PEAK_IOPS_ALLOCATION \u003d \u0027used-space\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"e8809136_303dc141","line":444,"updated":"2026-09-01 15:11:06.000000000","message":"These constants are also used by ZAPI tests as \u0027%sIOPS/GB\u0027 % fake.EXPECTED_IOPS_PER_GB (test_client_cmode.py test_qos_adaptive_policy_group_create / _modify). Baking the unit in here makes those tests assert \u0027128IOPS/GBIOPS/GB\u0027 while still passing.","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"a04635f2e9cc683377a7eac4a45368fb4042bf8d","unresolved":true,"context_lines":[{"line_number":442,"context_line":"}"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"EXPECTED_IOPS_PER_GB \u003d \u0027128IOPS/GB\u0027"},{"line_number":445,"context_line":"PEAK_IOPS_PER_GB \u003d \u0027512IOPS/GB\u0027"},{"line_number":446,"context_line":"EXPECTED_IOPS_ALLOCATION \u003d \u0027used-space\u0027"},{"line_number":447,"context_line":"PEAK_IOPS_ALLOCATION \u003d \u0027used-space\u0027"},{"line_number":448,"context_line":"ABSOLUTE_MIN_IOPS \u003d \u002775IOPS\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"06f72366_fa0e88cb","line":445,"updated":"2026-09-01 15:11:06.000000000","message":"same as above","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"a04635f2e9cc683377a7eac4a45368fb4042bf8d","unresolved":true,"context_lines":[{"line_number":445,"context_line":"PEAK_IOPS_PER_GB \u003d \u0027512IOPS/GB\u0027"},{"line_number":446,"context_line":"EXPECTED_IOPS_ALLOCATION \u003d \u0027used-space\u0027"},{"line_number":447,"context_line":"PEAK_IOPS_ALLOCATION \u003d \u0027used-space\u0027"},{"line_number":448,"context_line":"ABSOLUTE_MIN_IOPS \u003d \u002775IOPS\u0027"},{"line_number":449,"context_line":"BLOCK_SIZE \u003d \u0027ANY\u0027"},{"line_number":450,"context_line":"ADAPTIVE_QOS_SPEC \u003d {"},{"line_number":451,"context_line":"    \u0027policy_name\u0027: QOS_POLICY_GROUP_NAME,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6872d188_7c33ceec","line":448,"updated":"2026-09-01 15:11:06.000000000","message":"same as above","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"edb5ae07d577b2bfcaf2e73d7f269fafdf31ea39","unresolved":true,"context_lines":[{"line_number":1530,"context_line":"        # e.g. \u0027128IOPS/GB\u0027; the \u0027/GB\u0027 suffix must also be stripped or"},{"line_number":1531,"context_line":"        # int() raises ValueError."},{"line_number":1532,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027).replace("},{"line_number":1533,"context_line":"            \u0027/gb\u0027, \u0027\u0027)"},{"line_number":1534,"context_line":"        value \u003d int(value)"},{"line_number":1535,"context_line":"        return value"},{"line_number":1536,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3c249bb7_74702718","line":1533,"updated":"2026-09-01 15:03:20.000000000","message":"I was going to suggest using re.match() to get the numeric part of the string, but this is probably better because you\u0027ll get breakage if the value contains something you don\u0027t recognize.","commit_id":"0772f1a23d138900080d2061f2c7dcc22d739fb5"}]}
