)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b5de973439d36ee04a10716addf9e8d02b805b7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"407de96e_13124f2b","updated":"2026-06-26 00:20:05.000000000","message":"Addresses Eric\u0027s concern from https://review.opendev.org/c/openstack/cinder/+/912058 \n\nRaising the priority because it\u0027s a small patch that strengthens some code we\u0027ve recently merged.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e1c29765ebeec2c7c78d477a911f1531c673c0f5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8242a942_23da574f","updated":"2026-06-26 13:34:31.000000000","message":"Also see my reply to an earlier comment.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"90f55b54685fc778b028c7be2e3b04681f8a508e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"383f4efb_be1eaa55","updated":"2026-05-15 10:35:41.000000000","message":"Brian\u0027s comment\n\n``Before returning from this function, you could additionally verify that a non-OK response does in fact have an errorCode, and if it doesn\u0027t, you could raise a VolumeBackendAPIException right here. You seem to be making an assumption that the driver will always be talking directly to the SAN via the REST API, but it\u0027s possible that there could be something else in the path (for example, a rate limiter) that could return a non-OK response code and that won\u0027t contain the errorCode from the SAN\u0027s REST API.``\n\nreply: Currently, most functions log messages based on the HTTP status. If we add an errorCode check in the response message, it will impact these functions. Therefore, for now, we are removing the errorCode checkmark from the new NVMe REST functions.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"a742d01b9782e427be8dc61fbde82661e24e8676","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bddb899a_3de77f8e","updated":"2026-06-30 04:43:46.000000000","message":"I can find more that 10+ other methods still have the same Bug needs defensive handling. For POST requests, the response body may be empty or non-JSON depending on the failure source, so response may not be a dict with \"message\". Please avoid direct response[\"message\"] access and raise VolumeBackendAPIException with a safe fallback error detail.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f6fdfaa88dbf241c918168ffa0a6419d712f618","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c9a63d54_c5169c4a","updated":"2026-06-26 13:23:43.000000000","message":"I looked at this again, and there are some issues, and apparently no exisiting unit tests catch these conditions.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"459f27bcfb63a135f6cf16aa1c56784f67d85ebc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f8dd5a6e_09ee4ead","in_reply_to":"383f4efb_be1eaa55","updated":"2026-06-26 00:22:14.000000000","message":"Acknowledged","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7584e19b_36294bbf","in_reply_to":"6f54fd37_64a84e01","updated":"2026-06-30 06:17:01.000000000","message":"fixed, handled message in new function _get_response_message.","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"339f3af2_1a41f420","in_reply_to":"8242a942_23da574f","updated":"2026-06-30 06:17:01.000000000","message":"Done","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e1c29765ebeec2c7c78d477a911f1531c673c0f5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f54fd37_64a84e01","in_reply_to":"f8dd5a6e_09ee4ead","updated":"2026-06-26 13:34:31.000000000","message":"I think that you need to do *something* in _check_response() to make sure that the response object meets the expectations of the rest of the code (see comments inline) ... you don\u0027t have to raise an exception, but you may want to add an errorCode and message for non-OK, non-Timeout respsonses.  Or something else, but the key thing is that you want to have a central place where all the expectations the rest of the code has about the response object it\u0027s getting are satisfied (and can be unit-tested).","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f6209056_2a976b7c","updated":"2026-06-30 06:17:01.000000000","message":"Thanks you for the review, handled errorcode and message for exiting all calls, please do review when you get time.","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"7a0287e1a4364480acdfa875eba7a6c6ef09c06a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d38f2ead_56718819","updated":"2026-06-30 08:03:08.000000000","message":"a suggestion for future maintainace, else lgtm","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"d70f8c4d12822304002c5be5dc3a4b1ac2687c34","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5007b628_1a079cf3","updated":"2026-06-30 06:23:30.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"782695aed13ffdee044961a877f2c6b7cd56cd0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6384a5d6_14c7973f","updated":"2026-06-30 07:19:03.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"6d40e8fa3cb3cff288318075b91cc16fab7c7bf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bc11e13e_9b2eda55","updated":"2026-06-30 08:07:14.000000000","message":"tests need improvement","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4d4fb64c3d8d98a6da39bb1291f56dce14bd697d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dd69d321_574ad5a0","updated":"2026-07-01 13:22:19.000000000","message":"Although I just noticed that the PF-4 reported, not the PF-5.  Hopefully we will get those results soon.","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e5c914e618079b27022b5690495301405fca6551","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5530a4c4_d2522ad4","updated":"2026-07-01 03:27:19.000000000","message":"Code and tests LGTM.  Agree with Amit that there\u0027s a lot of repeated code, but that can be refactored as a followup.  Only a +1 while waiting for the Dell CI to respond to PS 3.","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"b153e8eedd5e47b7f2506d96c6448d79fe53130b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8ec26d48_3cfbf60e","updated":"2026-07-01 14:30:01.000000000","message":"Thanks @rosmaita.fossdev@gmail.com for the review, will run the v5 as well.","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"bb63fd9634f0aa6602993a8c197f123dc8ea31b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a56fa223_b90c1658","updated":"2026-06-30 09:32:25.000000000","message":"Thanks for the review, updated code.","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"51d88bdefa00159458205e1f4a6f93f44f2140fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e811dc50_11840d38","updated":"2026-07-01 13:20:46.000000000","message":"Upgrading to +2 given that the third-party CI has reported success.","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"791b08e515b8d75a45cb1eaadb5a2542c2817733","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"43876347_17baf2bb","updated":"2026-07-01 04:55:49.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"bf85ce9cb64651e90163890ff299d29e86e80278","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"78c2a6cb_395bf516","updated":"2026-07-01 07:15:39.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"f1ed38ed20bbf6bf2e78435a0e6d4823b68ca88e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a54e5dfc_29e52ae0","updated":"2026-07-01 14:30:25.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"90f6033b3c69f2b423c93741fa62a496a2207b9f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b84e4899_824dff1c","updated":"2026-07-01 04:58:35.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"f8c1f4e3884a08db5458ff3f8ab2c69903e3c23f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"be9d1df8_d224cf18","updated":"2026-07-01 04:56:08.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"a2a8f9546fa60bb42e3a62ada2914553ab0e42c0"}],"cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_powerflex_client.py":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"6d40e8fa3cb3cff288318075b91cc16fab7c7bf3","unresolved":true,"context_lines":[{"line_number":723,"context_line":"                                   self.client.create_nvme_host,"},{"line_number":724,"context_line":"                                   self.host_nqn, self.host_name)"},{"line_number":725,"context_line":"            self.assertIn(\"Failed to create nvme host: Unknown error.\", ex.msg)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    # Tests for NVMe POST methods where response is None"},{"line_number":728,"context_line":"    # (addresses review comment: JSON decode failure sets response to None)"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"348a4b7a_6c34f3f1","line":726,"updated":"2026-06-30 08:07:14.000000000","message":"these are same tests repeated, use @ddt instead","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"bb63fd9634f0aa6602993a8c197f123dc8ea31b3","unresolved":false,"context_lines":[{"line_number":723,"context_line":"                                   self.client.create_nvme_host,"},{"line_number":724,"context_line":"                                   self.host_nqn, self.host_name)"},{"line_number":725,"context_line":"            self.assertIn(\"Failed to create nvme host: Unknown error.\", ex.msg)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    # Tests for NVMe POST methods where response is None"},{"line_number":728,"context_line":"    # (addresses review comment: JSON decode failure sets response to None)"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"eacf944c_d11ac2f4","line":726,"in_reply_to":"348a4b7a_6c34f3f1","updated":"2026-06-30 09:32:25.000000000","message":"Done","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"}],"cinder/volume/drivers/dell_emc/powerflex/rest_client.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f6fdfaa88dbf241c918168ffa0a6419d712f618","unresolved":true,"context_lines":[{"line_number":910,"context_line":"            \"name\": name,"},{"line_number":911,"context_line":"        }"},{"line_number":912,"context_line":"        r, response \u003d self.execute_powerflex_post_request(url, params)"},{"line_number":913,"context_line":"        if r.status_code !\u003d http_client.OK and \"errorCode\" in response:"},{"line_number":914,"context_line":"            msg \u003d (_(\"Failed to create nvme host: %s.\") % response[\"message\"])"},{"line_number":915,"context_line":"            LOG.error(msg)"},{"line_number":916,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df0e9dec_ee1aca99","side":"PARENT","line":913,"range":{"start_line":913,"start_character":47,"end_line":913,"end_character":70},"updated":"2026-06-26 13:23:43.000000000","message":"Looking at self.execute_powerflex_post_request, this check is an accident waiting to happen ... if requests returns a non-OK and there\u0027s a problem decoding the response, the function explicitly sets \u0027response\u0027 to None, and this check will raise a TypeError.","commit_id":"d7515145399b45d23ff00e64b5ef9fc6ae55788e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[{"line_number":910,"context_line":"            \"name\": name,"},{"line_number":911,"context_line":"        }"},{"line_number":912,"context_line":"        r, response \u003d self.execute_powerflex_post_request(url, params)"},{"line_number":913,"context_line":"        if r.status_code !\u003d http_client.OK and \"errorCode\" in response:"},{"line_number":914,"context_line":"            msg \u003d (_(\"Failed to create nvme host: %s.\") % response[\"message\"])"},{"line_number":915,"context_line":"            LOG.error(msg)"},{"line_number":916,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"623cd168_87457cb0","side":"PARENT","line":913,"range":{"start_line":913,"start_character":47,"end_line":913,"end_character":70},"in_reply_to":"df0e9dec_ee1aca99","updated":"2026-06-30 06:17:01.000000000","message":"Done","commit_id":"d7515145399b45d23ff00e64b5ef9fc6ae55788e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f6fdfaa88dbf241c918168ffa0a6419d712f618","unresolved":true,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"        r, response \u003d self.execute_powerflex_get_request(url)"},{"line_number":872,"context_line":"        if r.status_code !\u003d http_client.OK:"},{"line_number":873,"context_line":"            msg \u003d (_(\"Failed to query system nqn: %s.\") % response[\"message\"])"},{"line_number":874,"context_line":"            LOG.error(msg)"},{"line_number":875,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":876,"context_line":"        return response[0][\"id\"], response[0][\"systemNqn\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"977aa110_56bc188a","line":873,"range":{"start_line":873,"start_character":58,"end_line":873,"end_character":77},"updated":"2026-06-26 13:23:43.000000000","message":"This is a problem.  Looking at self._execute_powerflex_get_request, if the request returns normally, but with a non-OK code, the response object will not contain a \u0027message\u0027 field [0], and this will raise a KeyError.  (The self._check_response function logs a non-OK response, but it doesn\u0027t do anything to the response object.)\n\n[0] https://requests.readthedocs.io/en/latest/api/#requests.Response","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"        r, response \u003d self.execute_powerflex_get_request(url)"},{"line_number":872,"context_line":"        if r.status_code !\u003d http_client.OK:"},{"line_number":873,"context_line":"            msg \u003d (_(\"Failed to query system nqn: %s.\") % response[\"message\"])"},{"line_number":874,"context_line":"            LOG.error(msg)"},{"line_number":875,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":876,"context_line":"        return response[0][\"id\"], response[0][\"systemNqn\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b62ad56_f09d3ff5","line":873,"range":{"start_line":873,"start_character":58,"end_line":873,"end_character":77},"in_reply_to":"977aa110_56bc188a","updated":"2026-06-30 06:17:01.000000000","message":"Done","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f6fdfaa88dbf241c918168ffa0a6419d712f618","unresolved":true,"context_lines":[{"line_number":911,"context_line":"        }"},{"line_number":912,"context_line":"        r, response \u003d self.execute_powerflex_post_request(url, params)"},{"line_number":913,"context_line":"        if r.status_code !\u003d http_client.OK:"},{"line_number":914,"context_line":"            msg \u003d (_(\"Failed to create nvme host: %s.\") % response[\"message\"])"},{"line_number":915,"context_line":"            LOG.error(msg)"},{"line_number":916,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":917,"context_line":"        return response[\"id\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bc359f58_b75ff9d3","line":914,"range":{"start_line":914,"start_character":58,"end_line":914,"end_character":77},"updated":"2026-06-26 13:23:43.000000000","message":"Similar issue to above, and see also my comment in the \"old\" code at line 913","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"a6ca365389e1a45b84a5a506e6ae79ed9e988d76","unresolved":false,"context_lines":[{"line_number":911,"context_line":"        }"},{"line_number":912,"context_line":"        r, response \u003d self.execute_powerflex_post_request(url, params)"},{"line_number":913,"context_line":"        if r.status_code !\u003d http_client.OK:"},{"line_number":914,"context_line":"            msg \u003d (_(\"Failed to create nvme host: %s.\") % response[\"message\"])"},{"line_number":915,"context_line":"            LOG.error(msg)"},{"line_number":916,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":917,"context_line":"        return response[\"id\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"226a9abf_676eafbc","line":914,"range":{"start_line":914,"start_character":58,"end_line":914,"end_character":77},"in_reply_to":"bc359f58_b75ff9d3","updated":"2026-06-30 06:17:01.000000000","message":"Done","commit_id":"b7c09ac13949dddbc7bfc4a9aaee71119d2d7de5"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"7a0287e1a4364480acdfa875eba7a6c6ef09c06a","unresolved":true,"context_lines":[{"line_number":606,"context_line":"        if response is None:"},{"line_number":607,"context_line":"            return default_msg or \"Unknown error\""},{"line_number":608,"context_line":"        return response.get(\"message\", default_msg or \"Unknown error\")"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @retry(exception.VolumeBackendAPIException)"},{"line_number":611,"context_line":"    def extend_volume(self, vol_id, new_size):"},{"line_number":612,"context_line":"        url \u003d \"/instances/Volume::%(vol_id)s/action/setVolumeSize\""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8b51a2_99d64a7f","line":609,"updated":"2026-06-30 08:03:08.000000000","message":"+1, as lot of repeating code.\n\nbut it would be nice to have it as decorator or custom Exception for better maintability\nI see there are 2 methods, for which this is handled - powerflex- get and post, consider moving the `if r.status_code !\u003d http_client.OK` check into execute_powerflex_*_request methods themselves. \nmethods needing custom errorCode handling could be handled  via optional parameter.","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"bb63fd9634f0aa6602993a8c197f123dc8ea31b3","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        if response is None:"},{"line_number":607,"context_line":"            return default_msg or \"Unknown error\""},{"line_number":608,"context_line":"        return response.get(\"message\", default_msg or \"Unknown error\")"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @retry(exception.VolumeBackendAPIException)"},{"line_number":611,"context_line":"    def extend_volume(self, vol_id, new_size):"},{"line_number":612,"context_line":"        url \u003d \"/instances/Volume::%(vol_id)s/action/setVolumeSize\""}],"source_content_type":"text/x-python","patch_set":2,"id":"b84e5bf7_76d6c815","line":609,"in_reply_to":"5a8b51a2_99d64a7f","updated":"2026-06-30 09:32:25.000000000","message":"Acknowledged","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"591749f468c3165d1944f75626407a6c80d11048","unresolved":true,"context_lines":[{"line_number":606,"context_line":"        if response is None:"},{"line_number":607,"context_line":"            return default_msg or \"Unknown error\""},{"line_number":608,"context_line":"        return response.get(\"message\", default_msg or \"Unknown error\")"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @retry(exception.VolumeBackendAPIException)"},{"line_number":611,"context_line":"    def extend_volume(self, vol_id, new_size):"},{"line_number":612,"context_line":"        url \u003d \"/instances/Volume::%(vol_id)s/action/setVolumeSize\""}],"source_content_type":"text/x-python","patch_set":2,"id":"887736e1_ccdea5a4","line":609,"in_reply_to":"b84e5bf7_76d6c815","updated":"2026-06-30 10:14:50.000000000","message":"dont resolve the comments unless, they are worked on","commit_id":"d25f41ff8ad74d00f2c8b1d4370cd5363a2715b5"}]}
