)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8900b9b2e0350186c3dd4ef133849b9338296f2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"09999c70_709d8b70","updated":"2026-07-08 13:14:57.000000000","message":"recheck","commit_id":"2e1cefa58e7096c9f2d0aec74584d400cbe00d67"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"16fdf60b6a2a0413d1a5f35ebed1e809b963232b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"91ae8fa1_02076a3d","updated":"2026-07-09 09:20:01.000000000","message":"recheck","commit_id":"6c42591c2637b031de16a43e094e310cc498e786"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"4ac8130a2b154006f10fb30b26f4e954f1f087d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"931b80d2_2c494019","updated":"2026-07-27 11:00:12.000000000","message":"recheck","commit_id":"4a75a7b76479285ebeb5ce4a4100d7d5282cb010"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"826eb97c4d57cf40cf556741f83b83986e1590cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ca2c3285_57599e5c","updated":"2026-08-04 09:23:46.000000000","message":"overall looks good.","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"e71e214a219e8be76a24feecb193ee86aef76501","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"319a70d2_33e0b972","updated":"2026-07-30 07:00:47.000000000","message":"run-NetApp CI","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7f332c80cb3dad2bd62463b39bd75ee18b3becfa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9072b24f_c5ddc993","updated":"2026-08-10 04:45:36.000000000","message":"recheck","commit_id":"46d0fc3c65fa7538610774942d10b8bd030ff1b3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"905b692e04eb107d7c4d77c9131aceb9efe26771","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"96f64ae7_4b4219e5","updated":"2026-08-06 12:37:46.000000000","message":"recheck","commit_id":"46d0fc3c65fa7538610774942d10b8bd030ff1b3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8c058f35949db308b2378c93c7cd4e60b1b6bf8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f4f502ab_4196916f","updated":"2026-08-05 12:35:59.000000000","message":"recheck","commit_id":"46d0fc3c65fa7538610774942d10b8bd030ff1b3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"450524f6df63f653ec5993eba509dcd97af48dc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"048b0c31_a282ec74","updated":"2026-08-05 17:40:42.000000000","message":"run-NetApp CI","commit_id":"46d0fc3c65fa7538610774942d10b8bd030ff1b3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"3340f55ac2769bd1b674be46ad9355433221cde1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"09afdac0_5ee2c6b4","updated":"2026-08-17 10:29:36.000000000","message":"Run-NetApp CI","commit_id":"87c9539475d172b021eb30689c548713d0007f4c"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"24e5e15ae621ffaa3bc302e5b4cb230f865044dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"92cb4ec0_65595466","updated":"2026-08-24 08:18:24.000000000","message":"Run-NetApp CI","commit_id":"87c9539475d172b021eb30689c548713d0007f4c"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"09d82fbfc483699b67fdd0e16aa399c48e869d48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"819d7130_d921e554","updated":"2026-08-20 14:09:15.000000000","message":"recheck","commit_id":"87c9539475d172b021eb30689c548713d0007f4c"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/utils/test_ems.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"585fe0e9b306beff85579c0a8b233ff0eae45a0b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.tests.unit import test"},{"line_number":19,"context_line":"from cinder.volume.drivers.netapp import options as na_opts"},{"line_number":20,"context_line":"from cinder.volume.drivers.netapp.dataontap.utils import ems"},{"line_number":21,"context_line":"from cinder.volume.drivers.netapp.dataontap.utils import utils as dot_utils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7c223e76_bf6d098f","line":20,"updated":"2026-07-08 16:30:17.000000000","message":"pep8: H306: imports not in alphabetical order (cinder.volume.drivers.netapp.options, cinder.volume.drivers.netapp.dataontap.utils.ems)","commit_id":"2e1cefa58e7096c9f2d0aec74584d400cbe00d67"}],"cinder/volume/drivers/netapp/dataontap/utils/ems.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b9d266c0d65d861d2f1a25af158c157eac4da7ec","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.db import api as db"},{"line_number":24,"context_line":"from cinder import objects"},{"line_number":25,"context_line":"from cinder.volume.drivers.netapp import options as na_opts"},{"line_number":26,"context_line":"from cinder.volume.drivers.netapp.dataontap.utils import utils as dot_utils"},{"line_number":27,"context_line":"from cinder.volume import volume_utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ef717c89_b860f3a2","line":26,"updated":"2026-07-07 08:56:33.000000000","message":"pep8: H306: imports not in alphabetical order (cinder.volume.drivers.netapp.options, cinder.volume.drivers.netapp.dataontap.utils.utils)","commit_id":"2b5d215afcef22cb1bbd41957084c417fd00c742"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b9d266c0d65d861d2f1a25af158c157eac4da7ec","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        ]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def build_deployment_message(self):"},{"line_number":88,"context_line":"        \"\"\"Build event 0 with deployment, config, capability, and count data.\"\"\""},{"line_number":89,"context_line":"        payload \u003d {"},{"line_number":90,"context_line":"            \u0027openstack\u0027: self._get_attr(\u0027app_version\u0027, \u0027unknown\u0027),"},{"line_number":91,"context_line":"            \u0027driver_name\u0027: self._get_attr(\u0027driver_name\u0027, \u0027unknown\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"22055a22_6608de21","line":88,"updated":"2026-07-07 08:56:33.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"2b5d215afcef22cb1bbd41957084c417fd00c742"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b9d266c0d65d861d2f1a25af158c157eac4da7ec","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                continue"},{"line_number":144,"context_line":"            configs[key] \u003d value"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        replication_devices \u003d self._safe_get_config(config, \u0027replication_device\u0027)"},{"line_number":147,"context_line":"        if replication_devices:"},{"line_number":148,"context_line":"            backend_ids \u003d ["},{"line_number":149,"context_line":"                device.get(\u0027backend_id\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfdba93b_836c5603","line":146,"updated":"2026-07-07 08:56:33.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"2b5d215afcef22cb1bbd41957084c417fd00c742"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"826eb97c4d57cf40cf556741f83b83986e1590cd","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        payload \u003d {"},{"line_number":106,"context_line":"            \u0027pools\u0027: {"},{"line_number":107,"context_line":"                \u0027vserver\u0027: self._get_attr(\u0027vserver\u0027),"},{"line_number":108,"context_line":"                \u0027aggregates\u0027: self._get_aggregates(pools),"},{"line_number":109,"context_line":"                \u0027flexvols\u0027: [self._pack_pool(pool) for pool in pools],"},{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"5480bcc0_f0a2334d","line":108,"updated":"2026-08-04 09:23:46.000000000","message":"for asar2 this will be none right ?","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"179f20d724abaa9ab59f1b1aae74d21fd585c0ae","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        payload \u003d {"},{"line_number":106,"context_line":"            \u0027pools\u0027: {"},{"line_number":107,"context_line":"                \u0027vserver\u0027: self._get_attr(\u0027vserver\u0027),"},{"line_number":108,"context_line":"                \u0027aggregates\u0027: self._get_aggregates(pools),"},{"line_number":109,"context_line":"                \u0027flexvols\u0027: [self._pack_pool(pool) for pool in pools],"},{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"6492cf8b_46bcd9ee","line":108,"in_reply_to":"5480bcc0_f0a2334d","updated":"2026-08-05 12:35:46.000000000","message":"Handled ASAr2 in the latest patchset.","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"826eb97c4d57cf40cf556741f83b83986e1590cd","unresolved":true,"context_lines":[{"line_number":106,"context_line":"            \u0027pools\u0027: {"},{"line_number":107,"context_line":"                \u0027vserver\u0027: self._get_attr(\u0027vserver\u0027),"},{"line_number":108,"context_line":"                \u0027aggregates\u0027: self._get_aggregates(pools),"},{"line_number":109,"context_line":"                \u0027flexvols\u0027: [self._pack_pool(pool) for pool in pools],"},{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"        }"},{"line_number":112,"context_line":"        return self._build_message(\u00271\u0027, payload)"}],"source_content_type":"text/x-python","patch_set":6,"id":"b9bccdca_16999c33","line":109,"updated":"2026-08-04 09:23:46.000000000","message":"same here. will this be none for asar2 ?","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"179f20d724abaa9ab59f1b1aae74d21fd585c0ae","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            \u0027pools\u0027: {"},{"line_number":107,"context_line":"                \u0027vserver\u0027: self._get_attr(\u0027vserver\u0027),"},{"line_number":108,"context_line":"                \u0027aggregates\u0027: self._get_aggregates(pools),"},{"line_number":109,"context_line":"                \u0027flexvols\u0027: [self._pack_pool(pool) for pool in pools],"},{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"        }"},{"line_number":112,"context_line":"        return self._build_message(\u00271\u0027, payload)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3180f58b_6eaa602f","line":109,"in_reply_to":"b9bccdca_16999c33","updated":"2026-08-05 12:35:46.000000000","message":"Handled ASAr2 in the latest patchset.","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"826eb97c4d57cf40cf556741f83b83986e1590cd","unresolved":true,"context_lines":[{"line_number":134,"context_line":"                    continue"},{"line_number":135,"context_line":"                configs[opt.name] \u003d value"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        for key in BACKEND_CONFIG_KEYS:"},{"line_number":138,"context_line":"            if key in EMS_SECRET_OPTS:"},{"line_number":139,"context_line":"                continue"},{"line_number":140,"context_line":"            if key \u003d\u003d \u0027nfs_sparsed_volumes\u0027 and not self._is_nfs_backend():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3755a866_bea1f840","line":137,"updated":"2026-08-04 09:23:46.000000000","message":"the backend config keys are exclusive of ems_secret_opts. Henc is the next check required ?","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"179f20d724abaa9ab59f1b1aae74d21fd585c0ae","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                    continue"},{"line_number":135,"context_line":"                configs[opt.name] \u003d value"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        for key in BACKEND_CONFIG_KEYS:"},{"line_number":138,"context_line":"            if key in EMS_SECRET_OPTS:"},{"line_number":139,"context_line":"                continue"},{"line_number":140,"context_line":"            if key \u003d\u003d \u0027nfs_sparsed_volumes\u0027 and not self._is_nfs_backend():"}],"source_content_type":"text/x-python","patch_set":6,"id":"e828de50_eea3c461","line":137,"in_reply_to":"3755a866_bea1f840","updated":"2026-08-05 12:35:46.000000000","message":"This is just a check to avoid duplication of keys where keys are added to BACKEND_CONFIG_KEYS but are supposed to be secret opts. secret opts behaves as immutable set of keys that cannot be added to payload. Will keep this check as it helps in manageability of code in future.","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"826eb97c4d57cf40cf556741f83b83986e1590cd","unresolved":true,"context_lines":[{"line_number":177,"context_line":"        counts \u003d {}"},{"line_number":178,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        self._set_count("},{"line_number":181,"context_line":"            counts, \u0027volumes\u0027,"},{"line_number":182,"context_line":"            lambda: db.volume_data_get_for_host("},{"line_number":183,"context_line":"                ctxt, self._get_attr(\u0027host\u0027), count_only\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":6,"id":"10af3d17_11afd88b","line":180,"updated":"2026-08-04 09:23:46.000000000","message":"how do we handle asar2 here ?","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"179f20d724abaa9ab59f1b1aae74d21fd585c0ae","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        counts \u003d {}"},{"line_number":178,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        self._set_count("},{"line_number":181,"context_line":"            counts, \u0027volumes\u0027,"},{"line_number":182,"context_line":"            lambda: db.volume_data_get_for_host("},{"line_number":183,"context_line":"                ctxt, self._get_attr(\u0027host\u0027), count_only\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":6,"id":"cecb7135_0d079302","line":180,"in_reply_to":"10af3d17_11afd88b","updated":"2026-08-05 12:35:46.000000000","message":"Handled ASAr2 in the latest patchset.","commit_id":"bafedb1b52cc672c666ca3e376c946a290e3ac38"}]}
