)]}'
{"manila/share/drivers/cephfs/driver.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"b8efb554a2cd87ef7d69105e4682f1729fd5ae55","unresolved":true,"context_lines":[{"line_number":563,"context_line":"            self.rados_client, \"fs subvolume snapshot clone\", argdict)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        status \u003d self._get_clone_status(share)"},{"line_number":566,"context_line":"        while status \u003d\u003d \u0027pending\u0027:"},{"line_number":567,"context_line":"            status \u003d self._get_clone_status(share)"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        if status \u003d\u003d \u0027in-progress\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9085105a_b426b4fd","line":566,"updated":"2021-03-16 02:36:36.000000000","message":"Although status changes from \u0027pending\u0027 to \u0027in-progress\u0027 very fast, we should replace this tight loop with a retrying utility routine with an exponential back-off and a failure count.","commit_id":"38ac3492998929a05dc2ab319be86faeb9ed50f5"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f07ead72d5a99ffe142ca55daed0e2c4bfa804ac","unresolved":true,"context_lines":[{"line_number":563,"context_line":"            self.rados_client, \"fs subvolume snapshot clone\", argdict)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        status \u003d self._get_clone_status(share)"},{"line_number":566,"context_line":"        while status \u003d\u003d \u0027pending\u0027:"},{"line_number":567,"context_line":"            status \u003d self._get_clone_status(share)"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        if status \u003d\u003d \u0027in-progress\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"f528bc15_64dc132b","line":566,"in_reply_to":"9085105a_b426b4fd","updated":"2021-03-16 20:26:32.000000000","message":"Agree, that would be a nice enhancement","commit_id":"38ac3492998929a05dc2ab319be86faeb9ed50f5"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"f628f0fa454fc3a9e67b4a9e2bcac3b2e018b4ba","unresolved":true,"context_lines":[{"line_number":384,"context_line":"        try:"},{"line_number":385,"context_line":"            # tbarron: Consider using force option since at this point"},{"line_number":386,"context_line":"            # we should fully clean out the subvolume even if it is in"},{"line_number":387,"context_line":"            # a pending state?"},{"line_number":388,"context_line":"            rados_command(self.rados_client, \"fs subvolume rm\", argdict)"},{"line_number":389,"context_line":"        except rados.Error as e:"},{"line_number":390,"context_line":"            # allow deletion of non-existent share"}],"source_content_type":"text/x-python","patch_set":5,"id":"6dac7824_7973c322","line":387,"updated":"2021-03-16 20:05:12.000000000","message":"I don\u0027t think we can directly remove a clone in \u0027pending\u0027 or \u0027in-progress\u0027 state. We may need to issue a `fs clone cancel` command, and then do a `fs subvolume rm --force` as you suggest.\n\nhttps://github.com/ceph/ceph/blob/v15.2.9/src/pybind/mgr/volumes/module.py#L116\n\nhttps://github.com/ceph/ceph/blob/v15.2.9/doc/cephfs/fs-volumes.rst#cloning-snapshots\n\nLet me try this out.","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"7d8f720ac3d719b36cc6f80a79f2c17af5a6e31c","unresolved":true,"context_lines":[{"line_number":384,"context_line":"        try:"},{"line_number":385,"context_line":"            # tbarron: Consider using force option since at this point"},{"line_number":386,"context_line":"            # we should fully clean out the subvolume even if it is in"},{"line_number":387,"context_line":"            # a pending state?"},{"line_number":388,"context_line":"            rados_command(self.rados_client, \"fs subvolume rm\", argdict)"},{"line_number":389,"context_line":"        except rados.Error as e:"},{"line_number":390,"context_line":"            # allow deletion of non-existent share"}],"source_content_type":"text/x-python","patch_set":5,"id":"7afb7da0_9c546408","line":387,"in_reply_to":"1f380005_9cba326b","updated":"2021-03-16 20:38:12.000000000","message":"Thanks for the thoughts on this, and thanks for checking Ramana.\n\nI was led down this path because I ended up with some orphaned subvolumes because of bugs in my implementation that manila couldn\u0027t remove.  It can be a future thing if we end up having a need -- may not be an issue.","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f07ead72d5a99ffe142ca55daed0e2c4bfa804ac","unresolved":true,"context_lines":[{"line_number":384,"context_line":"        try:"},{"line_number":385,"context_line":"            # tbarron: Consider using force option since at this point"},{"line_number":386,"context_line":"            # we should fully clean out the subvolume even if it is in"},{"line_number":387,"context_line":"            # a pending state?"},{"line_number":388,"context_line":"            rados_command(self.rados_client, \"fs subvolume rm\", argdict)"},{"line_number":389,"context_line":"        except rados.Error as e:"},{"line_number":390,"context_line":"            # allow deletion of non-existent share"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f380005_9cba326b","line":387,"in_reply_to":"6dac7824_7973c322","updated":"2021-03-16 20:26:32.000000000","message":"delete_share is quite generic. I\u0027m not sure how aggressive is the --force flag. Like, if there is an operation ongoing, would that be interrupted and the subvolume is deleted? Or the operation finishes and then the subvolume is deleted?\n\nWe would need to add a check: if what we are deleting is a share from snapshot, then probably we can check the status of it and then submit the clone cancel and the subvolume rm --force.","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"1ccb1534db56989def1a8aca802da8e2feeb220d","unresolved":true,"context_lines":[{"line_number":384,"context_line":"        try:"},{"line_number":385,"context_line":"            # tbarron: Consider using force option since at this point"},{"line_number":386,"context_line":"            # we should fully clean out the subvolume even if it is in"},{"line_number":387,"context_line":"            # a pending state?"},{"line_number":388,"context_line":"            rados_command(self.rados_client, \"fs subvolume rm\", argdict)"},{"line_number":389,"context_line":"        except rados.Error as e:"},{"line_number":390,"context_line":"            # allow deletion of non-existent share"}],"source_content_type":"text/x-python","patch_set":5,"id":"01121278_21070cdb","line":387,"in_reply_to":"7afb7da0_9c546408","updated":"2021-03-17 01:39:34.000000000","message":"Good questions, Victoria.\n\nI\u0027m able to force delete clones that are in progress. Once I do that I can no longer check the status of the clone as the clone is removed. I will check if this is OK to do.\n\nWe can check whether a subvolume or a clone, by issuing `fs clone status` command. If it\u0027s a subvolume you\u0027d get ENOTSUP, and if it\u0027s a clone you\u0027d see success.","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f07ead72d5a99ffe142ca55daed0e2c4bfa804ac","unresolved":true,"context_lines":[{"line_number":600,"context_line":"        return updates"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def get_share_status(self, share, share_server\u003dNone):"},{"line_number":603,"context_line":"        if share_server is not None:"},{"line_number":604,"context_line":"            LOG.warning("},{"line_number":605,"context_line":"                \"[%(be)s}] share_server was supplied but is not used by this \""},{"line_number":606,"context_line":"                \"back end -- ignoring share server.\","}],"source_content_type":"text/x-python","patch_set":5,"id":"390a441e_7abe2267","line":603,"updated":"2021-03-16 20:26:32.000000000","message":"This warning is not necessary, IMHO","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"7d8f720ac3d719b36cc6f80a79f2c17af5a6e31c","unresolved":true,"context_lines":[{"line_number":600,"context_line":"        return updates"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def get_share_status(self, share, share_server\u003dNone):"},{"line_number":603,"context_line":"        if share_server is not None:"},{"line_number":604,"context_line":"            LOG.warning("},{"line_number":605,"context_line":"                \"[%(be)s}] share_server was supplied but is not used by this \""},{"line_number":606,"context_line":"                \"back end -- ignoring share server.\","}],"source_content_type":"text/x-python","patch_set":5,"id":"2c167873_c96394b5","line":603,"in_reply_to":"390a441e_7abe2267","updated":"2021-03-16 20:38:12.000000000","message":"Tend to agree.","commit_id":"3121719e1d21069818ff7aa496b7acc6f90ab473"}]}
