)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"b205d9b6947ffbc218ed37a582d45de689723315","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     raghavendrat \u003craghavendra-uddhav.tilay@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-11 20:05:46 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE 3PAR: Convert volume v2 to base vol properly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Consider volume and snapshots as below:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"e047d40b_d858429f","line":7,"updated":"2023-04-12 12:34:37.000000000","message":"The commit summary no longer seems appropriate. It sounds like the new code blocks converting cloned volumes to a base volume when the clone has snapshots.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"080df456312093e37eed58d400db845753d652b5","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     raghavendrat \u003craghavendra-uddhav.tilay@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-11 20:05:46 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE 3PAR: Convert volume v2 to base vol properly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Consider volume and snapshots as below:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ecb31236_7e351be5","line":7,"in_reply_to":"e047d40b_d858429f","updated":"2023-04-12 13:08:50.000000000","message":"Ack. i will update it.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     raghavendrat \u003craghavendra-uddhav.tilay@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-04-11 20:05:46 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE 3PAR: Convert volume v2 to base vol properly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Consider volume and snapshots as below:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"40b3f4a8_c629fb63","line":7,"in_reply_to":"ecb31236_7e351be5","updated":"2023-04-13 10:15:04.000000000","message":"Done","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1340d2ea6a46c33a220811ed624d5710ea178501","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This is now handled gracefully. Appropriate error is thrown"},{"line_number":32,"context_line":"if the volume has snapshot(s)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Closes-Bug: #1994521"},{"line_number":35,"context_line":"Change-Id: I5e7fb425c92cdf8c16d5a86a58ca1a52421543d7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fdda1869_8bc5ab2b","line":33,"updated":"2023-04-12 08:03:34.000000000","message":"please add your name as co-author\n\nCo-Authored-By: raghavendrat \u003craghavendra-uddhav.tilay@hpe.com\u003e","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This is now handled gracefully. Appropriate error is thrown"},{"line_number":32,"context_line":"if the volume has snapshot(s)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Closes-Bug: #1994521"},{"line_number":35,"context_line":"Change-Id: I5e7fb425c92cdf8c16d5a86a58ca1a52421543d7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"28f77bd6_4d575467","line":33,"in_reply_to":"fdda1869_8bc5ab2b","updated":"2023-04-13 10:15:04.000000000","message":"Done","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8b251170e980842029eab6b038cd8c184d8b5f68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f030836c_3cb393fd","updated":"2023-02-17 07:04:33.000000000","message":"Thanks Rajat for submitting this patch.\nJust one comment inline.\nLet me know, if i can submit updated code.","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7d53e7a85567c67065a04bd48ca1058ddaf0acce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7aaf2205_a3b5228b","updated":"2023-02-27 04:43:36.000000000","message":"Thanks Rajat. i will submit a patchset soon.","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"968f597e0869a5bfa0497ab7406f4564d53f41a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2176754e_319bbb7c","updated":"2022-10-26 15:15:15.000000000","message":"Thanks for opening a bug report for this. \nHPE STORAGE CI passed. ","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"979263b7f833ff356366fc79e36a1e2d2960fda0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ba4b2804_789d192b","in_reply_to":"f030836c_3cb393fd","updated":"2023-02-25 08:11:23.000000000","message":"Sure Raghavendra, feel free to take over the patch. My intention was to check if this fixes the actual problem which unfortunately i don\u0027t think it does.\n\nThe main problem with the 3par driver is, it doesn\u0027t handle the dependency chain if it\u0027s \u003e 1. What i mean is, if I\u0027ve the following dependency chain,\n\nvol1 -\u003e snap1 -\u003e vol2 -\u003e snap2 (snapshot) or vol3 (clone of vol2)\n\nThen if we try to delete snap1, it will try to flatten vol2 which will fail since it has snap2 or vol3 as it\u0027s dependent.\n\nThat is the main issue to solve here.","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b78690d7a5730625ff021f1dbfa811df953d0b30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"10bf7aca_21d9d08c","updated":"2023-03-07 11:35:58.000000000","message":"Hi Raghavendra. Thanks for updating this, it is still missing test coverage.","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"62e1815c794c61f4075a4818b1661a8d6362f722","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a99ae920_1ffb2034","updated":"2023-03-07 12:05:24.000000000","message":"Thanks Rajat for the comments.\nWill check \u0026 revert soon.","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8f4fcae93b5d59b425ee192ab90180387ecc3231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"621b4675_9fbef16b","updated":"2023-03-03 08:49:47.000000000","message":"run-HPE Storage CI","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"0b01d5e89a4d4523c787710e14754461640184e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7077195b_bb33a322","updated":"2023-03-02 09:15:27.000000000","message":"run-HPE Storage CI\n","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9aa1fb01319f12a3554a0da057fa92c89f785123","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"faf31dcb_a117d77d","updated":"2023-03-14 12:07:38.000000000","message":"Hi reviewers,\ni tried to address comments in PS 5.\nRequesting your feedback. Thanks.\n","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c069cabc7cbf8834e8b6624b6569ddf1cb9c6076","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"56dc7cb2_dd221b5e","updated":"2023-03-23 12:26:46.000000000","message":"Thanks Alan for review comments.\nWill submit new patchset soon.\n","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2f6c63a5_27585cf3","updated":"2023-03-24 08:57:24.000000000","message":"Addressed/replied to comments.\n","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a26800c1b19e2a941361d0718fa00dcb1ec2e2a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d8d14e5a_cb6c2e9d","updated":"2023-03-24 14:25:53.000000000","message":"I have some further comments that could be addressed in a follow-up patch, but my main concern is how snapshots are handled. I\u0027d like to hear from core reviewers who are more familiar with this area.","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"96c648323dac7f9d766ca5f039e91ac4a12c7787","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8d5bf5ab_f254bb09","updated":"2023-03-24 13:18:49.000000000","message":"recheck tempest-slow-py3 ... test failed: slow-serial  -- --concurrency\u003d2","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"037abea4122f63e89811985813d1b0bbe2f26916","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c31f2d43_7657d4ab","updated":"2023-04-07 10:47:52.000000000","message":"v1 -\u003e s1 -\u003e v2 -\u003e s2\n\nDuring conversion of v2 to base volume, it is not possible to transfer s2 as a child of new base volume.\n\nAlso, if s2 is created from openstack/cinder, its not advisable to delete it.\n\nThus, only option left is to gracefully throw error.\nAccordingly submitted new patch.\n\nAlan / Rajat,\nAre we fine with this approach ?\n\nPS: i haven\u0027t updated UT code (test_hpe3par.py) now. Will update it soon.","commit_id":"7562f523726b0b7d2ca7b8f2ac829c4901b1ba02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"64064f3eaa7c90f75ff0776f9a474971e57a4ac4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"224fd664_a020a809","updated":"2023-04-11 13:06:37.000000000","message":"I am facing some issue with IRC chat.\n\nAlan/Rajat,\nAppreciate if you could share your thoughts. Thanks.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"eeaba07f719106a9940d088cdded9aca33f906f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"28ac648f_6988525f","updated":"2023-04-12 09:36:17.000000000","message":"Thank you Rajat for feedback. i will work on review comments.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"080df456312093e37eed58d400db845753d652b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8e167773_14a67739","updated":"2023-04-12 13:08:50.000000000","message":"Thanks Alan.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1340d2ea6a46c33a220811ed624d5710ea178501","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5f0b3b88_dc1b5584","updated":"2023-04-12 08:03:34.000000000","message":"few corrections noted inline.\nThis might not provide the best user experience but at least we are failing with a sensible error message so the user can take appropriate steps to resolve it.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4dceef9f473b17d0c5c9001688d7e9b41bd60efe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cd306ff4_351f3040","updated":"2023-04-13 10:16:47.000000000","message":"Ack older comments.","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"75967e19_ff46f664","updated":"2023-04-13 10:15:04.000000000","message":"Addressed the review comments.","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5123e155208c9b8857330605adc211b5e25535db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fe10fcf2_df563909","updated":"2023-04-17 17:41:52.000000000","message":"LGTM. thanks for working on this.","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"16a4288cab8f04fa89d39e32ae19daebf3429e1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"917cb2d0_0eeb4ab9","updated":"2023-04-18 17:16:02.000000000","message":"Looks like a needed fix!","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"30286a66d6e623518f0e2893658b70f912146a69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"04158e4d_15cfca84","updated":"2023-04-18 03:06:21.000000000","message":"Thank you Rajat","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"ab34de42915dcdfc134cf780a1c68e3fb6816d3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b677e7e8_5262d720","updated":"2023-04-19 04:25:43.000000000","message":"Thank you Sofia and Alan.","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b86167fc4f872a1592c729e7d5a42337a56e4b13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5241778a_585a6c8c","updated":"2023-04-14 06:48:26.000000000","message":"Zuul and HPE Storage CI have passed.","commit_id":"dfd8f99743a29220ca3face5fdf00a1a6071cf48"}],"cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1340d2ea6a46c33a220811ed624d5710ea178501","unresolved":true,"context_lines":[{"line_number":739,"context_line":"        configuration.san_private_key \u003d HPE3PAR_SAN_SSH_PRIVATE"},{"line_number":740,"context_line":"        configuration.hpe3par_snapshot_expiration \u003d \"\""},{"line_number":741,"context_line":"        configuration.hpe3par_snapshot_retention \u003d \"\""},{"line_number":742,"context_line":"        configuration.hpe3par_iscsi_ips \u003d []"},{"line_number":743,"context_line":"        configuration.hpe3par_iscsi_chap_enabled \u003d False"},{"line_number":744,"context_line":"        configuration.goodness_function \u003d GOODNESS_FUNCTION"},{"line_number":745,"context_line":"        configuration.filter_function \u003d FILTER_FUNCTION"}],"source_content_type":"text/x-python","patch_set":8,"id":"781d89d5_496c13e0","line":742,"updated":"2023-04-12 08:03:34.000000000","message":"I don\u0027t see any UT added for the failure scenario. we should add a test which creates the same dependency chain causing failure and see if we get the correct error and log message from the failed operation.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        configuration.san_private_key \u003d HPE3PAR_SAN_SSH_PRIVATE"},{"line_number":740,"context_line":"        configuration.hpe3par_snapshot_expiration \u003d \"\""},{"line_number":741,"context_line":"        configuration.hpe3par_snapshot_retention \u003d \"\""},{"line_number":742,"context_line":"        configuration.hpe3par_iscsi_ips \u003d []"},{"line_number":743,"context_line":"        configuration.hpe3par_iscsi_chap_enabled \u003d False"},{"line_number":744,"context_line":"        configuration.goodness_function \u003d GOODNESS_FUNCTION"},{"line_number":745,"context_line":"        configuration.filter_function \u003d FILTER_FUNCTION"}],"source_content_type":"text/x-python","patch_set":8,"id":"d10ea006_9355c0a7","line":742,"in_reply_to":"781d89d5_496c13e0","updated":"2023-04-13 10:15:04.000000000","message":"Now added UT: test__convert_to_base_volume_failure()","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"}],"cinder/volume/drivers/hpe/hpe_3par_common.py":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8b251170e980842029eab6b038cd8c184d8b5f68","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"                    # see if we have any temp snapshots"},{"line_number":3152,"context_line":"                    snaps \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3153,"context_line":"                    for snap in snaps:"},{"line_number":3154,"context_line":"                        if snap.startswith(\u0027tss-\u0027):"},{"line_number":3155,"context_line":"                            # looks like we found a temp snapshot."},{"line_number":3156,"context_line":"                            LOG.info("},{"line_number":3157,"context_line":"                                \"Found a temporary snapshot %(name)s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"ba4ff96d_b4d8473a","line":3154,"updated":"2023-02-17 07:04:33.000000000","message":"In most of the scenarios, it would be actual snapshot and name would start with \"oss-\".\nSo we can update this line as:\nif snap.startswith(\u0027tss-\u0027) or snap.startswith(\u0027oss-\u0027)::\n\nThus, it will cover both temporary and actual snapshot.","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7d53e7a85567c67065a04bd48ca1058ddaf0acce","unresolved":false,"context_lines":[{"line_number":3151,"context_line":"                    # see if we have any temp snapshots"},{"line_number":3152,"context_line":"                    snaps \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3153,"context_line":"                    for snap in snaps:"},{"line_number":3154,"context_line":"                        if snap.startswith(\u0027tss-\u0027):"},{"line_number":3155,"context_line":"                            # looks like we found a temp snapshot."},{"line_number":3156,"context_line":"                            LOG.info("},{"line_number":3157,"context_line":"                                \"Found a temporary snapshot %(name)s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"813d4453_9cbd8521","line":3154,"in_reply_to":"6bc7b7bf_cf6db3bb","updated":"2023-02-27 04:43:36.000000000","message":"Done","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"979263b7f833ff356366fc79e36a1e2d2960fda0","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"                    # see if we have any temp snapshots"},{"line_number":3152,"context_line":"                    snaps \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3153,"context_line":"                    for snap in snaps:"},{"line_number":3154,"context_line":"                        if snap.startswith(\u0027tss-\u0027):"},{"line_number":3155,"context_line":"                            # looks like we found a temp snapshot."},{"line_number":3156,"context_line":"                            LOG.info("},{"line_number":3157,"context_line":"                                \"Found a temporary snapshot %(name)s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"6bc7b7bf_cf6db3bb","line":3154,"in_reply_to":"ba4ff96d_b4d8473a","updated":"2023-02-25 08:11:23.000000000","message":"Ack, feel free to update the patch as I\u0027m not very familiar with the working of the 3par driver.","commit_id":"85ce592d177b8226fddd67a6029e063deb257480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b78690d7a5730625ff021f1dbfa811df953d0b30","unresolved":true,"context_lines":[{"line_number":3175,"context_line":"                    LOG.debug(\"ex code is 32\")"},{"line_number":3176,"context_line":"                    LOG.debug(\"Volume has children\")"},{"line_number":3177,"context_line":"                    # Error 32 means that the volume has children"},{"line_number":3178,"context_line":"                    # see if we have any snapshots"},{"line_number":3179,"context_line":"                    snaps \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3180,"context_line":"                    for snap in snaps:"},{"line_number":3181,"context_line":"                        if snap.startswith(\u0027tss-\u0027) or snap.startswith(\u0027oss-\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"015acf9a_4016f998","line":3178,"range":{"start_line":3178,"start_character":41,"end_line":3178,"end_character":50},"updated":"2023-03-07 11:35:58.000000000","message":"what about volume-\u003evolume dependency? if we clone a volume, doesn\u0027t the destination volume also has dependency on source volume?","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4dceef9f473b17d0c5c9001688d7e9b41bd60efe","unresolved":false,"context_lines":[{"line_number":3175,"context_line":"                    LOG.debug(\"ex code is 32\")"},{"line_number":3176,"context_line":"                    LOG.debug(\"Volume has children\")"},{"line_number":3177,"context_line":"                    # Error 32 means that the volume has children"},{"line_number":3178,"context_line":"                    # see if we have any snapshots"},{"line_number":3179,"context_line":"                    snaps \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3180,"context_line":"                    for snap in snaps:"},{"line_number":3181,"context_line":"                        if snap.startswith(\u0027tss-\u0027) or snap.startswith(\u0027oss-\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"0c61dd59_c7b819fb","line":3178,"range":{"start_line":3178,"start_character":41,"end_line":3178,"end_character":50},"in_reply_to":"015acf9a_4016f998","updated":"2023-04-13 10:16:47.000000000","message":"Ack","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b78690d7a5730625ff021f1dbfa811df953d0b30","unresolved":true,"context_lines":[{"line_number":3185,"context_line":"                                {\u0027name\u0027: snap})"},{"line_number":3186,"context_line":"                            try:"},{"line_number":3187,"context_line":"                                LOG.debug(\"trying to delete snapshot\")"},{"line_number":3188,"context_line":"                                self.client.deleteVolume(snap)"},{"line_number":3189,"context_line":"                            except hpeexceptions.HTTPNotFound:"},{"line_number":3190,"context_line":"                                # if the volume is gone, it\u0027s as good as a"},{"line_number":3191,"context_line":"                                # successful delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"2705e1cc_93e146b0","line":3188,"range":{"start_line":3188,"start_character":57,"end_line":3188,"end_character":61},"updated":"2023-03-07 11:35:58.000000000","message":"what happens when this snapshot has child volumes? will the delete succeed in this case? I see we catch and raise an exception but that doesn\u0027t solve the end user\u0027s issue of not being able to delete the initial snapshot.","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4dceef9f473b17d0c5c9001688d7e9b41bd60efe","unresolved":false,"context_lines":[{"line_number":3185,"context_line":"                                {\u0027name\u0027: snap})"},{"line_number":3186,"context_line":"                            try:"},{"line_number":3187,"context_line":"                                LOG.debug(\"trying to delete snapshot\")"},{"line_number":3188,"context_line":"                                self.client.deleteVolume(snap)"},{"line_number":3189,"context_line":"                            except hpeexceptions.HTTPNotFound:"},{"line_number":3190,"context_line":"                                # if the volume is gone, it\u0027s as good as a"},{"line_number":3191,"context_line":"                                # successful delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"f17f21f3_ce48fc58","line":3188,"range":{"start_line":3188,"start_character":57,"end_line":3188,"end_character":61},"in_reply_to":"2705e1cc_93e146b0","updated":"2023-04-13 10:16:47.000000000","message":"Ack","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b78690d7a5730625ff021f1dbfa811df953d0b30","unresolved":true,"context_lines":[{"line_number":3190,"context_line":"                                # if the volume is gone, it\u0027s as good as a"},{"line_number":3191,"context_line":"                                # successful delete"},{"line_number":3192,"context_line":"                                pass"},{"line_number":3193,"context_line":"                            except Exception:"},{"line_number":3194,"context_line":"                                msg \u003d _(\"Volume %s(name)s has a snapshot\""},{"line_number":3195,"context_line":"                                        \"that can\u0027t be deleted at this \""},{"line_number":3196,"context_line":"                                        \"time.\", {\u0027name\u0027: volume_name})"}],"source_content_type":"text/x-python","patch_set":4,"id":"fac79d3f_2dda1ef9","line":3193,"range":{"start_line":3193,"start_character":28,"end_line":3193,"end_character":44},"updated":"2023-03-07 11:35:58.000000000","message":"can we add an exception case here where the snapshot cannot be deleted because it has a child? This way we can log some useful information for the end user.","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4dceef9f473b17d0c5c9001688d7e9b41bd60efe","unresolved":false,"context_lines":[{"line_number":3190,"context_line":"                                # if the volume is gone, it\u0027s as good as a"},{"line_number":3191,"context_line":"                                # successful delete"},{"line_number":3192,"context_line":"                                pass"},{"line_number":3193,"context_line":"                            except Exception:"},{"line_number":3194,"context_line":"                                msg \u003d _(\"Volume %s(name)s has a snapshot\""},{"line_number":3195,"context_line":"                                        \"that can\u0027t be deleted at this \""},{"line_number":3196,"context_line":"                                        \"time.\", {\u0027name\u0027: volume_name})"}],"source_content_type":"text/x-python","patch_set":4,"id":"7b5bcf80_01f93658","line":3193,"range":{"start_line":3193,"start_character":28,"end_line":3193,"end_character":44},"in_reply_to":"fac79d3f_2dda1ef9","updated":"2023-04-13 10:16:47.000000000","message":"Ack","commit_id":"6c8e6a353d1540f31e2acf5d569c6e2b0dffe8c4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f2ac008a3194e452bc9ba31a8576f8ddb48d8e14","unresolved":true,"context_lines":[{"line_number":301,"context_line":"        4.0.17 - Added get_manageable_volumes and get_manageable_snapshots."},{"line_number":302,"context_line":"                 Bug #1819903"},{"line_number":303,"context_line":"        4.0.18 - During conversion of volume to base volume,"},{"line_number":304,"context_line":"                 delete its child snapshot(s). Bug #1994521"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"a1b8265d_2d285f4a","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":45},"updated":"2023-03-22 14:07:01.000000000","message":"This suggests to me that S2 is completely deleted, meaning the new base volume will have no snapshots. I\u0027m not familiar with the process of converting a non-base volume to a base volume, but what happens to the snapshots? If they are retained/transferred to the new base volume, then I think this comment is misleading.","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a26800c1b19e2a941361d0718fa00dcb1ec2e2a0","unresolved":true,"context_lines":[{"line_number":301,"context_line":"        4.0.17 - Added get_manageable_volumes and get_manageable_snapshots."},{"line_number":302,"context_line":"                 Bug #1819903"},{"line_number":303,"context_line":"        4.0.18 - During conversion of volume to base volume,"},{"line_number":304,"context_line":"                 delete its child snapshot(s). Bug #1994521"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"e03d66bb_10aa88fb","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":45},"in_reply_to":"3cef902c_0e975023","updated":"2023-03-24 14:25:53.000000000","message":"Hmm, then something feels very wrong. If S2 is known to cinder (created by the user, and/or present in the DB) then I don\u0027t see how you can simply delete it.\n\nI think other core reviewers should weigh in on this.","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        4.0.17 - Added get_manageable_volumes and get_manageable_snapshots."},{"line_number":302,"context_line":"                 Bug #1819903"},{"line_number":303,"context_line":"        4.0.18 - During conversion of volume to base volume,"},{"line_number":304,"context_line":"                 delete its child snapshot(s). Bug #1994521"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3cef902c_0e975023","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":45},"in_reply_to":"a1b8265d_2d285f4a","updated":"2023-03-24 08:57:24.000000000","message":"v1 -\u003e s1 -\u003e v2 -\u003e s2\nWhile converting v2 to base volume, s2 is deleted.","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"037abea4122f63e89811985813d1b0bbe2f26916","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        4.0.17 - Added get_manageable_volumes and get_manageable_snapshots."},{"line_number":302,"context_line":"                 Bug #1819903"},{"line_number":303,"context_line":"        4.0.18 - During conversion of volume to base volume,"},{"line_number":304,"context_line":"                 delete its child snapshot(s). Bug #1994521"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"b6e1e729_2159ebe8","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":45},"in_reply_to":"e03d66bb_10aa88fb","updated":"2023-04-07 10:47:52.000000000","message":"Agreed. Now logic is updated to throw error if volume (v2) has snapshot (s2).","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f2ac008a3194e452bc9ba31a8576f8ddb48d8e14","unresolved":true,"context_lines":[{"line_number":3168,"context_line":"                self.client.deleteVolume(volume_name)"},{"line_number":3169,"context_line":""},{"line_number":3170,"context_line":"                LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3171,"context_line":"            except Exception as ex:"},{"line_number":3172,"context_line":"                raise ex"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"04a854c7_7ba99995","line":3171,"updated":"2023-03-22 14:07:01.000000000","message":"If you\u0027re not doing anything else than propagating the exception, then it would seem you can eliminate the try/except block entirely.","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[{"line_number":3168,"context_line":"                self.client.deleteVolume(volume_name)"},{"line_number":3169,"context_line":""},{"line_number":3170,"context_line":"                LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3171,"context_line":"            except Exception as ex:"},{"line_number":3172,"context_line":"                raise ex"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"e4f29398_d219623f","line":3171,"in_reply_to":"04a854c7_7ba99995","updated":"2023-03-24 08:57:24.000000000","message":"Done","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f2ac008a3194e452bc9ba31a8576f8ddb48d8e14","unresolved":true,"context_lines":[{"line_number":3171,"context_line":"            except Exception as ex:"},{"line_number":3172,"context_line":"                raise ex"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"        else:"},{"line_number":3175,"context_line":"            # base condition"},{"line_number":3176,"context_line":"            LOG.debug(\"%(name)s is at leaf level. i.e no children\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"}],"source_content_type":"text/x-python","patch_set":5,"id":"4c4c606f_86ec2204","line":3174,"updated":"2023-03-22 14:07:01.000000000","message":"I see no reason to maintain separate code for deleting the volume when it has no snapshots versus when it does have them. The two code paths only differ by the debug logs. A better structure would be something like this:\n\n    if snaps\n        delete_snaps\n    delete_volume\n\nThe log message at L3145 is sufficient to indicate whether the base volume is being deleted with our without children.","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[{"line_number":3171,"context_line":"            except Exception as ex:"},{"line_number":3172,"context_line":"                raise ex"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"        else:"},{"line_number":3175,"context_line":"            # base condition"},{"line_number":3176,"context_line":"            LOG.debug(\"%(name)s is at leaf level. i.e no children\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"}],"source_content_type":"text/x-python","patch_set":5,"id":"cf4bc6af_28ee5fdb","line":3174,"in_reply_to":"4c4c606f_86ec2204","updated":"2023-03-24 08:57:24.000000000","message":"Done","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f2ac008a3194e452bc9ba31a8576f8ddb48d8e14","unresolved":true,"context_lines":[{"line_number":3183,"context_line":"                self.client.deleteVolume(volume_name)"},{"line_number":3184,"context_line":""},{"line_number":3185,"context_line":"                LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3186,"context_line":"            except Exception as ex:"},{"line_number":3187,"context_line":"                raise ex"},{"line_number":3188,"context_line":""},{"line_number":3189,"context_line":"    def _convert_to_base_volume(self, volume, new_cpg\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f8681b4e_838df062","line":3186,"updated":"2023-03-22 14:07:01.000000000","message":"ditto","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[{"line_number":3183,"context_line":"                self.client.deleteVolume(volume_name)"},{"line_number":3184,"context_line":""},{"line_number":3185,"context_line":"                LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3186,"context_line":"            except Exception as ex:"},{"line_number":3187,"context_line":"                raise ex"},{"line_number":3188,"context_line":""},{"line_number":3189,"context_line":"    def _convert_to_base_volume(self, volume, new_cpg\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1524f796_7a21ffae","line":3186,"in_reply_to":"f8681b4e_838df062","updated":"2023-03-24 08:57:24.000000000","message":"Done","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f2ac008a3194e452bc9ba31a8576f8ddb48d8e14","unresolved":true,"context_lines":[{"line_number":3233,"context_line":"                # eg. v2 -\u003e s2 -\u003e v3 -\u003e s3 \u0026 so on"},{"line_number":3234,"context_line":"                # need to delete entire chain of volume \u0026 nested children"},{"line_number":3235,"context_line":"                self._recursive_delete(volume_name)"},{"line_number":3236,"context_line":"            except Exception as ex:"},{"line_number":3237,"context_line":"                raise ex"},{"line_number":3238,"context_line":""},{"line_number":3239,"context_line":"            LOG.debug(\u0027Delete src volume completed: convert_to_base_volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"2c35950d_cb655270","line":3236,"updated":"2023-03-22 14:07:01.000000000","message":"ditto","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"80fac295fa7d6447e832e7e77df388e1de75b830","unresolved":false,"context_lines":[{"line_number":3233,"context_line":"                # eg. v2 -\u003e s2 -\u003e v3 -\u003e s3 \u0026 so on"},{"line_number":3234,"context_line":"                # need to delete entire chain of volume \u0026 nested children"},{"line_number":3235,"context_line":"                self._recursive_delete(volume_name)"},{"line_number":3236,"context_line":"            except Exception as ex:"},{"line_number":3237,"context_line":"                raise ex"},{"line_number":3238,"context_line":""},{"line_number":3239,"context_line":"            LOG.debug(\u0027Delete src volume completed: convert_to_base_volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff046ab_c1952f76","line":3236,"in_reply_to":"2c35950d_cb655270","updated":"2023-03-24 08:57:24.000000000","message":"Done","commit_id":"bc380bed2949ccbc545b41f68afa6c0a3b00e545"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a26800c1b19e2a941361d0718fa00dcb1ec2e2a0","unresolved":true,"context_lines":[{"line_number":3172,"context_line":"            self.client.deleteVolume(volume_name)"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"            LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3175,"context_line":"        except Exception as ex:"},{"line_number":3176,"context_line":"            LOG.error(\"unable to delete %(name)s at leaf level\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"},{"line_number":3178,"context_line":"            raise ex"}],"source_content_type":"text/x-python","patch_set":6,"id":"87b4400c_8c77c554","line":3175,"updated":"2023-03-24 14:25:53.000000000","message":"I don\u0027t know where the exceptions come from, but hopefully they\u0027re not too generic. Generally, drivers report somethng more specific, such one of these:\n\nexception.CinderException\nexception.VolumeBackendAPIException\nexception.VolumeDriverException","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"037abea4122f63e89811985813d1b0bbe2f26916","unresolved":false,"context_lines":[{"line_number":3172,"context_line":"            self.client.deleteVolume(volume_name)"},{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"            LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3175,"context_line":"        except Exception as ex:"},{"line_number":3176,"context_line":"            LOG.error(\"unable to delete %(name)s at leaf level\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"},{"line_number":3178,"context_line":"            raise ex"}],"source_content_type":"text/x-python","patch_set":6,"id":"551aff7e_410b0dda","line":3175,"in_reply_to":"87b4400c_8c77c554","updated":"2023-04-07 10:47:52.000000000","message":"Ack","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a26800c1b19e2a941361d0718fa00dcb1ec2e2a0","unresolved":true,"context_lines":[{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"            LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3175,"context_line":"        except Exception as ex:"},{"line_number":3176,"context_line":"            LOG.error(\"unable to delete %(name)s at leaf level\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"},{"line_number":3178,"context_line":"            raise ex"},{"line_number":3179,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d775cb79_58512434","line":3176,"updated":"2023-03-24 14:25:53.000000000","message":"nit? This, and several other messages, start with a lower case letter (\"unable\") but most other log messages use more grammatical capitols (\"Unable\"). I mention it here, on the first LOG.error (there are LOG.debug messages above).","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"037abea4122f63e89811985813d1b0bbe2f26916","unresolved":false,"context_lines":[{"line_number":3173,"context_line":""},{"line_number":3174,"context_line":"            LOG.debug(\"deleted %(name)s\", {\u0027name\u0027: volume_name})"},{"line_number":3175,"context_line":"        except Exception as ex:"},{"line_number":3176,"context_line":"            LOG.error(\"unable to delete %(name)s at leaf level\","},{"line_number":3177,"context_line":"                      {\u0027name\u0027: volume_name})"},{"line_number":3178,"context_line":"            raise ex"},{"line_number":3179,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3b07811b_825d8ed9","line":3176,"in_reply_to":"d775cb79_58512434","updated":"2023-04-07 10:47:52.000000000","message":"Ack","commit_id":"0a5e8af4a0eefe1e7449e2d54a58fdc0a1703762"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1340d2ea6a46c33a220811ed624d5710ea178501","unresolved":true,"context_lines":[{"line_number":3149,"context_line":"            snap_list \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3150,"context_line":"            if snap_list:"},{"line_number":3151,"context_line":"                snap_str \u003d \",\".join(snap_list)"},{"line_number":3152,"context_line":"                msg \u003d (_(\"Volume %(name)s has snapshots: %(snap)s\" %"},{"line_number":3153,"context_line":"                         {\u0027name\u0027: volume_name, \u0027snap\u0027: snap_str}))"},{"line_number":3154,"context_line":"                raise exception.VolumeIsBusy(message\u003dmsg)"},{"line_number":3155,"context_line":""},{"line_number":3156,"context_line":"            # Create a physical copy of the volume"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a9706b7_42e9ff66","line":3153,"range":{"start_line":3152,"start_character":25,"end_line":3153,"end_character":66},"updated":"2023-04-12 08:03:34.000000000","message":"If we take the original use case, a user is trying to delete a snapshot and the operation fails with this error message in logs. Is that helpful enough for the operator to flatten/remove the dependencies before repeating the operation? are they aware about the dependency chains created in the backend?\n\nMaybe we can be more thorough with this message like,\n\nVolume %(name)s has dependent snapshots: %(snap)s. Either flatten or remove the dependent snapshots: %(snap)s for the conversion of volume %(name)s to succeed.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[{"line_number":3149,"context_line":"            snap_list \u003d self.client.getVolumeSnapshots(volume_name)"},{"line_number":3150,"context_line":"            if snap_list:"},{"line_number":3151,"context_line":"                snap_str \u003d \",\".join(snap_list)"},{"line_number":3152,"context_line":"                msg \u003d (_(\"Volume %(name)s has snapshots: %(snap)s\" %"},{"line_number":3153,"context_line":"                         {\u0027name\u0027: volume_name, \u0027snap\u0027: snap_str}))"},{"line_number":3154,"context_line":"                raise exception.VolumeIsBusy(message\u003dmsg)"},{"line_number":3155,"context_line":""},{"line_number":3156,"context_line":"            # Create a physical copy of the volume"}],"source_content_type":"text/x-python","patch_set":8,"id":"b6b02fe2_c532bd1c","line":3153,"range":{"start_line":3152,"start_character":25,"end_line":3153,"end_character":66},"in_reply_to":"5a9706b7_42e9ff66","updated":"2023-04-13 10:15:04.000000000","message":"Done","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"}],"releasenotes/notes/hpe-3par-convert-to-base-vol-delete-snap-a460a4b1c419804a.yaml":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1340d2ea6a46c33a220811ed624d5710ea178501","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    HPE 3PAR driver `Bug #1994521 \u003chttps://bugs.launchpad.net/cinder/+bug/1994521\u003e`_:"},{"line_number":5,"context_line":"    Fixed: During conversion of volume to base volume,"},{"line_number":6,"context_line":"    error out if it has child snapshot(s)."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"88f4544a_e9c0ac17","line":6,"range":{"start_line":5,"start_character":4,"end_line":6,"end_character":42},"updated":"2023-04-12 08:03:34.000000000","message":"It would be better to tell about the actual case we are handling i.e.\n\n\nWhile performing a delete snapshot operation, the volumes dependent on the snapshot are converted to base volumes. This operation fails if these dependent volumes have their own dependent snapshots. The errors during the failure were vague and not helpful.\nWith this release, we added conditions to fail this operation early and also added useful error message.","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2db5256426876e354a80344a2e57d27164d96453","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    HPE 3PAR driver `Bug #1994521 \u003chttps://bugs.launchpad.net/cinder/+bug/1994521\u003e`_:"},{"line_number":5,"context_line":"    Fixed: During conversion of volume to base volume,"},{"line_number":6,"context_line":"    error out if it has child snapshot(s)."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5aa16392_a0a16e29","line":6,"range":{"start_line":5,"start_character":4,"end_line":6,"end_character":42},"in_reply_to":"88f4544a_e9c0ac17","updated":"2023-04-13 10:15:04.000000000","message":"Done","commit_id":"1f8c6222c9a5ebcb8c531c8334b2958c20336cc0"}]}
