)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9c6813ad9c6c83a50abea37bab46035a14e90485","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e91675f2_28144aa0","updated":"2026-07-24 07:23:23.000000000","message":"LGTM, thank you","commit_id":"b68b4c0ce12082a6c031ebf3efa7caaff4b765af"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"e3a854f3bc2846744719c9f53059a77d2575f7a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9cc82d33_8439c45d","updated":"2026-08-06 05:51:13.000000000","message":"run-DellEMC PowerStore CI","commit_id":"b68b4c0ce12082a6c031ebf3efa7caaff4b765af"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ff53a19af685ec5a0d42bb71ffad8293790fbc3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ebd6b2be_e73217c2","updated":"2026-08-18 17:26:15.000000000","message":"I looked at the logs and apparently there are 4 tests failing. Also, manage/unmanage tests seem to be disabled. Could you please look into it?","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"421e271b682a21e4d05b37570867c3f0688a4692","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6bcc5027_ce3b30f6","updated":"2026-08-14 20:19:37.000000000","message":"LGTM, thank you! I tried going through CI results but the link was not found. Can you please share the test results from the CI? Or manila-tempest-plugin tests run in an environment with the Dell backend.","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"b2bf82c55b010430bb2a612769a6f2c10dea26dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"594f2cc2_7c5a49b2","updated":"2026-08-28 11:35:38.000000000","message":"Please resolve merge conflicts","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"77f16f4bbfc6ea4810e607eb3a31c9e369b07f81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"63db27d6_db6dfe25","updated":"2026-08-19 12:15:06.000000000","message":"Please review it team. \nThe Dell CI succeeds now with manage/unmanage tests enabled. \nThis isn\u0027t applicable to manage/unmanage snapshot, I will rerun the Dell CI job on snapshot patch.","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5dfa3061bed16636182ab48a9fbb73a50c2f73f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"78b760cf_1802ebeb","updated":"2026-09-01 15:13:04.000000000","message":"Tests pass, let\u0027s get this in. Thank you for the persistence and hard work on this change!","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ff8382c8457cb9bdbcea2add4499415b9a55cdf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"024806c7_d243d91f","updated":"2026-09-01 14:02:51.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"b08c18675534077c8323243f3a5e050795cb39ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5c864214_979df44b","updated":"2026-08-19 09:24:42.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"5cd95c7e42f77f339945cc79d3289ea1f6cd93d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"83b78de0_0226689b","updated":"2026-08-19 11:06:24.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"aae5a1728354c12698f82f58a45d174c091b6f3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8b92a7d5_f8754668","updated":"2026-08-27 17:11:48.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"e64f03857eca15ba080124baec965e8821c8743b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bf1ca46e_b7efefd0","updated":"2026-08-20 17:17:09.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"69bde767f5dc6f2a3240038b2b54cd77be688cf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d89ff049_3eca880f","updated":"2026-08-20 18:21:16.000000000","message":"run-DellEMC PowerStore CI","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bcd67c82fc501ed77c2d8123a36a83d886ee0943","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6b4f42d7_fdfb50ad","in_reply_to":"63db27d6_db6dfe25","updated":"2026-08-19 18:36:53.000000000","message":"Hey, the github link returns a not found. Could you please look into it?","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"972fb3d6b7ece58c044e7ff4a561a49f363a769e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0a8613ec_f88a1589","in_reply_to":"6bcc5027_ce3b30f6","updated":"2026-08-17 11:17:31.000000000","message":"You can check them now, its visible.","commit_id":"364a46568b8e969899a7d79f54d42299eaf02909"}],"manila/share/drivers/dell_emc/plugins/powerstore/connection.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4442e7e3bcff3e1a5747cf829a6d18876894ddc","unresolved":true,"context_lines":[{"line_number":235,"context_line":"                 })"},{"line_number":236,"context_line":"        return export_locations"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def _get_backend_share_name(self, share):"},{"line_number":239,"context_line":"        \"\"\"Get the backend resource name for a share.\"\"\""},{"line_number":240,"context_line":"        try:"},{"line_number":241,"context_line":"            export_locations \u003d share.get(\u0027export_locations\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f357c026_c0de4210","line":238,"updated":"2026-07-15 08:34:13.000000000","message":"The export path parsing logic in `_get_backend_share_name` (lines 238-257) is duplicated almost verbatim in `manage_existing` (lines 337-345, 359, 369). Extract the path-to-name parsing once and reuse it. As it stands, a fix to one copy is easy to miss in the other.","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ed13f6c7baa21e9b7867d62bcee347f99f6130dd","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                 })"},{"line_number":236,"context_line":"        return export_locations"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def _get_backend_share_name(self, share):"},{"line_number":239,"context_line":"        \"\"\"Get the backend resource name for a share.\"\"\""},{"line_number":240,"context_line":"        try:"},{"line_number":241,"context_line":"            export_locations \u003d share.get(\u0027export_locations\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6f149421_e4243b61","line":238,"in_reply_to":"f357c026_c0de4210","updated":"2026-07-16 11:36:46.000000000","message":"Done","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4442e7e3bcff3e1a5747cf829a6d18876894ddc","unresolved":true,"context_lines":[{"line_number":252,"context_line":"                    return path.rsplit(\u0027:/\u0027, 1)[-1].strip(\u0027/\u0027)"},{"line_number":253,"context_line":"                elif protocol \u003d\u003d \u0027CIFS\u0027 and \u0027\\\\\u0027 in path:"},{"line_number":254,"context_line":"                    return path.split(\u0027\\\\\u0027)[-1]"},{"line_number":255,"context_line":"        except Exception:"},{"line_number":256,"context_line":"            pass"},{"line_number":257,"context_line":"        return share.get(\u0027name\u0027, \u0027\u0027)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8eff452f_43dd9b22","line":255,"updated":"2026-07-15 08:34:13.000000000","message":"Bare `except Exception: pass` here silently swallows real errors (e.g. a KeyError in the protocol-specific parsing). At a minimum log a debug message so someone can troubleshoot why the fallback kicked in.","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ed13f6c7baa21e9b7867d62bcee347f99f6130dd","unresolved":false,"context_lines":[{"line_number":252,"context_line":"                    return path.rsplit(\u0027:/\u0027, 1)[-1].strip(\u0027/\u0027)"},{"line_number":253,"context_line":"                elif protocol \u003d\u003d \u0027CIFS\u0027 and \u0027\\\\\u0027 in path:"},{"line_number":254,"context_line":"                    return path.split(\u0027\\\\\u0027)[-1]"},{"line_number":255,"context_line":"        except Exception:"},{"line_number":256,"context_line":"            pass"},{"line_number":257,"context_line":"        return share.get(\u0027name\u0027, \u0027\u0027)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0e4ba3fa_9db6a0a0","line":255,"in_reply_to":"8eff452f_43dd9b22","updated":"2026-07-16 11:36:46.000000000","message":"Done","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4442e7e3bcff3e1a5747cf829a6d18876894ddc","unresolved":true,"context_lines":[{"line_number":392,"context_line":"                reason\u003d(_(\"Unable to determine the size of the filesystem \""},{"line_number":393,"context_line":"                          \"for export \u0027%(name)s\u0027.\") %"},{"line_number":394,"context_line":"                        {\u0027name\u0027: original_name}))"},{"line_number":395,"context_line":"        size_gb \u003d size_bytes // units.Gi"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        nas_server_id \u003d self.client.get_nas_server_id(self.nas_server)"},{"line_number":398,"context_line":"        file_interfaces \u003d self.client.get_nas_server_interfaces("}],"source_content_type":"text/x-python","patch_set":2,"id":"0adc908b_7ee7f847","line":395,"updated":"2026-07-15 08:34:13.000000000","message":"`size_bytes // units.Gi` truncates. A 3.5 GiB filesystem reports as 3 GB, and Manila would then try to fit the data into a 3 GB quota. Use `math.ceil(size_bytes / units.Gi)` instead — that\u0027s what other drivers do (see lib_base.py for the NetApp example).","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ed13f6c7baa21e9b7867d62bcee347f99f6130dd","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                reason\u003d(_(\"Unable to determine the size of the filesystem \""},{"line_number":393,"context_line":"                          \"for export \u0027%(name)s\u0027.\") %"},{"line_number":394,"context_line":"                        {\u0027name\u0027: original_name}))"},{"line_number":395,"context_line":"        size_gb \u003d size_bytes // units.Gi"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        nas_server_id \u003d self.client.get_nas_server_id(self.nas_server)"},{"line_number":398,"context_line":"        file_interfaces \u003d self.client.get_nas_server_interfaces("}],"source_content_type":"text/x-python","patch_set":2,"id":"b793d6ba_987cc8e7","line":395,"in_reply_to":"0adc908b_7ee7f847","updated":"2026-07-16 11:36:46.000000000","message":"Done","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4442e7e3bcff3e1a5747cf829a6d18876894ddc","unresolved":true,"context_lines":[{"line_number":533,"context_line":"        share \u003d snapshot.get(\u0027share\u0027)"},{"line_number":534,"context_line":"        if share:"},{"line_number":535,"context_line":"            export_name \u003d self._get_backend_share_name(share)"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            export_name \u003d snapshot[\u0027share_name\u0027]"},{"line_number":538,"context_line":"        LOG.debug(f\u0027Retrieving filesystem ID for share {export_name}\u0027)"},{"line_number":539,"context_line":"        if share:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f07b346b_a2a6d1ec","line":536,"updated":"2026-07-15 08:34:13.000000000","message":"`create_snapshot` has two code paths depending on whether `snapshot.get(\u0027share\u0027)` is present (lines 533-544). The `_get_filesystem_id` helper already falls back to `share[\u0027name\u0027]` when there are no export locations, so you could unify these paths.","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ed13f6c7baa21e9b7867d62bcee347f99f6130dd","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        share \u003d snapshot.get(\u0027share\u0027)"},{"line_number":534,"context_line":"        if share:"},{"line_number":535,"context_line":"            export_name \u003d self._get_backend_share_name(share)"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            export_name \u003d snapshot[\u0027share_name\u0027]"},{"line_number":538,"context_line":"        LOG.debug(f\u0027Retrieving filesystem ID for share {export_name}\u0027)"},{"line_number":539,"context_line":"        if share:"}],"source_content_type":"text/x-python","patch_set":2,"id":"844d0e94_296844b0","line":536,"in_reply_to":"f07b346b_a2a6d1ec","updated":"2026-07-16 11:36:46.000000000","message":"Done","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4442e7e3bcff3e1a5747cf829a6d18876894ddc","unresolved":true,"context_lines":[{"line_number":645,"context_line":"        # NOTE: Manage operations pass size\u003d0 to the scheduler before the"},{"line_number":646,"context_line":"        # real size is determined by manage_existing, so we must allow"},{"line_number":647,"context_line":"        # size 0 through the filter."},{"line_number":648,"context_line":"        return \u0027share.size \u003e\u003d 3 or share.size \u003d\u003d 0\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"802f4678_da21453e","line":648,"updated":"2026-07-15 08:34:13.000000000","message":"`share.size \u003d\u003d 0` opens the filter to any zero-size share, not just manage operations. Is there a way to scope this more tightly, or is this expected for PowerStore? Worth a comment if intentional.","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ed13f6c7baa21e9b7867d62bcee347f99f6130dd","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        # NOTE: Manage operations pass size\u003d0 to the scheduler before the"},{"line_number":646,"context_line":"        # real size is determined by manage_existing, so we must allow"},{"line_number":647,"context_line":"        # size 0 through the filter."},{"line_number":648,"context_line":"        return \u0027share.size \u003e\u003d 3 or share.size \u003d\u003d 0\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7c557acd_4da4fc59","line":648,"in_reply_to":"802f4678_da21453e","updated":"2026-07-16 11:36:46.000000000","message":"@gouthampravi@gmail.com\n\nThis is an OpenStack Manila framework constraint, not a PowerStore-specific issue. \n\nBasically the Manila API layer hardcodes size\u003d0 in the scheduler request spec during manage operations (api.py, method manage(), the size\u003d0 argument in the _get_request_spec_dict call). \n\nThe scheduler\u0027s DriverFilter evaluates our filter function against that zero-sized share before manage_existing() discovers the real size from the backend. \n\nThere is no request attribute at the filter stage to distinguish a manage call from an ordinary create, so allowing size \u003d\u003d 0 is the only way to avoid rejecting valid manage operations while still enforcing the minimum-size constraint for regular creates.","commit_id":"82c2ba888890882082374f79a4c6251c928772d4"}]}
