)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"8c3f973a695c1664c42fcff84855355ccf57009d","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     agireesh \u003cgawasthi2010@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-10-09 13:25:17 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added additional debug logs for cinder volume creation and"},{"line_number":8,"context_line":"volume update stats"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ie43bd590ba78977aaa5d8c395951780f81e7f140"},{"line_number":11,"context_line":"Signed-off-by: agireesh \u003cgawasthi2010@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ed8150f9_055b3ed1","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":1},"updated":"2025-10-13 14:06:51.000000000","message":"The commit message subject should just be s single line. I also think the subject should mention \"NetApp\" or else it implies the logs were added to cinder\u0027s main workflows.\n\nI think L7 and L8 are fine for the commit message body, so a good way to address my comments would be to add a subject line above them stating \"NetApp: Add additional debug logs\" and let L7 and L8 provide additional info.","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bd337031c74f9d5a84983b3959551a1db229534e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     agireesh \u003cgawasthi2010@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-10-09 13:25:17 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added additional debug logs for cinder volume creation and"},{"line_number":8,"context_line":"volume update stats"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ie43bd590ba78977aaa5d8c395951780f81e7f140"},{"line_number":11,"context_line":"Signed-off-by: agireesh \u003cgawasthi2010@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"071a549e_e7b1913d","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":1},"in_reply_to":"ed8150f9_055b3ed1","updated":"2025-10-13 15:09:45.000000000","message":"Done","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"}],"/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":"1c85c53195b31b67690190339ffeb2fffd8535f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"81f1e94c_0d01e9ad","updated":"2025-10-06 15:21:04.000000000","message":"LGTM","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"36960b14_23509a70","updated":"2025-10-07 08:28:58.000000000","message":"Thanks Rajat for your review comments, I have incorporated most of the review comments.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ebabb0ff_824de9f2","updated":"2025-10-06 18:37:28.000000000","message":"few comments inline","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5fe616c0d9dd9252c3c4f1dcb0072734a26e275c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4129f6ab_2811815d","updated":"2025-10-08 06:21:21.000000000","message":"Modifying the code to use volume[\u0027id\u0027], instead of volume.id","commit_id":"448929efdae6c29ba36d4b9bfcbe585d5929e6a0"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"984628fa0e8de58959c125bc6dd75a9440b93f4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e36d0f70_ca9117fc","updated":"2025-10-10 05:14:35.000000000","message":"LGTM","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b735e01d89df193159d3788f06e2dc9fb11a13d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d5a8e264_e7891741","updated":"2025-10-13 07:26:47.000000000","message":"Thanks for addressing my comments, LGTM.","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bd337031c74f9d5a84983b3959551a1db229534e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"be1357de_09eaae12","updated":"2025-10-13 15:09:45.000000000","message":"Thanks @abishop@redhat.com for you review comments, I have incorporated all of them.","commit_id":"2f5ffa9c98774a6a87a598550d81818a8885220b"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5421361e34d6733273a5ff087087c6bda52217c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7252a24c_94d09860","updated":"2025-10-14 21:54:25.000000000","message":"LGTM.  Since you\u0027re adding debug logs to indicate function entry and exit, you might want to look into the \u0027trace\u0027 decorator defined in cinder/volume/volume_utils.py.  The Pure driver in particular uses them a lot if you want to see some example usage.","commit_id":"475002c33473dc05a749f54b469ba3edb75ee533"}],"cinder/volume/drivers/netapp/dataontap/block_base.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":249,"context_line":"                    \u0027SpaceReserved\u0027: self.lun_space_reservation,"},{"line_number":250,"context_line":"                    \u0027SpaceAllocated\u0027: str(space_allocation).lower(),"},{"line_number":251,"context_line":"                    \u0027Path\u0027: \u0027/vol/%s/%s\u0027 % (pool_name, lun_name)}"},{"line_number":252,"context_line":"        LOG.debug(\"Volume metadata: %s\", metadata)"},{"line_number":253,"context_line":"        qos_policy_group_info \u003d self._setup_qos_for_volume(volume, extra_specs)"},{"line_number":254,"context_line":"        qos_policy_group_name \u003d ("},{"line_number":255,"context_line":"            na_utils.get_qos_policy_group_name_from_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"c0c08f73_fb5ce830","line":252,"range":{"start_line":252,"start_character":41,"end_line":252,"end_character":49},"updated":"2025-10-06 18:37:28.000000000","message":"are all of the metadata properties important to be logged or we are just logging here? If yes, it\u0027s fine otherwise we could log specific properties that we desire like Path or SpaceAllocated etc.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027SpaceReserved\u0027: self.lun_space_reservation,"},{"line_number":250,"context_line":"                    \u0027SpaceAllocated\u0027: str(space_allocation).lower(),"},{"line_number":251,"context_line":"                    \u0027Path\u0027: \u0027/vol/%s/%s\u0027 % (pool_name, lun_name)}"},{"line_number":252,"context_line":"        LOG.debug(\"Volume metadata: %s\", metadata)"},{"line_number":253,"context_line":"        qos_policy_group_info \u003d self._setup_qos_for_volume(volume, extra_specs)"},{"line_number":254,"context_line":"        qos_policy_group_name \u003d ("},{"line_number":255,"context_line":"            na_utils.get_qos_policy_group_name_from_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"fce8c185_682b282e","line":252,"range":{"start_line":252,"start_character":41,"end_line":252,"end_character":49},"in_reply_to":"c0c08f73_fb5ce830","updated":"2025-10-07 08:28:58.000000000","message":"We need all these fields for debugging and triaging purpose.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":258,"context_line":"            extra_specs.get(\u0027netapp:qos_policy_group_is_adaptive\u0027))"},{"line_number":259,"context_line":"            or na_utils.is_qos_policy_group_spec_adaptive"},{"line_number":260,"context_line":"            (qos_policy_group_info))"},{"line_number":261,"context_line":"        LOG.debug(\u0027Creating LUN lun_name %s and size: %s\u0027, lun_name, size)"},{"line_number":262,"context_line":"        try:"},{"line_number":263,"context_line":"            self._create_lun(pool_name, lun_name, size, metadata,"},{"line_number":264,"context_line":"                             qos_policy_group_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a7967554_7df759ba","line":261,"range":{"start_line":261,"start_character":19,"end_line":261,"end_character":56},"updated":"2025-10-06 18:37:28.000000000","message":"This is confusing to see in logs, a better way to word it would be\n\n    LOG.debug(\"Creating LUN %(lun_name)s with size %(size)s\", {\u0027lun_name\u0027: lun_name, \u0027size\u0027: size})","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            extra_specs.get(\u0027netapp:qos_policy_group_is_adaptive\u0027))"},{"line_number":259,"context_line":"            or na_utils.is_qos_policy_group_spec_adaptive"},{"line_number":260,"context_line":"            (qos_policy_group_info))"},{"line_number":261,"context_line":"        LOG.debug(\u0027Creating LUN lun_name %s and size: %s\u0027, lun_name, size)"},{"line_number":262,"context_line":"        try:"},{"line_number":263,"context_line":"            self._create_lun(pool_name, lun_name, size, metadata,"},{"line_number":264,"context_line":"                             qos_policy_group_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5800781c_587a5d13","line":261,"range":{"start_line":261,"start_character":19,"end_line":261,"end_character":56},"in_reply_to":"a7967554_7df759ba","updated":"2025-10-07 08:28:58.000000000","message":"Done","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"}],"cinder/volume/drivers/netapp/dataontap/block_cmode.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                    metadata, qos_policy_group_name\u003dNone,"},{"line_number":208,"context_line":"                    qos_policy_group_is_adaptive\u003dFalse):"},{"line_number":209,"context_line":"        \"\"\"Creates a LUN, handling Data ONTAP differences as needed.\"\"\""},{"line_number":210,"context_line":"        LOG.debug(\"Creating LUN with name %s\", lun_name)"},{"line_number":211,"context_line":"        self.zapi_client.create_lun("},{"line_number":212,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":213,"context_line":"            qos_policy_group_is_adaptive)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a21f0c2f_51b6f81b","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":56},"updated":"2025-10-06 18:37:28.000000000","message":"This log doesn\u0027t serve much purpose than to time the create_lun call with a before/after logging","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    metadata, qos_policy_group_name\u003dNone,"},{"line_number":208,"context_line":"                    qos_policy_group_is_adaptive\u003dFalse):"},{"line_number":209,"context_line":"        \"\"\"Creates a LUN, handling Data ONTAP differences as needed.\"\"\""},{"line_number":210,"context_line":"        LOG.debug(\"Creating LUN with name %s\", lun_name)"},{"line_number":211,"context_line":"        self.zapi_client.create_lun("},{"line_number":212,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":213,"context_line":"            qos_policy_group_is_adaptive)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a6939022_7c51d9b6","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":56},"in_reply_to":"a21f0c2f_51b6f81b","updated":"2025-10-07 08:28:58.000000000","message":"That is the purpose, we need to get the time taken by LUN create via REST/ZAPI call.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":211,"context_line":"        self.zapi_client.create_lun("},{"line_number":212,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":213,"context_line":"            qos_policy_group_is_adaptive)"},{"line_number":214,"context_line":"        LOG.debug(\"Created LUN with name %s\", lun_name)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def _create_lun_handle(self, metadata, vserver\u003dNone):"},{"line_number":217,"context_line":"        \"\"\"Returns LUN handle based on filer type.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"cabca2fa_222ef44f","line":214,"range":{"start_line":214,"start_character":36,"end_line":214,"end_character":40},"updated":"2025-10-06 18:37:28.000000000","message":"name is ambiguous here since we could be referring to volume_name or lun_name, since we are already adding a log, it would be better to include both\n\n    LOG.debug(\"Created LUN with volume name %(vol)s and lun name %(lun)s\", {\u0027vol\u0027: volume_name, \u0027lun\u0027: lun_name})","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        self.zapi_client.create_lun("},{"line_number":212,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":213,"context_line":"            qos_policy_group_is_adaptive)"},{"line_number":214,"context_line":"        LOG.debug(\"Created LUN with name %s\", lun_name)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def _create_lun_handle(self, metadata, vserver\u003dNone):"},{"line_number":217,"context_line":"        \"\"\"Returns LUN handle based on filer type.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"14ff8474_e2ee9cc8","line":214,"range":{"start_line":214,"start_character":36,"end_line":214,"end_character":40},"in_reply_to":"cabca2fa_222ef44f","updated":"2025-10-07 08:28:58.000000000","message":"Addressed logs format in both the places.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":513,"context_line":"        LOG.debug(msg, {\u0027name\u0027: volume[\u0027name\u0027], \u0027qos\u0027: qos_policy_group_info})"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _setup_qos_for_volume(self, volume, extra_specs):"},{"line_number":516,"context_line":"        LOG.debug(\"Setting up QoS policy group for volume %s\", volume[\u0027id\u0027])"},{"line_number":517,"context_line":"        LOG.debug(\"ExtraSpecs: %s\", extra_specs)"},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"66597fab_225e0883","line":516,"range":{"start_line":516,"start_character":63,"end_line":516,"end_character":75},"updated":"2025-10-06 18:37:28.000000000","message":"volume.id","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        LOG.debug(msg, {\u0027name\u0027: volume[\u0027name\u0027], \u0027qos\u0027: qos_policy_group_info})"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _setup_qos_for_volume(self, volume, extra_specs):"},{"line_number":516,"context_line":"        LOG.debug(\"Setting up QoS policy group for volume %s\", volume[\u0027id\u0027])"},{"line_number":517,"context_line":"        LOG.debug(\"ExtraSpecs: %s\", extra_specs)"},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"fecf02d2_0b9870af","line":516,"range":{"start_line":516,"start_character":63,"end_line":516,"end_character":75},"in_reply_to":"66597fab_225e0883","updated":"2025-10-07 08:28:58.000000000","message":"Done","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5fe616c0d9dd9252c3c4f1dcb0072734a26e275c","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        LOG.debug(msg, {\u0027name\u0027: volume[\u0027name\u0027], \u0027qos\u0027: qos_policy_group_info})"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _setup_qos_for_volume(self, volume, extra_specs):"},{"line_number":516,"context_line":"        LOG.debug(\"Setting up QoS policy group for volume %s\", volume[\u0027id\u0027])"},{"line_number":517,"context_line":"        LOG.debug(\"ExtraSpecs: %s\", extra_specs)"},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"1e4659a2_e71874ca","line":516,"range":{"start_line":516,"start_character":63,"end_line":516,"end_character":75},"in_reply_to":"fecf02d2_0b9870af","updated":"2025-10-08 06:21:21.000000000","message":"I am reverting this code as volume.id case it is failing \n\nFile \"/root/GIT/cinder/cinder/volume/drivers/netapp/dataontap/block_cmode.py\", line 520, in _setup_qos_for_volume\n    LOG.debug(msg, {\u0027volume_id\u0027: volume.id, \u0027extra_specs\u0027: extra_specs})\n\n    AttributeError: \u0027dict\u0027 object has no attribute \u0027id\u0027","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _setup_qos_for_volume(self, volume, extra_specs):"},{"line_number":516,"context_line":"        LOG.debug(\"Setting up QoS policy group for volume %s\", volume[\u0027id\u0027])"},{"line_number":517,"context_line":"        LOG.debug(\"ExtraSpecs: %s\", extra_specs)"},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("},{"line_number":520,"context_line":"                volume, extra_specs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a49114af_bda156f2","line":517,"range":{"start_line":517,"start_character":8,"end_line":517,"end_character":48},"updated":"2025-10-06 18:37:28.000000000","message":"why don\u0027t we make it a part of above log itself?\n\n    for volume %s with ExtraSpecs %s","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _setup_qos_for_volume(self, volume, extra_specs):"},{"line_number":516,"context_line":"        LOG.debug(\"Setting up QoS policy group for volume %s\", volume[\u0027id\u0027])"},{"line_number":517,"context_line":"        LOG.debug(\"ExtraSpecs: %s\", extra_specs)"},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("},{"line_number":520,"context_line":"                volume, extra_specs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1e853af6_8fa31955","line":517,"range":{"start_line":517,"start_character":8,"end_line":517,"end_character":48},"in_reply_to":"a49114af_bda156f2","updated":"2025-10-07 08:28:58.000000000","message":"Done","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                    \u0027policy for volume %s\u0027) % volume[\u0027id\u0027]"},{"line_number":524,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":525,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":526,"context_line":"        LOG.debug(\"pool % s:\", pool)"},{"line_number":527,"context_line":"        qos_min_support \u003d self.ssc_library.is_qos_min_supported(pool)"},{"line_number":528,"context_line":"        LOG.debug(\"qos_min_support %s:\", qos_min_support)"},{"line_number":529,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"20940009_b58cfd57","line":526,"range":{"start_line":526,"start_character":24,"end_line":526,"end_character":27},"updated":"2025-10-06 18:37:28.000000000","message":"this won\u0027t work as expected due to the space between % and s\nthis makes me wonder if we have verified if all the logs work?","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                    \u0027policy for volume %s\u0027) % volume[\u0027id\u0027]"},{"line_number":524,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":525,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":526,"context_line":"        LOG.debug(\"pool % s:\", pool)"},{"line_number":527,"context_line":"        qos_min_support \u003d self.ssc_library.is_qos_min_supported(pool)"},{"line_number":528,"context_line":"        LOG.debug(\"qos_min_support %s:\", qos_min_support)"},{"line_number":529,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7efe0247_41504b21","line":526,"range":{"start_line":526,"start_character":24,"end_line":526,"end_character":27},"in_reply_to":"20940009_b58cfd57","updated":"2025-10-07 08:28:58.000000000","message":"This is because Python\u0027s old-style string formatting allows optional whitespace between % and the format specifier. But will remove the space. We tested the logs and it is printing pool details. Log for your reference below.\n\n2025-10-06 12:33:20.443 2579947 DEBUG cinder.volume.drivers.netapp.dataontap.block_cmode [None req-dc262216-8a17-48be-bce8-5587f04d1969 abf6298faeec465cb14df80a2d82156f 771a79d5b00f462593d1928d9769ea29 - - - -] pool Jec_ssd_vol04: _setup_qos_for_volume /usr/lib/python3.9/site-packages/cinder/volume/drivers/netapp/dataontap/block_cmode.py:489","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":525,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":526,"context_line":"        LOG.debug(\"pool % s:\", pool)"},{"line_number":527,"context_line":"        qos_min_support \u003d self.ssc_library.is_qos_min_supported(pool)"},{"line_number":528,"context_line":"        LOG.debug(\"qos_min_support %s:\", qos_min_support)"},{"line_number":529,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"},{"line_number":530,"context_line":"                                                    qos_min_support)"},{"line_number":531,"context_line":"        return qos_policy_group_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"34ae9398_2dbbf17f","line":528,"range":{"start_line":528,"start_character":35,"end_line":528,"end_character":38},"updated":"2025-10-06 18:37:28.000000000","message":"nit: the colon should be before the variable placeholder\n\n    \"qos_min_support: %s\"","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":526,"context_line":"        LOG.debug(\"pool % s:\", pool)"},{"line_number":527,"context_line":"        qos_min_support \u003d self.ssc_library.is_qos_min_supported(pool)"},{"line_number":528,"context_line":"        LOG.debug(\"qos_min_support %s:\", qos_min_support)"},{"line_number":529,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"},{"line_number":530,"context_line":"                                                    qos_min_support)"},{"line_number":531,"context_line":"        return qos_policy_group_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"60da5fb1_96123050","line":528,"range":{"start_line":528,"start_character":35,"end_line":528,"end_character":38},"in_reply_to":"34ae9398_2dbbf17f","updated":"2025-10-07 08:28:58.000000000","message":"Done","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"8c3f973a695c1664c42fcff84855355ccf57009d","unresolved":true,"context_lines":[{"line_number":212,"context_line":"        self.zapi_client.create_lun("},{"line_number":213,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":214,"context_line":"            qos_policy_group_is_adaptive)"},{"line_number":215,"context_line":"        LOG.debug(\"Created LUN with volume name %(vol)s and lun name %(lun)s\","},{"line_number":216,"context_line":"                  {\u0027vol\u0027: volume_name, \u0027lun\u0027: lun_name})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _create_lun_handle(self, metadata, vserver\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"35379516_a3667320","line":215,"updated":"2025-10-13 14:06:51.000000000","message":"I like the pattern you use in the later logs, basically a pair consisting of \"Doing X\" followed by \"Successfully did X\". Here, we have \"Creating\" and \"Created\" as the only difference between the two messages. An alternative message here would be \"Successfully created LUN...\"","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bd337031c74f9d5a84983b3959551a1db229534e","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.zapi_client.create_lun("},{"line_number":213,"context_line":"            volume_name, lun_name, size, metadata, qos_policy_group_name,"},{"line_number":214,"context_line":"            qos_policy_group_is_adaptive)"},{"line_number":215,"context_line":"        LOG.debug(\"Created LUN with volume name %(vol)s and lun name %(lun)s\","},{"line_number":216,"context_line":"                  {\u0027vol\u0027: volume_name, \u0027lun\u0027: lun_name})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _create_lun_handle(self, metadata, vserver\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"b4275bfa_2b0889cf","line":215,"in_reply_to":"35379516_a3667320","updated":"2025-10-13 15:09:45.000000000","message":"Done","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"8c3f973a695c1664c42fcff84855355ccf57009d","unresolved":true,"context_lines":[{"line_number":543,"context_line":"                  qos_policy_group_info)"},{"line_number":544,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"},{"line_number":545,"context_line":"                                                    qos_min_support)"},{"line_number":546,"context_line":"        LOG.debug(\"Provisioned QoS policy group with info: %s\","},{"line_number":547,"context_line":"                  qos_policy_group_info)"},{"line_number":548,"context_line":"        return qos_policy_group_info"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"8df7c51e_3f036309","line":546,"updated":"2025-10-13 14:06:51.000000000","message":"This could be \"Successfully provisioned...\"","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bd337031c74f9d5a84983b3959551a1db229534e","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                  qos_policy_group_info)"},{"line_number":544,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info,"},{"line_number":545,"context_line":"                                                    qos_min_support)"},{"line_number":546,"context_line":"        LOG.debug(\"Provisioned QoS policy group with info: %s\","},{"line_number":547,"context_line":"                  qos_policy_group_info)"},{"line_number":548,"context_line":"        return qos_policy_group_info"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"18b48af9_aba373b6","line":546,"in_reply_to":"8df7c51e_3f036309","updated":"2025-10-13 15:09:45.000000000","message":"Done","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"}],"cinder/volume/drivers/netapp/utils.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":446,"context_line":""},{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"a4541797_407ac131","line":449,"range":{"start_line":449,"start_character":4,"end_line":449,"end_character":67},"updated":"2025-10-06 18:37:28.000000000","message":"I understand the logs that we do after operation completion but I\u0027m skeptical about the benefit of logs at the start of operation","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":446,"context_line":""},{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"54e4691a_35c1f161","line":449,"range":{"start_line":449,"start_character":4,"end_line":449,"end_character":67},"in_reply_to":"a4541797_407ac131","updated":"2025-10-07 08:28:58.000000000","message":"During bulk volume creation, the QoS setup creation and validation are taking more than one minute in customer deployments. Therefore, we want to ensure that we have granular logs to isolate the issue and determine which method is consuming the most time. Since these are debug-level logs, customers can switch to info-level logs if they prefer less granular logging.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5c313a351372350362bda8d8645a40b04d5b774b","unresolved":true,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"999df57f_4c1dd797","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"updated":"2025-10-06 18:37:28.000000000","message":"volume.id","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5fe616c0d9dd9252c3c4f1dcb0072734a26e275c","unresolved":false,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"091ae119_e04a8f49","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"in_reply_to":"61e2958a_95a487fb","updated":"2025-10-08 06:21:21.000000000","message":"In case of volume.id it is failing so reverting the code to volume[\u0027id\u0027]","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"042e3d517d97fb077e7713327901c6d691c9df89","unresolved":false,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"61e2958a_95a487fb","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"in_reply_to":"999df57f_4c1dd797","updated":"2025-10-07 08:28:58.000000000","message":"Done.","commit_id":"3d7e935a09b32002a92cb7cc461a68f0eaaf4696"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b735e01d89df193159d3788f06e2dc9fb11a13d7","unresolved":true,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume id: %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1811c87d_52982cc3","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"updated":"2025-10-13 07:26:47.000000000","message":"nit: volume.id","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7594e70cbaf168ceee33256e1ef5ed9a9e28d059","unresolved":true,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume id: %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d66a85f9_dcb6fca7","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"in_reply_to":"1811c87d_52982cc3","updated":"2025-10-13 08:52:36.000000000","message":"We try to change it to volume.id, unit test are failing.","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d849b741da357a118d2e75b7867401cc2ba90ee2","unresolved":false,"context_lines":[{"line_number":447,"context_line":"def get_valid_qos_policy_group_info(volume, extra_specs\u003dNone):"},{"line_number":448,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":449,"context_line":"    LOG.debug(\"Getting valid QOS policy group info for volume id: %s.\","},{"line_number":450,"context_line":"              volume[\u0027id\u0027])"},{"line_number":451,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":452,"context_line":"    try:"},{"line_number":453,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"e3988d82_75ff5e7b","line":450,"range":{"start_line":450,"start_character":14,"end_line":450,"end_character":26},"in_reply_to":"d66a85f9_dcb6fca7","updated":"2025-10-13 08:53:14.000000000","message":"Resolving this comment.","commit_id":"2ad53190a696dcc3c2d88b8800164a7f6db11bd3"}]}
