)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Barron \u003ctpb@dyncloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-03-12 19:45:48 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update cephfs drivers to use ceph-mgr client"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use python rados client to talk to the ceph-mgr service."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"d85cc71a_0cfc1d49","line":7,"updated":"2021-03-14 01:57:57.000000000","message":"s/to use ceph-mgr client/to use ceph-mgr\u0027s volumes module","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Barron \u003ctpb@dyncloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-03-12 19:45:48 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update cephfs drivers to use ceph-mgr client"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use python rados client to talk to the ceph-mgr service."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"7b8bfc73_1d136417","line":7,"in_reply_to":"d85cc71a_0cfc1d49","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"A python rados client is created by the driver that lasts"},{"line_number":12,"context_line":"during the driver\u0027s lifecycle."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: bp update-cephfs-drivers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"0307cb59_e1ff9ae9","line":13,"updated":"2021-03-14 01:57:57.000000000","message":"We have also improved the drivers in the following ways, and may be we can mention that.\n\n- The drivers can now work with multiple filesystem clusters. The filesystem to be used by manila can be specified by the driver option \u0027cephfs_filesystem_name\u0027.\n\n- The removal of a share will be quicker for the manila user. The ceph-mgr volumes module moves the share\u0027s content to a trash folder and purges the trash\u0027s contents (`rm -rf` of the backend CephFS subvolume/subtree) aysnchronously, whereas the ceph_volume_client library moves the share\u0027s content and purges the content synchronously.","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"A python rados client is created by the driver that lasts"},{"line_number":12,"context_line":"during the driver\u0027s lifecycle."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: bp update-cephfs-drivers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"ba6360a4_f820017b","line":13,"in_reply_to":"0307cb59_e1ff9ae9","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f51f8f9b9dcde9c72cce28512d3d0236f7bd646f","unresolved":true,"context_lines":[{"line_number":27,"context_line":"Co-Authored-By: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e"},{"line_number":28,"context_line":"Co-Authored-By: Ramana Raja \u003crraja@redhat.com\u003e"},{"line_number":29,"context_line":"Co-Authored-By: Tom Barron \u003ctpb@dyncloud.net\u003e"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: I1f81db1ba7724c0784d87f9cb92bb696f6778806"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"80f9dd8b_d439fbbe","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":0},"updated":"2021-03-23 07:18:25.000000000","message":"DocImpact","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Co-Authored-By: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e"},{"line_number":28,"context_line":"Co-Authored-By: Ramana Raja \u003crraja@redhat.com\u003e"},{"line_number":29,"context_line":"Co-Authored-By: Tom Barron \u003ctpb@dyncloud.net\u003e"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: I1f81db1ba7724c0784d87f9cb92bb696f6778806"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"146163ba_3ebac142","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":0},"in_reply_to":"80f9dd8b_d439fbbe","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"}],"manila/share/drivers/cephfs/driver.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":124,"context_line":"class RadosError(Exception):"},{"line_number":125,"context_line":"    \"\"\"Something went wrong talking to Ceph with librados\"\"\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    pass"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def rados_command(rados_client, prefix\u003dNone, args\u003dNone, decode\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7324aea6_7f18eafb","line":127,"updated":"2021-03-10 02:10:17.000000000","message":"I realize that you are just doing what the pybind volume client does but I wonder if we should at least LOG these errors.","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"e02df0f0573f2b33fefed6b0f2295acfb06d469e","unresolved":true,"context_lines":[{"line_number":124,"context_line":"class RadosError(Exception):"},{"line_number":125,"context_line":"    \"\"\"Something went wrong talking to Ceph with librados\"\"\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    pass"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def rados_command(rados_client, prefix\u003dNone, args\u003dNone, decode\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"393a4c6e_3fc7b997","line":127,"in_reply_to":"7324aea6_7f18eafb","updated":"2021-03-11 00:30:28.000000000","message":"Good point! So within def rados_command(), i.e., above line 156, we do LOG.error(outs) before raising the exception?","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        )"},{"line_number":277,"context_line":"        LOG.info(\"[%(be)s}] Ceph client found, connecting...\","},{"line_number":278,"context_line":"                 {\"be\": self.backend_name})"},{"line_number":279,"context_line":"        try:"},{"line_number":280,"context_line":"            if self._rados_client.state !\u003d \"connected\":"},{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7656bd47_ffb76382","line":279,"updated":"2021-03-10 02:10:17.000000000","message":"Can we skip the premount_eviction stuff now?  I have to admit I never understood it well.","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17cd501446c5dd45939d47a61e14ab38e545e65e","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        )"},{"line_number":277,"context_line":"        LOG.info(\"[%(be)s}] Ceph client found, connecting...\","},{"line_number":278,"context_line":"                 {\"be\": self.backend_name})"},{"line_number":279,"context_line":"        try:"},{"line_number":280,"context_line":"            if self._rados_client.state !\u003d \"connected\":"},{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7b0fc87c_1d4b8445","line":279,"in_reply_to":"48fd6aa3_0bd33a5b","updated":"2021-03-11 03:27:49.000000000","message":"That makes sense, thanks for the explanation!","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        )"},{"line_number":277,"context_line":"        LOG.info(\"[%(be)s}] Ceph client found, connecting...\","},{"line_number":278,"context_line":"                 {\"be\": self.backend_name})"},{"line_number":279,"context_line":"        try:"},{"line_number":280,"context_line":"            if self._rados_client.state !\u003d \"connected\":"},{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"f3a4655e_f4a615ed","line":279,"in_reply_to":"7656bd47_ffb76382","updated":"2021-03-10 11:54:58.000000000","message":"I leave this one to Ramana :)","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"e02df0f0573f2b33fefed6b0f2295acfb06d469e","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        )"},{"line_number":277,"context_line":"        LOG.info(\"[%(be)s}] Ceph client found, connecting...\","},{"line_number":278,"context_line":"                 {\"be\": self.backend_name})"},{"line_number":279,"context_line":"        try:"},{"line_number":280,"context_line":"            if self._rados_client.state !\u003d \"connected\":"},{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"48fd6aa3_0bd33a5b","line":279,"in_reply_to":"f3a4655e_f4a615ed","updated":"2021-03-11 00:30:28.000000000","message":"The ceph_volume_client library creates a cephfs client session using \u0027cephfs_auth_id\u0027 to perform file system operations. We evict other cephfs client sessions using \u0027cephfs_auth_id\u0027 during setup to ensure that we have a unique instance of manila cephfs driver/ceph_volume_client.\n\nWith this change, we issue ceph-mgr commands, and mgr module creates cephfs client sessions using ceph-mgr service\u0027s own auth ID to perform filesytem operations. Other applications may also be using ceph-mgr volumes module, and we wouldn\u0027t want to disrupt them by evicting their cephfs client sessions.","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"},{"line_number":283,"context_line":"            self._rados_client \u003d None"},{"line_number":284,"context_line":"            raise"},{"line_number":285,"context_line":"        else:"},{"line_number":286,"context_line":"            LOG.info(\"[%(be)s] Ceph client connection complete.\","},{"line_number":287,"context_line":"                     {\"be\": self.backend_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba1ab3b8_d17e0e0d","line":284,"updated":"2021-03-10 02:10:17.000000000","message":"Should we be raising a backend exception?  Something other than bare raise?","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":281,"context_line":"                self._rados_client.connect()"},{"line_number":282,"context_line":"        except Exception:"},{"line_number":283,"context_line":"            self._rados_client \u003d None"},{"line_number":284,"context_line":"            raise"},{"line_number":285,"context_line":"        else:"},{"line_number":286,"context_line":"            LOG.info(\"[%(be)s] Ceph client connection complete.\","},{"line_number":287,"context_line":"                     {\"be\": self.backend_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"993f8b0c_39b5649f","line":284,"in_reply_to":"ba1ab3b8_d17e0e0d","updated":"2021-03-10 11:54:58.000000000","message":"Yes, I think it would be better. We can raise a ShareBackendException with a proper message","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        # create FS subvolume/share"},{"line_number":331,"context_line":"        argdict \u003d {"},{"line_number":332,"context_line":"            \"vol_name\": \"cephfs\","},{"line_number":333,"context_line":"            \"sub_name\": share[\"id\"],"},{"line_number":334,"context_line":"            \"size\": size,"},{"line_number":335,"context_line":"            \"namespace_isolated\": True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"b0523fb2_20ecc751","line":332,"updated":"2021-03-10 02:10:17.000000000","message":"Should we use self.volname for the value here (and in many similar places following) rather than the literal \"cephfs\"?","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        # create FS subvolume/share"},{"line_number":331,"context_line":"        argdict \u003d {"},{"line_number":332,"context_line":"            \"vol_name\": \"cephfs\","},{"line_number":333,"context_line":"            \"sub_name\": share[\"id\"],"},{"line_number":334,"context_line":"            \"size\": size,"},{"line_number":335,"context_line":"            \"namespace_isolated\": True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"23219f85_f99ea3a2","line":332,"in_reply_to":"b0523fb2_20ecc751","updated":"2021-03-10 11:54:58.000000000","message":"Yes, we were seeing a few issues with volname init but we updated it","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":364,"context_line":"        except rados.Error as e:"},{"line_number":365,"context_line":"            # allow deletion of non-existent share"},{"line_number":366,"context_line":"            if e.errno !\u003d -errno.ENOENT:"},{"line_number":367,"context_line":"                raise"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def update_access(self, context, share, access_rules, add_rules,"},{"line_number":370,"context_line":"                      delete_rules, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"405c70b1_8eb5766a","line":367,"updated":"2021-03-10 02:10:17.000000000","message":"See earlier comment about bare raise.","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":589,"context_line":"                msg_payload \u003d {\u0027client\u0027: ceph_auth_id, \u0027reason\u0027: e}"},{"line_number":590,"context_line":"                raise exception.InvalidShareAccess("},{"line_number":591,"context_line":"                    reason\u003dmsg % msg_payload)"},{"line_number":592,"context_line":"            raise"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        return auth_result"},{"line_number":595,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"06a00f74_60b68e02","line":592,"updated":"2021-03-10 02:10:17.000000000","message":"raise some generic backend exception with a message?","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":589,"context_line":"                msg_payload \u003d {\u0027client\u0027: ceph_auth_id, \u0027reason\u0027: e}"},{"line_number":590,"context_line":"                raise exception.InvalidShareAccess("},{"line_number":591,"context_line":"                    reason\u003dmsg % msg_payload)"},{"line_number":592,"context_line":"            raise"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        return auth_result"},{"line_number":595,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"deb56cc3_849dd0d6","line":592,"in_reply_to":"06a00f74_60b68e02","updated":"2021-03-10 11:54:58.000000000","message":"Sounds good","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"daa1dedc1afbe35a04341af46dc8123fb99853f6","unresolved":true,"context_lines":[{"line_number":834,"context_line":"            argdict.update({\"group_name\": share[\"share_group_id\"]})"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        out \u003d rados_command("},{"line_number":837,"context_line":"            self.rados_client, \"fs subvolume deauthorize\", argdict)"},{"line_number":838,"context_line":"        path \u003d out.decode().strip()"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return path"}],"source_content_type":"text/x-python","patch_set":5,"id":"0c00a86f_9540df55","line":837,"updated":"2021-03-10 17:18:33.000000000","message":"deauthorize?","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7b6259e5744f185d97ab8506d5e3fa2731befa6c","unresolved":true,"context_lines":[{"line_number":834,"context_line":"            argdict.update({\"group_name\": share[\"share_group_id\"]})"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        out \u003d rados_command("},{"line_number":837,"context_line":"            self.rados_client, \"fs subvolume deauthorize\", argdict)"},{"line_number":838,"context_line":"        path \u003d out.decode().strip()"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return path"}],"source_content_type":"text/x-python","patch_set":5,"id":"80331878_d114c6ac","line":837,"in_reply_to":"0c00a86f_9540df55","updated":"2021-03-10 19:48:09.000000000","message":"getpath","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"fc59ba3a3c8078f730ab740734237eb08149bae4","unresolved":false,"context_lines":[{"line_number":834,"context_line":"            argdict.update({\"group_name\": share[\"share_group_id\"]})"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        out \u003d rados_command("},{"line_number":837,"context_line":"            self.rados_client, \"fs subvolume deauthorize\", argdict)"},{"line_number":838,"context_line":"        path \u003d out.decode().strip()"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return path"}],"source_content_type":"text/x-python","patch_set":5,"id":"1544ef9f_bb69727b","line":837,"in_reply_to":"5bfbcb9e_37a2e4e3","updated":"2021-03-10 21:57:43.000000000","message":"Done","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1c536c15bc41491fcfc3e49a411780bb840098c1","unresolved":true,"context_lines":[{"line_number":834,"context_line":"            argdict.update({\"group_name\": share[\"share_group_id\"]})"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        out \u003d rados_command("},{"line_number":837,"context_line":"            self.rados_client, \"fs subvolume deauthorize\", argdict)"},{"line_number":838,"context_line":"        path \u003d out.decode().strip()"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return path"}],"source_content_type":"text/x-python","patch_set":5,"id":"5bfbcb9e_37a2e4e3","line":837,"in_reply_to":"80331878_d114c6ac","updated":"2021-03-10 20:47:59.000000000","message":"Was just going to ask about that :D","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1c536c15bc41491fcfc3e49a411780bb840098c1","unresolved":true,"context_lines":[{"line_number":756,"context_line":"                         \"hostname.\") % export_ip)"},{"line_number":757,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def get_export_locations(self, share, cephfs_volume):"},{"line_number":760,"context_line":"        export_locations \u003d []"},{"line_number":761,"context_line":"        for export_ip in self.export_ips:"},{"line_number":762,"context_line":"            export_path \u003d \"{server_address}:{mount_path}\".format("}],"source_content_type":"text/x-python","patch_set":7,"id":"acd85e23_5bf1234d","line":759,"updated":"2021-03-10 20:47:59.000000000","message":"We need to change \u0027cephfs_volume\u0027 (which is a dictionary) to \u0027subvolume_path\u0027 (string).","commit_id":"2095c20248acc2581f7d8d9013de176c644578e0"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1c536c15bc41491fcfc3e49a411780bb840098c1","unresolved":true,"context_lines":[{"line_number":761,"context_line":"        for export_ip in self.export_ips:"},{"line_number":762,"context_line":"            export_path \u003d \"{server_address}:{mount_path}\".format("},{"line_number":763,"context_line":"                server_address\u003ddriver_helpers.escaped_address(export_ip),"},{"line_number":764,"context_line":"                mount_path\u003dcephfs_volume[\u0027mount_path\u0027])"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"            LOG.info(\"Calculated export path for share %(id)s: %(epath)s\","},{"line_number":767,"context_line":"                     {\"id\": share[\u0027id\u0027], \"epath\": export_path})"}],"source_content_type":"text/x-python","patch_set":7,"id":"0a2b566f_42d3d6fa","line":764,"updated":"2021-03-10 20:47:59.000000000","message":"Since the string type subvolume  is passed in rather than the dictionary type cephfs_volume from the volume library, this line should just be:\n          mount_path\u003dsubvolume_path)","commit_id":"2095c20248acc2581f7d8d9013de176c644578e0"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d80ed6807a2e899a752ac71e9a2aed5e323f5138","unresolved":true,"context_lines":[{"line_number":207,"context_line":"        self.protocol_helper \u003d protocol_helper_class("},{"line_number":208,"context_line":"            self._execute,"},{"line_number":209,"context_line":"            self.configuration,"},{"line_number":210,"context_line":"            rados_client\u003dself.rados_client)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.protocol_helper.init_helper()"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"65e39ab0_d33f796e","line":210,"updated":"2021-03-11 00:25:36.000000000","message":"I think we should also pass \u0027volname\u003dself.volname\u0027 since the helpers try to use self.volname but they don\u0027t inherit from this class.","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"82251243e5942b854c884d51cd270a99b20bbeb9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        self.protocol_helper \u003d protocol_helper_class("},{"line_number":208,"context_line":"            self._execute,"},{"line_number":209,"context_line":"            self.configuration,"},{"line_number":210,"context_line":"            rados_client\u003dself.rados_client)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.protocol_helper.init_helper()"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fff659ba_d06176dd","line":210,"in_reply_to":"037a0ebd_7accfd21","updated":"2021-03-11 14:55:42.000000000","message":"Yes, noticed the same when testing yesterday, I\u0027ll add that","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"db312d1d5a93c942c18687608c09ef44bd5a8dd0","unresolved":true,"context_lines":[{"line_number":207,"context_line":"        self.protocol_helper \u003d protocol_helper_class("},{"line_number":208,"context_line":"            self._execute,"},{"line_number":209,"context_line":"            self.configuration,"},{"line_number":210,"context_line":"            rados_client\u003dself.rados_client)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.protocol_helper.init_helper()"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"037a0ebd_7accfd21","line":210,"in_reply_to":"65e39ab0_d33f796e","updated":"2021-03-11 12:15:17.000000000","message":"Good point. We should do this.","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17cd501446c5dd45939d47a61e14ab38e545e65e","unresolved":true,"context_lines":[{"line_number":435,"context_line":"    def create_snapshot(self, context, snapshot, share_server\u003dNone):"},{"line_number":436,"context_line":"        argdict \u003d {"},{"line_number":437,"context_line":"            \"vol_name\": self.volname,"},{"line_number":438,"context_line":"            \"sub_name\": snapshot[\"share\"],"},{"line_number":439,"context_line":"            \"snap_name\": \"_\".join([snapshot[\"snapshot_id\"], snapshot[\"id\"]]),"},{"line_number":440,"context_line":"        }"},{"line_number":441,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e0fef998_fb0adb49","line":438,"updated":"2021-03-11 03:27:49.000000000","message":"\"sub_name\": snapshot[\"share\"][\"id\"],","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"964723c40f8312c98f4b150a4b6a8c23480d4b5c","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    def create_snapshot(self, context, snapshot, share_server\u003dNone):"},{"line_number":436,"context_line":"        argdict \u003d {"},{"line_number":437,"context_line":"            \"vol_name\": self.volname,"},{"line_number":438,"context_line":"            \"sub_name\": snapshot[\"share\"],"},{"line_number":439,"context_line":"            \"snap_name\": \"_\".join([snapshot[\"snapshot_id\"], snapshot[\"id\"]]),"},{"line_number":440,"context_line":"        }"},{"line_number":441,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f452ee04_bcc029d8","line":438,"in_reply_to":"e0fef998_fb0adb49","updated":"2021-03-11 14:23:22.000000000","message":"Done","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17cd501446c5dd45939d47a61e14ab38e545e65e","unresolved":true,"context_lines":[{"line_number":445,"context_line":"    def delete_snapshot(self, context, snapshot, share_server\u003dNone):"},{"line_number":446,"context_line":"        argdict \u003d {"},{"line_number":447,"context_line":"            \"vol_name\": self.volname,"},{"line_number":448,"context_line":"            \"sub_name\": snapshot[\u0027share\u0027],"},{"line_number":449,"context_line":"            \"snap_name\": \u0027_\u0027.join([snapshot[\u0027snapshot_id\u0027], snapshot[\u0027id\u0027]]),"},{"line_number":450,"context_line":"        }"},{"line_number":451,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff2319fc_87500932","line":448,"updated":"2021-03-11 03:27:49.000000000","message":"\"sub_name\": snapshot[\"share\"][\"id\"],","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"964723c40f8312c98f4b150a4b6a8c23480d4b5c","unresolved":false,"context_lines":[{"line_number":445,"context_line":"    def delete_snapshot(self, context, snapshot, share_server\u003dNone):"},{"line_number":446,"context_line":"        argdict \u003d {"},{"line_number":447,"context_line":"            \"vol_name\": self.volname,"},{"line_number":448,"context_line":"            \"sub_name\": snapshot[\u0027share\u0027],"},{"line_number":449,"context_line":"            \"snap_name\": \u0027_\u0027.join([snapshot[\u0027snapshot_id\u0027], snapshot[\u0027id\u0027]]),"},{"line_number":450,"context_line":"        }"},{"line_number":451,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5d96bbae_06b7a2f7","line":448,"in_reply_to":"ff2319fc_87500932","updated":"2021-03-11 14:23:22.000000000","message":"Done","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d80ed6807a2e899a752ac71e9a2aed5e323f5138","unresolved":true,"context_lines":[{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def __init__(self, execute, config, **kwargs):"},{"line_number":518,"context_line":"        self.rados_client \u003d kwargs.pop(\u0027rados_client\u0027)"},{"line_number":519,"context_line":"        self.message_api \u003d message_api.API()"},{"line_number":520,"context_line":"        super(NativeProtocolHelper, self).__init__(execute, config,"},{"line_number":521,"context_line":"                                                   **kwargs)"},{"line_number":522,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"db135f4c_bd5c7567","line":519,"updated":"2021-03-11 00:25:36.000000000","message":"If we pass volname as a keyword as mentioned in the previous remark, then we can do \"self.volname \u003d kwargs.pop(\u0027volname\u0027)\" here so that the self.volname references in this protocol helper class work.","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"82251243e5942b854c884d51cd270a99b20bbeb9","unresolved":false,"context_lines":[{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def __init__(self, execute, config, **kwargs):"},{"line_number":518,"context_line":"        self.rados_client \u003d kwargs.pop(\u0027rados_client\u0027)"},{"line_number":519,"context_line":"        self.message_api \u003d message_api.API()"},{"line_number":520,"context_line":"        super(NativeProtocolHelper, self).__init__(execute, config,"},{"line_number":521,"context_line":"                                                   **kwargs)"},{"line_number":522,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e215f626_56ef0102","line":519,"in_reply_to":"db135f4c_bd5c7567","updated":"2021-03-11 14:55:42.000000000","message":"Ack","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d80ed6807a2e899a752ac71e9a2aed5e323f5138","unresolved":true,"context_lines":[{"line_number":734,"context_line":""},{"line_number":735,"context_line":"        if not hasattr(self, \u0027rados_client\u0027):"},{"line_number":736,"context_line":"            self.rados_client \u003d kwargs.pop(\u0027rados_client\u0027)"},{"line_number":737,"context_line":"        self.export_ips \u003d config_object.cephfs_ganesha_export_ips"},{"line_number":738,"context_line":"        if not self.export_ips:"},{"line_number":739,"context_line":"            self.export_ips \u003d [self.ganesha_host]"},{"line_number":740,"context_line":"        self.configured_ip_versions \u003d set()"}],"source_content_type":"text/x-python","patch_set":8,"id":"51829c65_45f2d835","line":737,"updated":"2021-03-11 00:25:36.000000000","message":"If we pass volname as a keyword as mentioned in the previous remark, then we can do \"self.volname \u003d kwargs.pop(\u0027volname\u0027)\" here so that the self.volname references in this protocol helper class work.","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"82251243e5942b854c884d51cd270a99b20bbeb9","unresolved":false,"context_lines":[{"line_number":734,"context_line":""},{"line_number":735,"context_line":"        if not hasattr(self, \u0027rados_client\u0027):"},{"line_number":736,"context_line":"            self.rados_client \u003d kwargs.pop(\u0027rados_client\u0027)"},{"line_number":737,"context_line":"        self.export_ips \u003d config_object.cephfs_ganesha_export_ips"},{"line_number":738,"context_line":"        if not self.export_ips:"},{"line_number":739,"context_line":"            self.export_ips \u003d [self.ganesha_host]"},{"line_number":740,"context_line":"        self.configured_ip_versions \u003d set()"}],"source_content_type":"text/x-python","patch_set":8,"id":"dca53c49_2ffd3ff7","line":737,"in_reply_to":"51829c65_45f2d835","updated":"2021-03-11 14:55:42.000000000","message":"Ack","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17cd501446c5dd45939d47a61e14ab38e545e65e","unresolved":true,"context_lines":[{"line_number":802,"context_line":"        return {"},{"line_number":803,"context_line":"            \u0027Name\u0027: \u0027Ceph\u0027,"},{"line_number":804,"context_line":"            \u0027User_Id\u0027: ceph_auth_id,"},{"line_number":805,"context_line":"            \u0027Secret_Access_Key\u0027: auth_result[\u0027auth_key\u0027]"},{"line_number":806,"context_line":"        }"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def _cleanup_fsal_hook(self, base, share, access):"}],"source_content_type":"text/x-python","patch_set":8,"id":"534001b4_455e9336","line":805,"updated":"2021-03-11 03:27:49.000000000","message":"I think auth_result *is* the key, not a dictionary with the key.","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"964723c40f8312c98f4b150a4b6a8c23480d4b5c","unresolved":false,"context_lines":[{"line_number":802,"context_line":"        return {"},{"line_number":803,"context_line":"            \u0027Name\u0027: \u0027Ceph\u0027,"},{"line_number":804,"context_line":"            \u0027User_Id\u0027: ceph_auth_id,"},{"line_number":805,"context_line":"            \u0027Secret_Access_Key\u0027: auth_result[\u0027auth_key\u0027]"},{"line_number":806,"context_line":"        }"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def _cleanup_fsal_hook(self, base, share, access):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ceb13ca8_cf088cec","line":805,"in_reply_to":"534001b4_455e9336","updated":"2021-03-11 14:23:22.000000000","message":"Done","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17cd501446c5dd45939d47a61e14ab38e545e65e","unresolved":true,"context_lines":[{"line_number":838,"context_line":""},{"line_number":839,"context_line":"    def _get_export_pseudo_path(self, share):"},{"line_number":840,"context_line":"        \"\"\"Callback to provide pseudo path.\"\"\""},{"line_number":841,"context_line":"        return self._get_export_path"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    def get_configured_ip_versions(self):"},{"line_number":844,"context_line":"        if not self.configured_ip_versions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"e07bd2ae_a4bb9ca4","line":841,"updated":"2021-03-11 03:27:49.000000000","message":"return self._get_export_path(share)","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"964723c40f8312c98f4b150a4b6a8c23480d4b5c","unresolved":false,"context_lines":[{"line_number":838,"context_line":""},{"line_number":839,"context_line":"    def _get_export_pseudo_path(self, share):"},{"line_number":840,"context_line":"        \"\"\"Callback to provide pseudo path.\"\"\""},{"line_number":841,"context_line":"        return self._get_export_path"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    def get_configured_ip_versions(self):"},{"line_number":844,"context_line":"        if not self.configured_ip_versions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3d64d285_9f1b673c","line":841,"in_reply_to":"e07bd2ae_a4bb9ca4","updated":"2021-03-11 14:23:22.000000000","message":"Done","commit_id":"f1007ed25540a60c3705947bad518b06b4f7f671"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    * Actual legitimate errors"},{"line_number":142,"context_line":"    * Malformed JSON output"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    return: Decoded object from ceph, or None if empty string returned."},{"line_number":145,"context_line":"            If decode is False, return a string (the data returned by"},{"line_number":146,"context_line":"            ceph command)"},{"line_number":147,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"f4cf17b6_f9e9d262","line":144,"updated":"2021-03-14 01:57:57.000000000","message":"If decode is True, return decoded object from ceph, or None if empty string returned.","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"b393d9ae429b21caad95171a9208acfcf632bf4a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    * Actual legitimate errors"},{"line_number":142,"context_line":"    * Malformed JSON output"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    return: Decoded object from ceph, or None if empty string returned."},{"line_number":145,"context_line":"            If decode is False, return a string (the data returned by"},{"line_number":146,"context_line":"            ceph command)"},{"line_number":147,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"bc1db44b_a9d6c099","line":144,"in_reply_to":"65202784_3c0ea247","updated":"2021-03-17 21:50:58.000000000","message":"I renamed this param to json_obj, otherwise it is a bit misleading","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    * Actual legitimate errors"},{"line_number":142,"context_line":"    * Malformed JSON output"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    return: Decoded object from ceph, or None if empty string returned."},{"line_number":145,"context_line":"            If decode is False, return a string (the data returned by"},{"line_number":146,"context_line":"            ceph command)"},{"line_number":147,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"65202784_3c0ea247","line":144,"in_reply_to":"f4cf17b6_f9e9d262","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":161,"context_line":"        if decode:"},{"line_number":162,"context_line":"            if outbuf:"},{"line_number":163,"context_line":"                try:"},{"line_number":164,"context_line":"                    return json.loads(outbuf.decode())"},{"line_number":165,"context_line":"                except (ValueError, TypeError):"},{"line_number":166,"context_line":"                    raise RadosError("},{"line_number":167,"context_line":"                        \"Invalid JSON output for command {0}\".format(argdict))"}],"source_content_type":"text/x-python","patch_set":15,"id":"1059a231_23e68858","line":164,"updated":"2021-03-14 01:57:57.000000000","message":"return json.loads(outbuf.decode().strip())","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        if decode:"},{"line_number":162,"context_line":"            if outbuf:"},{"line_number":163,"context_line":"                try:"},{"line_number":164,"context_line":"                    return json.loads(outbuf.decode())"},{"line_number":165,"context_line":"                except (ValueError, TypeError):"},{"line_number":166,"context_line":"                    raise RadosError("},{"line_number":167,"context_line":"                        \"Invalid JSON output for command {0}\".format(argdict))"}],"source_content_type":"text/x-python","patch_set":15,"id":"444ad11a_b3196b9a","line":164,"in_reply_to":"1059a231_23e68858","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":168,"context_line":"            else:"},{"line_number":169,"context_line":"                return None"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            return outbuf"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class CephFSDriver(driver.ExecuteMixin, driver.GaneshaMixin,"}],"source_content_type":"text/x-python","patch_set":15,"id":"2d90a061_d80a435f","line":171,"updated":"2021-03-14 01:57:57.000000000","message":"return outbuf.decode().strip()\n\nthis way we can avoid doing this every time after call to rados_command()","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            else:"},{"line_number":169,"context_line":"                return None"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            return outbuf"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class CephFSDriver(driver.ExecuteMixin, driver.GaneshaMixin,"}],"source_content_type":"text/x-python","patch_set":15,"id":"d64ec874_8a6d225e","line":171,"in_reply_to":"2d90a061_d80a435f","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":638,"context_line":"            existing_auths \u003d None"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"            out \u003d rados_command("},{"line_number":641,"context_line":"                self.rados_client, \"fs subvolume authorized_list\", argdict)"},{"line_number":642,"context_line":"            existing_auths_str \u003d out.decode().strip()"},{"line_number":643,"context_line":"            existing_auths \u003d json.loads(existing_auths_str)"},{"line_number":644,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"6c56e9b0_b2ec3c1b","line":641,"updated":"2021-03-14 01:57:57.000000000","message":"add \"decode\u003dTrue\" argument, and you can get rid of next 2 lines?","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":638,"context_line":"            existing_auths \u003d None"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"            out \u003d rados_command("},{"line_number":641,"context_line":"                self.rados_client, \"fs subvolume authorized_list\", argdict)"},{"line_number":642,"context_line":"            existing_auths_str \u003d out.decode().strip()"},{"line_number":643,"context_line":"            existing_auths \u003d json.loads(existing_auths_str)"},{"line_number":644,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"ea562f8d_1385cf29","line":641,"in_reply_to":"6c56e9b0_b2ec3c1b","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"df4cd0e1b51af320a22f800ec1d6faaebedd9cdc","unresolved":true,"context_lines":[{"line_number":651,"context_line":"                    [rule[\u0027access_to\u0027] for rule in add_rules])"},{"line_number":652,"context_line":"                delete_auth_ids \u003d existing_auth_ids.difference("},{"line_number":653,"context_line":"                    want_auth_ids)"},{"line_number":654,"context_line":"                delete_auth_ids_list \u003d sorted(delete_auth_ids)"},{"line_number":655,"context_line":"                for delete_auth_id in delete_auth_ids_list:"},{"line_number":656,"context_line":"                    delete_rules.append("},{"line_number":657,"context_line":"                        {"}],"source_content_type":"text/x-python","patch_set":15,"id":"d70d3ec1_fab448d0","line":654,"updated":"2021-03-14 01:57:57.000000000","message":"why sort?","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":true,"context_lines":[{"line_number":651,"context_line":"                    [rule[\u0027access_to\u0027] for rule in add_rules])"},{"line_number":652,"context_line":"                delete_auth_ids \u003d existing_auth_ids.difference("},{"line_number":653,"context_line":"                    want_auth_ids)"},{"line_number":654,"context_line":"                delete_auth_ids_list \u003d sorted(delete_auth_ids)"},{"line_number":655,"context_line":"                for delete_auth_id in delete_auth_ids_list:"},{"line_number":656,"context_line":"                    delete_rules.append("},{"line_number":657,"context_line":"                        {"}],"source_content_type":"text/x-python","patch_set":15,"id":"d998eb43_e884958c","line":654,"in_reply_to":"d70d3ec1_fab448d0","updated":"2021-03-15 13:00:41.000000000","message":"This was required in order to avoid failure in the unit tests. This is a set and therefore is not ordered, and in our tests we assert calls in order. Maybe there is a better way to do this?","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"5e1ec313708bd0c031ea01740e6470225a616b81","unresolved":true,"context_lines":[{"line_number":664,"context_line":"                    [rule[\u0027access_to\u0027] for rule in add_rules])"},{"line_number":665,"context_line":"                delete_auth_ids \u003d existing_auth_ids.difference("},{"line_number":666,"context_line":"                    want_auth_ids)"},{"line_number":667,"context_line":"                delete_auth_ids_list \u003d sorted(delete_auth_ids)"},{"line_number":668,"context_line":"                for delete_auth_id in delete_auth_ids_list:"},{"line_number":669,"context_line":"                    delete_rules.append("},{"line_number":670,"context_line":"                        {"}],"source_content_type":"text/x-python","patch_set":18,"id":"3950927f_5fea7bdd","line":667,"updated":"2021-03-16 21:36:55.000000000","message":"I think unit tests will pass now without the sorted() -- at least they do for me locally with this patch.","commit_id":"4bacd4d33ef15e5d3d9f22711ac02a607afc6921"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":84,"context_line":"               default\u003d\"manila\","},{"line_number":85,"context_line":"               help\u003d\"The name of the ceph auth identity to use.\""},{"line_number":86,"context_line":"               ),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_path_prefix\u0027,"},{"line_number":88,"context_line":"               default\u003d\"/volumes\","},{"line_number":89,"context_line":"               help\u003d\"The prefix of the cephfs volume path.\""},{"line_number":90,"context_line":"               ),"},{"line_number":91,"context_line":"    cfg.BoolOpt(\u0027cephfs_enable_snapshots\u0027,"},{"line_number":92,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":93,"context_line":"                deprecated_since\u003d\u0027Victoria\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"e902e1c2_2e513842","line":90,"range":{"start_line":87,"start_character":0,"end_line":90,"end_character":17},"updated":"2021-03-23 07:16:31.000000000","message":"This option isn\u0027t used anymore,\nCan we deprecate and remove it? Please also note the deprecation in the release note\u0027s upgrade section","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":true,"context_lines":[{"line_number":84,"context_line":"               default\u003d\"manila\","},{"line_number":85,"context_line":"               help\u003d\"The name of the ceph auth identity to use.\""},{"line_number":86,"context_line":"               ),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_path_prefix\u0027,"},{"line_number":88,"context_line":"               default\u003d\"/volumes\","},{"line_number":89,"context_line":"               help\u003d\"The prefix of the cephfs volume path.\""},{"line_number":90,"context_line":"               ),"},{"line_number":91,"context_line":"    cfg.BoolOpt(\u0027cephfs_enable_snapshots\u0027,"},{"line_number":92,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":93,"context_line":"                deprecated_since\u003d\u0027Victoria\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"1962f30b_07ceae98","line":90,"range":{"start_line":87,"start_character":0,"end_line":90,"end_character":17},"in_reply_to":"e902e1c2_2e513842","updated":"2021-03-23 17:36:39.000000000","message":"Ack -- fixed here but am leaving open for us to remember to cover it in the release note.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fb302473e9830f77daf502e05bda89b7fd21ca4d","unresolved":true,"context_lines":[{"line_number":146,"context_line":"    pass"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def rados_command(rados_client, prefix\u003dNone, args\u003dNone, json_obj\u003dFalse):"},{"line_number":150,"context_line":"    \"\"\"Safer wrapper for ceph_argparse.json_command"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    Raises error exception instead of relying on caller to check return"}],"source_content_type":"text/x-python","patch_set":28,"id":"eaa33176_daeba01f","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":72},"updated":"2021-03-23 07:21:51.000000000","message":"Missing unit test coverage for this method - it has some branches, please add some testing in this patch or in a follow up change","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":173,"context_line":"              {\"cl\": rados_client, \"pf\": prefix, \"ad\": argdict,"},{"line_number":174,"context_line":"               \"to\": RADOS_TIMEOUT})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    ret, outbuf, outs \u003d json_command(rados_client,"},{"line_number":177,"context_line":"                                     prefix\u003dprefix,"},{"line_number":178,"context_line":"                                     argdict\u003dargdict,"},{"line_number":179,"context_line":"                                     timeout\u003dRADOS_TIMEOUT)"},{"line_number":180,"context_line":"    if ret !\u003d 0:"},{"line_number":181,"context_line":"        raise rados.Error(outs, ret)"},{"line_number":182,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":28,"id":"c85a86ba_f2b16a9d","line":179,"range":{"start_line":176,"start_character":0,"end_line":179,"end_character":59},"updated":"2021-03-23 07:16:31.000000000","message":"We should put this in a try block and convert the exception into a ShareBackendException if we want to handle the errors on lines 156/157?","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":173,"context_line":"              {\"cl\": rados_client, \"pf\": prefix, \"ad\": argdict,"},{"line_number":174,"context_line":"               \"to\": RADOS_TIMEOUT})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    ret, outbuf, outs \u003d json_command(rados_client,"},{"line_number":177,"context_line":"                                     prefix\u003dprefix,"},{"line_number":178,"context_line":"                                     argdict\u003dargdict,"},{"line_number":179,"context_line":"                                     timeout\u003dRADOS_TIMEOUT)"},{"line_number":180,"context_line":"    if ret !\u003d 0:"},{"line_number":181,"context_line":"        raise rados.Error(outs, ret)"},{"line_number":182,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":28,"id":"927dd666_82e78803","line":179,"range":{"start_line":176,"start_character":0,"end_line":179,"end_character":59},"in_reply_to":"c85a86ba_f2b16a9d","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":178,"context_line":"                                     argdict\u003dargdict,"},{"line_number":179,"context_line":"                                     timeout\u003dRADOS_TIMEOUT)"},{"line_number":180,"context_line":"    if ret !\u003d 0:"},{"line_number":181,"context_line":"        raise rados.Error(outs, ret)"},{"line_number":182,"context_line":"    else:"},{"line_number":183,"context_line":"        if json_obj:"},{"line_number":184,"context_line":"            if outbuf:"}],"source_content_type":"text/x-python","patch_set":28,"id":"288ed36c_c8c490a2","line":181,"range":{"start_line":181,"start_character":14,"end_line":181,"end_character":36},"updated":"2021-03-23 07:16:31.000000000","message":"handle this and raise a ShareBackendException..","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                                     argdict\u003dargdict,"},{"line_number":179,"context_line":"                                     timeout\u003dRADOS_TIMEOUT)"},{"line_number":180,"context_line":"    if ret !\u003d 0:"},{"line_number":181,"context_line":"        raise rados.Error(outs, ret)"},{"line_number":182,"context_line":"    else:"},{"line_number":183,"context_line":"        if json_obj:"},{"line_number":184,"context_line":"            if outbuf:"}],"source_content_type":"text/x-python","patch_set":28,"id":"dd9df042_45cd0675","line":181,"range":{"start_line":181,"start_character":14,"end_line":181,"end_character":36},"in_reply_to":"288ed36c_c8c490a2","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fb302473e9830f77daf502e05bda89b7fd21ca4d","unresolved":true,"context_lines":[{"line_number":315,"context_line":"        return self._rados_client"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"    @property"},{"line_number":318,"context_line":"    def volname(self):"},{"line_number":319,"context_line":"        # Name of the CephFS volume/filesystem where the driver creates"},{"line_number":320,"context_line":"        # manila entities such as shares, sharegroups, snapshots, etc."},{"line_number":321,"context_line":"        if self._volname:"},{"line_number":322,"context_line":"            return self._volname"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        self._volname \u003d self.configuration.safe_get(\u0027cephfs_filesystem_name\u0027)"},{"line_number":325,"context_line":"        if not self._volname:"},{"line_number":326,"context_line":"            out \u003d rados_command("},{"line_number":327,"context_line":"                self.rados_client, \"fs volume ls\", json_obj\u003dTrue)"},{"line_number":328,"context_line":"            if len(out) \u003d\u003d 1:"},{"line_number":329,"context_line":"                self._volname \u003d out[0][\u0027name\u0027]"},{"line_number":330,"context_line":"            else:"},{"line_number":331,"context_line":"                if len(out) \u003e 1:"},{"line_number":332,"context_line":"                    msg \u003d _(\"Specify Ceph filesystem name using \""},{"line_number":333,"context_line":"                            \"\u0027cephfs_filesystem_name\u0027 driver option.\")"},{"line_number":334,"context_line":"                else:"},{"line_number":335,"context_line":"                    msg \u003d _(\"No Ceph filesystem found.\")"},{"line_number":336,"context_line":"                raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        return self._volname"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def create_share(self, context, share, share_server\u003dNone):"},{"line_number":341,"context_line":"        \"\"\"Create a CephFS volume."}],"source_content_type":"text/x-python","patch_set":28,"id":"a2d4b655_adf59744","line":338,"range":{"start_line":318,"start_character":0,"end_line":338,"end_character":28},"updated":"2021-03-23 07:21:51.000000000","message":"Missing unit test coverage for this method - please add coverage in this change, or in a follow up change","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":456,"context_line":"            rados_command(self.rados_client, \"fs subvolume resize\", argdict)"},{"line_number":457,"context_line":"        except Exception as e:"},{"line_number":458,"context_line":"            if \u0027would be lesser than\u0027 in str(e).lower():"},{"line_number":459,"context_line":"                raise exception.ShareShrinkingPossibleDataLoss(e)"},{"line_number":460,"context_line":"            raise"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def create_snapshot(self, context, snapshot, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":28,"id":"1b942db9_c0ee22df","line":459,"range":{"start_line":459,"start_character":63,"end_line":459,"end_character":65},"updated":"2021-03-23 07:16:31.000000000","message":"share_id\u003dshare[\u0027share_id\u0027]","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":456,"context_line":"            rados_command(self.rados_client, \"fs subvolume resize\", argdict)"},{"line_number":457,"context_line":"        except Exception as e:"},{"line_number":458,"context_line":"            if \u0027would be lesser than\u0027 in str(e).lower():"},{"line_number":459,"context_line":"                raise exception.ShareShrinkingPossibleDataLoss(e)"},{"line_number":460,"context_line":"            raise"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def create_snapshot(self, context, snapshot, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":28,"id":"5a4c60d2_eee30ff8","line":459,"range":{"start_line":459,"start_character":63,"end_line":459,"end_character":65},"in_reply_to":"1b942db9_c0ee22df","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":485,"context_line":"            \"snap_name\": \u0027_\u0027.join([snapshot[\u0027snapshot_id\u0027], snapshot[\u0027id\u0027]]),"},{"line_number":486,"context_line":"        }"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        rados_command(self.rados_client, \"fs subvolume snapshot rm\", argdict)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def create_share_group(self, context, sg_dict, share_server\u003dNone):"},{"line_number":491,"context_line":"        # delete a FS group"}],"source_content_type":"text/x-python","patch_set":28,"id":"c15acfe6_ead1e72f","line":488,"range":{"start_line":488,"start_character":0,"end_line":488,"end_character":77},"updated":"2021-03-23 07:16:31.000000000","message":"do we need to try..except and ensure that NotFound errors are handled","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            \"snap_name\": \u0027_\u0027.join([snapshot[\u0027snapshot_id\u0027], snapshot[\u0027id\u0027]]),"},{"line_number":486,"context_line":"        }"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        rados_command(self.rados_client, \"fs subvolume snapshot rm\", argdict)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def create_share_group(self, context, sg_dict, share_server\u003dNone):"},{"line_number":491,"context_line":"        # delete a FS group"}],"source_content_type":"text/x-python","patch_set":28,"id":"fcc7e590_949dc944","line":488,"range":{"start_line":488,"start_character":0,"end_line":488,"end_character":77},"in_reply_to":"c15acfe6_ead1e72f","updated":"2021-03-23 17:36:39.000000000","message":"Let\u0027s just pass \"\u0027force\u0027: True\" which will cause the command to act as if it successfuly removed the object if noone is found.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    def delete_share_group(self, context, sg_dict, share_server\u003dNone):"},{"line_number":504,"context_line":"        # create a FS group"},{"line_number":505,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s.\","},{"line_number":506,"context_line":"                  {\"be\": self.backend_name, \"id\": sg_dict[\u0027id\u0027]})"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        argdict \u003d {"}],"source_content_type":"text/x-python","patch_set":28,"id":"847f2cce_7f346797","line":505,"range":{"start_line":505,"start_character":29,"end_line":505,"end_character":56},"updated":"2021-03-23 07:16:31.000000000","message":"delete_share_group","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    def delete_share_group(self, context, sg_dict, share_server\u003dNone):"},{"line_number":504,"context_line":"        # create a FS group"},{"line_number":505,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s.\","},{"line_number":506,"context_line":"                  {\"be\": self.backend_name, \"id\": sg_dict[\u0027id\u0027]})"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        argdict \u003d {"}],"source_content_type":"text/x-python","patch_set":28,"id":"3be39461_82222732","line":505,"range":{"start_line":505,"start_character":29,"end_line":505,"end_character":56},"in_reply_to":"847f2cce_7f346797","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":510,"context_line":"            \"group_name\": sg_dict[\u0027id\u0027],"},{"line_number":511,"context_line":"        }"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        rados_command(self.rados_client, \"fs subvolumegroup rm\", argdict)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def delete_share_group_snapshot(self, context, snap_dict,"},{"line_number":516,"context_line":"                                    share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":28,"id":"ce8e69d5_0f48d8b9","line":513,"range":{"start_line":513,"start_character":0,"end_line":513,"end_character":73},"updated":"2021-03-23 07:16:31.000000000","message":"do we need to try..except and ensure that NotFound errors are handled","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":510,"context_line":"            \"group_name\": sg_dict[\u0027id\u0027],"},{"line_number":511,"context_line":"        }"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        rados_command(self.rados_client, \"fs subvolumegroup rm\", argdict)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def delete_share_group_snapshot(self, context, snap_dict,"},{"line_number":516,"context_line":"                                    share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":28,"id":"14436553_6106e39a","line":513,"range":{"start_line":513,"start_character":0,"end_line":513,"end_character":73},"in_reply_to":"ce8e69d5_0f48d8b9","updated":"2021-03-23 17:36:39.000000000","message":"We\u0027ll pass \"force\".","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":515,"context_line":"    def delete_share_group_snapshot(self, context, snap_dict,"},{"line_number":516,"context_line":"                                    share_server\u003dNone):"},{"line_number":517,"context_line":"        # delete a FS group snapshot"},{"line_number":518,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s, \""},{"line_number":519,"context_line":"                  \"snapshot\u003d%(sn)s.\","},{"line_number":520,"context_line":"                  {\"be\": self.backend_name, \"id\": snap_dict[\u0027id\u0027],"},{"line_number":521,"context_line":"                   \"sn\": snap_dict[\"id\"]})"}],"source_content_type":"text/x-python","patch_set":28,"id":"e8292e6d_d9fd72e5","line":518,"range":{"start_line":518,"start_character":72,"end_line":518,"end_character":74},"updated":"2021-03-23 07:16:31.000000000","message":"nit: sg_id perhaps?","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def delete_share_group_snapshot(self, context, snap_dict,"},{"line_number":516,"context_line":"                                    share_server\u003dNone):"},{"line_number":517,"context_line":"        # delete a FS group snapshot"},{"line_number":518,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s, \""},{"line_number":519,"context_line":"                  \"snapshot\u003d%(sn)s.\","},{"line_number":520,"context_line":"                  {\"be\": self.backend_name, \"id\": snap_dict[\u0027id\u0027],"},{"line_number":521,"context_line":"                   \"sn\": snap_dict[\"id\"]})"}],"source_content_type":"text/x-python","patch_set":28,"id":"468d11c6_00193586","line":518,"range":{"start_line":518,"start_character":72,"end_line":518,"end_character":74},"in_reply_to":"e8292e6d_d9fd72e5","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":517,"context_line":"        # delete a FS group snapshot"},{"line_number":518,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s, \""},{"line_number":519,"context_line":"                  \"snapshot\u003d%(sn)s.\","},{"line_number":520,"context_line":"                  {\"be\": self.backend_name, \"id\": snap_dict[\u0027id\u0027],"},{"line_number":521,"context_line":"                   \"sn\": snap_dict[\"id\"]})"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        argdict \u003d {"}],"source_content_type":"text/x-python","patch_set":28,"id":"0a5f3ae5_11ba3921","line":520,"range":{"start_line":520,"start_character":50,"end_line":520,"end_character":65},"updated":"2021-03-23 07:16:31.000000000","message":"snap_dict[\u0027share_group_id\u0027]","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        # delete a FS group snapshot"},{"line_number":518,"context_line":"        LOG.debug(\"[%(be)s]: delete_share_group_snapshot: share_group\u003d%(id)s, \""},{"line_number":519,"context_line":"                  \"snapshot\u003d%(sn)s.\","},{"line_number":520,"context_line":"                  {\"be\": self.backend_name, \"id\": snap_dict[\u0027id\u0027],"},{"line_number":521,"context_line":"                   \"sn\": snap_dict[\"id\"]})"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        argdict \u003d {"}],"source_content_type":"text/x-python","patch_set":28,"id":"78647134_905c238d","line":520,"range":{"start_line":520,"start_character":50,"end_line":520,"end_character":65},"in_reply_to":"0a5f3ae5_11ba3921","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":526,"context_line":"            \"snap_name\": snap_dict[\"id\"]"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        rados_command("},{"line_number":530,"context_line":"            self.rados_client, \"fs subvolumegroup snapshot rm\", argdict)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        return None, []"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"8a4b0ce1_d7e4a19f","line":530,"range":{"start_line":529,"start_character":8,"end_line":530,"end_character":72},"updated":"2021-03-23 07:16:31.000000000","message":"do we need to try..except and ensure that NotFound errors are handled","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            \"snap_name\": snap_dict[\"id\"]"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        rados_command("},{"line_number":530,"context_line":"            self.rados_client, \"fs subvolumegroup snapshot rm\", argdict)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        return None, []"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"d1790938_3ca184a0","line":530,"range":{"start_line":529,"start_character":8,"end_line":530,"end_character":72},"in_reply_to":"8a4b0ce1_d7e4a19f","updated":"2021-03-23 17:36:39.000000000","message":"Let\u0027s just pass \"\u0027force\u0027: True\" which will cause the command to act as if it successfuly removed the object if noone is found.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fb302473e9830f77daf502e05bda89b7fd21ca4d","unresolved":true,"context_lines":[{"line_number":584,"context_line":"        \"\"\"Returns an error if prerequisites aren\u0027t met.\"\"\""},{"line_number":585,"context_line":"        return"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def get_mon_addrs(self):"},{"line_number":588,"context_line":"        result \u003d []"},{"line_number":589,"context_line":"        mon_map \u003d rados_command(self.rados_client, \"mon dump\", json_obj\u003dTrue)"},{"line_number":590,"context_line":"        for mon in mon_map[\u0027mons\u0027]:"},{"line_number":591,"context_line":"            ip_port \u003d mon[\u0027addr\u0027].split(\"/\")[0]"},{"line_number":592,"context_line":"            result.append(ip_port)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        return result"},{"line_number":595,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"1cfa0ef0_af5bf767","line":592,"range":{"start_line":587,"start_character":3,"end_line":592,"end_character":34},"updated":"2021-03-23 07:21:51.000000000","message":"missing unit test coverage, please add some tests in this change or in a follow up change","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e032985c6f627edc644ba09309a6cc6927c186e9","unresolved":true,"context_lines":[{"line_number":191,"context_line":"            else:"},{"line_number":192,"context_line":"                result \u003d None"},{"line_number":193,"context_line":"    except Exception:"},{"line_number":194,"context_line":"        msg \u003d _(\"json_command failed - prefix\u003d%(pfx)s, argdict\u003d%(ad)s.\","},{"line_number":195,"context_line":"                {\"pfx\": prefix, \"ad\": argdict})"},{"line_number":196,"context_line":"        raise exception.ShareBackendException(msg)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":34,"id":"eb3d2471_8867c5dc","line":195,"range":{"start_line":194,"start_character":14,"end_line":195,"end_character":47},"updated":"2021-03-23 22:57:28.000000000","message":"This needs to be \n\n msg \u003d _(\"json_command failed - prefix\u003d%(pfx)s, argdict\u003d%(ad)s.\") % {\"pfx\": prefix, \"ad\": argdict}\n\nhttps://e1b2cc33528d109f1d78-81d8804e48690a9766dbd5fdf2ae790a.ssl.cf5.rackcdn.com/779619/34/check/openstack-tox-pylint/d3e34cd/job-output.txt","commit_id":"3d65630c041fc9078959b6eb322fb50ad9ce89f3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":190,"context_line":"                result \u003d json.loads(outbuf.decode().strip())"},{"line_number":191,"context_line":"            else:"},{"line_number":192,"context_line":"                result \u003d None"},{"line_number":193,"context_line":"    except Exception:"},{"line_number":194,"context_line":"        msg \u003d _(\"json_command failed - prefix\u003d%(pfx)s, argdict\u003d%(ad)s.\" %"},{"line_number":195,"context_line":"                {\"pfx\": prefix, \"ad\": argdict})"},{"line_number":196,"context_line":"        raise exception.ShareBackendException(msg)"}],"source_content_type":"text/x-python","patch_set":35,"id":"6cc6743d_428a9840","line":193,"range":{"start_line":193,"start_character":20,"end_line":193,"end_character":21},"updated":"2021-03-24 06:28:55.000000000","message":"as e","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":192,"context_line":"                result \u003d None"},{"line_number":193,"context_line":"    except Exception:"},{"line_number":194,"context_line":"        msg \u003d _(\"json_command failed - prefix\u003d%(pfx)s, argdict\u003d%(ad)s.\" %"},{"line_number":195,"context_line":"                {\"pfx\": prefix, \"ad\": argdict})"},{"line_number":196,"context_line":"        raise exception.ShareBackendException(msg)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":35,"id":"8a0a1150_347a9b90","line":195,"range":{"start_line":195,"start_character":45,"end_line":195,"end_character":47},"updated":"2021-03-24 06:28:55.000000000","message":"also include exception message","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":454,"context_line":""},{"line_number":455,"context_line":"        try:"},{"line_number":456,"context_line":"            rados_command(self.rados_client, \"fs subvolume resize\", argdict)"},{"line_number":457,"context_line":"        except Exception as e:"},{"line_number":458,"context_line":"            if \u0027would be lesser than\u0027 in str(e).lower():"},{"line_number":459,"context_line":"                raise exception.ShareShrinkingPossibleDataLoss("},{"line_number":460,"context_line":"                    share_id\u003dshare[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":35,"id":"0efbeab0_9aa60739","line":457,"range":{"start_line":457,"start_character":15,"end_line":457,"end_character":24},"updated":"2021-03-24 06:28:55.000000000","message":"this can now be ShareBackendException","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":455,"context_line":"        try:"},{"line_number":456,"context_line":"            rados_command(self.rados_client, \"fs subvolume resize\", argdict)"},{"line_number":457,"context_line":"        except Exception as e:"},{"line_number":458,"context_line":"            if \u0027would be lesser than\u0027 in str(e).lower():"},{"line_number":459,"context_line":"                raise exception.ShareShrinkingPossibleDataLoss("},{"line_number":460,"context_line":"                    share_id\u003dshare[\u0027id\u0027])"},{"line_number":461,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":35,"id":"08602202_6e8ec578","line":458,"range":{"start_line":458,"start_character":0,"end_line":458,"end_character":56},"updated":"2021-03-24 06:28:55.000000000","message":"This didn\u0027t get handled correctly because the exception text is logged and swallowed by the handler code in rados_command: https://zuul.opendev.org/t/openstack/build/dd5f504242984d13af8fdcd1b3f9525b/log/controller/logs/screen-m-shr.txt#10404-10457","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":651,"context_line":"        try:"},{"line_number":652,"context_line":"            auth_result \u003d rados_command("},{"line_number":653,"context_line":"                self.rados_client, \"fs subvolume authorize\", argdict)"},{"line_number":654,"context_line":"        except Exception as e:"},{"line_number":655,"context_line":"            if \u0027not allowed\u0027 in str(e).lower():"},{"line_number":656,"context_line":"                msg \u003d (\"Access to client %(client)s is not allowed. \""},{"line_number":657,"context_line":"                       \"Reason: %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":35,"id":"71f5c3dc_606d3927","line":654,"range":{"start_line":654,"start_character":15,"end_line":654,"end_character":24},"updated":"2021-03-24 06:28:55.000000000","message":"ShareBackendException","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2662a1d02c70a4e94197ccc664dcc5f30bbaa3b5","unresolved":true,"context_lines":[{"line_number":652,"context_line":"            auth_result \u003d rados_command("},{"line_number":653,"context_line":"                self.rados_client, \"fs subvolume authorize\", argdict)"},{"line_number":654,"context_line":"        except Exception as e:"},{"line_number":655,"context_line":"            if \u0027not allowed\u0027 in str(e).lower():"},{"line_number":656,"context_line":"                msg \u003d (\"Access to client %(client)s is not allowed. \""},{"line_number":657,"context_line":"                       \"Reason: %(reason)s\")"},{"line_number":658,"context_line":"                msg_payload \u003d {\u0027client\u0027: ceph_auth_id, \u0027reason\u0027: e}"}],"source_content_type":"text/x-python","patch_set":35,"id":"43c4da29_121762f0","line":655,"range":{"start_line":655,"start_character":12,"end_line":655,"end_character":47},"updated":"2021-03-24 06:28:55.000000000","message":"same as above - the exception handler code around rados_command needs to bubble up the original exception message..","commit_id":"9a75f5da749dd60a3f949772d8561f38ce9d59c0"}],"manila/share/drivers/ganesha/__init__.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                self.configuration.ganesha_rados_export_index)"},{"line_number":205,"context_line":"            kwargs[\u0027ganesha_rados_export_counter\u0027] \u003d ("},{"line_number":206,"context_line":"                self.configuration.ganesha_rados_export_counter)"},{"line_number":207,"context_line":"            kwargs[\u0027rados_client\u0027] \u003d ("},{"line_number":208,"context_line":"                self.rados_client)"},{"line_number":209,"context_line":"        else:"},{"line_number":210,"context_line":"            kwargs[\u0027ganesha_db_path\u0027] \u003d self.configuration.ganesha_db_path"},{"line_number":211,"context_line":"        self.ganesha \u003d ganesha_manager.GaneshaManager("}],"source_content_type":"text/x-python","patch_set":28,"id":"87c85a62_e5af21f3","line":208,"range":{"start_line":207,"start_character":37,"end_line":208,"end_character":34},"updated":"2021-03-23 07:16:31.000000000","message":"nit, no need for parentheses and new line","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                self.configuration.ganesha_rados_export_index)"},{"line_number":205,"context_line":"            kwargs[\u0027ganesha_rados_export_counter\u0027] \u003d ("},{"line_number":206,"context_line":"                self.configuration.ganesha_rados_export_counter)"},{"line_number":207,"context_line":"            kwargs[\u0027rados_client\u0027] \u003d ("},{"line_number":208,"context_line":"                self.rados_client)"},{"line_number":209,"context_line":"        else:"},{"line_number":210,"context_line":"            kwargs[\u0027ganesha_db_path\u0027] \u003d self.configuration.ganesha_db_path"},{"line_number":211,"context_line":"        self.ganesha \u003d ganesha_manager.GaneshaManager("}],"source_content_type":"text/x-python","patch_set":28,"id":"743366cb_8e0f9a66","line":208,"range":{"start_line":207,"start_character":37,"end_line":208,"end_character":34},"in_reply_to":"87c85a62_e5af21f3","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"}],"manila/share/drivers/ganesha/manager.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        return self._get_object("},{"line_number":530,"context_line":"            self.ganesha_rados_store_pool_name, obj_name).decode(\u0027utf-8\u0027)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def _get_object(self, pool_name, object_name):"},{"line_number":533,"context_line":"        \"\"\"Synchronously read data from object."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        :param pool_name: name of the pool"}],"source_content_type":"text/x-python","patch_set":3,"id":"5af9302c_d304971a","line":532,"updated":"2021-03-10 02:10:17.000000000","message":"From code inspection, this faithfully interpolates the code currently in pybind/ceph_volume_client.py.","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        return self._get_object("},{"line_number":530,"context_line":"            self.ganesha_rados_store_pool_name, obj_name).decode(\u0027utf-8\u0027)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def _get_object(self, pool_name, object_name):"},{"line_number":533,"context_line":"        \"\"\"Synchronously read data from object."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        :param pool_name: name of the pool"}],"source_content_type":"text/x-python","patch_set":3,"id":"e5c6e1ce_7cedfc8e","line":532,"in_reply_to":"5af9302c_d304971a","updated":"2021-03-10 11:54:58.000000000","message":"Yeah, it\u0027s exactly the same... I was wondering if we should tweak at a bit and make it simpler. Do you think we should directly implement in the same function? Like, we could get rid of both _get_rados_object(self, obj_name) and _get_object(self, pool_name, object_name), rename _get_object_and_version(self, pool_name, object_name) to be the new _get_rados_object(self, obj_name) and just get the bytes read as a text string","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"b096c1760d48efee11168d2183936a5c5f4a2b90","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        return self._get_object("},{"line_number":530,"context_line":"            self.ganesha_rados_store_pool_name, obj_name).decode(\u0027utf-8\u0027)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def _get_object(self, pool_name, object_name):"},{"line_number":533,"context_line":"        \"\"\"Synchronously read data from object."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        :param pool_name: name of the pool"}],"source_content_type":"text/x-python","patch_set":3,"id":"ddbc8067_6f1c0e3a","line":532,"in_reply_to":"e5c6e1ce_7cedfc8e","updated":"2021-03-10 12:07:07.000000000","message":"Sure, refactor if you want.  It was nice to see the exact code in this patch to make review easier :D","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def _put_rados_object(self, obj_name, data):"},{"line_number":566,"context_line":"        \"\"\"Put data as a byte string in a Ceph RADOS object.\"\"\""},{"line_number":567,"context_line":"        return self._put_object("},{"line_number":568,"context_line":"            self.ganesha_rados_store_pool_name, obj_name, data.encode(\u0027utf-8\u0027))"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    def _put_object(self, pool_name, object_name, data):"}],"source_content_type":"text/x-python","patch_set":3,"id":"944983ec_f74d4068","line":567,"updated":"2021-03-10 02:10:17.000000000","message":"ditto","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def _put_rados_object(self, obj_name, data):"},{"line_number":566,"context_line":"        \"\"\"Put data as a byte string in a Ceph RADOS object.\"\"\""},{"line_number":567,"context_line":"        return self._put_object("},{"line_number":568,"context_line":"            self.ganesha_rados_store_pool_name, obj_name, data.encode(\u0027utf-8\u0027))"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    def _put_object(self, pool_name, object_name, data):"}],"source_content_type":"text/x-python","patch_set":3,"id":"927aaaca_66ba8a98","line":567,"in_reply_to":"944983ec_f74d4068","updated":"2021-03-10 11:54:58.000000000","message":"ditto","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":599,"context_line":"            msg \u003d (\"Data to be written to object \u0027{0}\u0027 exceeds \""},{"line_number":600,"context_line":"                   \"{1} bytes\".format(object_name, max_size))"},{"line_number":601,"context_line":"            log.error(msg)"},{"line_number":602,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"        try:"},{"line_number":605,"context_line":"            with rados.WriteOpCtx() as wop:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5b23bdf4_66478d9c","line":602,"updated":"2021-03-10 02:10:17.000000000","message":"seems like the right exception","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":false,"context_lines":[{"line_number":599,"context_line":"            msg \u003d (\"Data to be written to object \u0027{0}\u0027 exceeds \""},{"line_number":600,"context_line":"                   \"{1} bytes\".format(object_name, max_size))"},{"line_number":601,"context_line":"            log.error(msg)"},{"line_number":602,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"        try:"},{"line_number":605,"context_line":"            with rados.WriteOpCtx() as wop:"}],"source_content_type":"text/x-python","patch_set":3,"id":"03a2c11b_8a3b5172","line":602,"in_reply_to":"5b23bdf4_66478d9c","updated":"2021-03-10 11:54:58.000000000","message":"Ack","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"302706dfc546d4d59c6e8d1b2ec402c46505b0ca","unresolved":true,"context_lines":[{"line_number":617,"context_line":"        return self._delete_object("},{"line_number":618,"context_line":"            self.ganesha_rados_store_pool_name, obj_name)"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    def _delete_object(self, pool_name, object_name):"},{"line_number":621,"context_line":"        ioctx \u003d self.rados.open_ioctx(pool_name)"},{"line_number":622,"context_line":"        try:"},{"line_number":623,"context_line":"            ioctx.remove_object(object_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bd41653c_f71bbfca","line":620,"updated":"2021-03-10 02:10:17.000000000","message":"ditto","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3166a40099f1c9763ae502bd1e5505d2de37a8e6","unresolved":true,"context_lines":[{"line_number":617,"context_line":"        return self._delete_object("},{"line_number":618,"context_line":"            self.ganesha_rados_store_pool_name, obj_name)"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    def _delete_object(self, pool_name, object_name):"},{"line_number":621,"context_line":"        ioctx \u003d self.rados.open_ioctx(pool_name)"},{"line_number":622,"context_line":"        try:"},{"line_number":623,"context_line":"            ioctx.remove_object(object_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e9a13c08_a4dd4a77","line":620,"in_reply_to":"bd41653c_f71bbfca","updated":"2021-03-10 11:54:58.000000000","message":"ditto","commit_id":"e505b00ade5ccaf3d9c66c2ad0e5673754e06117"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"34418d0a83f2fa9d64cc6109b9aeb84c1936618d","unresolved":true,"context_lines":[{"line_number":256,"context_line":"            self.ganesha_rados_export_index \u003d ("},{"line_number":257,"context_line":"                kwargs[\u0027ganesha_rados_export_index\u0027])"},{"line_number":258,"context_line":"            self.rados_client \u003d ("},{"line_number":259,"context_line":"                kwargs[\u0027rados_client\u0027])"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                self._get_rados_object(self.ganesha_rados_export_counter)"},{"line_number":262,"context_line":"            except rados.ObjectNotFound:"}],"source_content_type":"text/x-python","patch_set":5,"id":"82fc9da8_0a7d711b","line":259,"updated":"2021-03-10 20:05:28.000000000","message":"We need to update manila/share/drivers/ganesha/__init__.py lines 186-187 and 209-210 to use self.rados_client instead of self.ceph_volume_client.  kwargs[\u0027rados_client\u0027] isn\u0027t set here otherwise.","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"fc59ba3a3c8078f730ab740734237eb08149bae4","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            self.ganesha_rados_export_index \u003d ("},{"line_number":257,"context_line":"                kwargs[\u0027ganesha_rados_export_index\u0027])"},{"line_number":258,"context_line":"            self.rados_client \u003d ("},{"line_number":259,"context_line":"                kwargs[\u0027rados_client\u0027])"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                self._get_rados_object(self.ganesha_rados_export_counter)"},{"line_number":262,"context_line":"            except rados.ObjectNotFound:"}],"source_content_type":"text/x-python","patch_set":5,"id":"564a340b_8ce0cec3","line":259,"in_reply_to":"82fc9da8_0a7d711b","updated":"2021-03-10 21:57:43.000000000","message":"Done","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"34418d0a83f2fa9d64cc6109b9aeb84c1936618d","unresolved":true,"context_lines":[{"line_number":549,"context_line":"        :type object_name: str"},{"line_number":550,"context_line":"        :returns: tuple of object data and version"},{"line_number":551,"context_line":"        \"\"\""},{"line_number":552,"context_line":"        ioctx \u003d self.rados.open_ioctx(pool_name)"},{"line_number":553,"context_line":"        max_size \u003d int(self.rados.conf_get(\u0027osd_max_write_size\u0027)) * 1024 * 1024"},{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            bytes_read \u003d ioctx.read(object_name, max_size)"}],"source_content_type":"text/x-python","patch_set":5,"id":"88057cd5_f2114dda","line":552,"updated":"2021-03-10 20:05:28.000000000","message":"Should self.rados here and following be self.rados_client?  We don\u0027t have a self.rados afict.","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"fc59ba3a3c8078f730ab740734237eb08149bae4","unresolved":true,"context_lines":[{"line_number":549,"context_line":"        :type object_name: str"},{"line_number":550,"context_line":"        :returns: tuple of object data and version"},{"line_number":551,"context_line":"        \"\"\""},{"line_number":552,"context_line":"        ioctx \u003d self.rados.open_ioctx(pool_name)"},{"line_number":553,"context_line":"        max_size \u003d int(self.rados.conf_get(\u0027osd_max_write_size\u0027)) * 1024 * 1024"},{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            bytes_read \u003d ioctx.read(object_name, max_size)"}],"source_content_type":"text/x-python","patch_set":5,"id":"d9843a8d_64b51039","line":552,"in_reply_to":"88057cd5_f2114dda","updated":"2021-03-10 21:57:43.000000000","message":"Yes, good catch, updating it","commit_id":"f2b874e5d3f45584531b9f77c087c3e40ffbdcad"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"848bbebe5f031041f8b738c540857876b53fdd84","unresolved":true,"context_lines":[{"line_number":578,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        try:"},{"line_number":581,"context_line":"            with self.rados_client.WriteOpCtx() as wop:"},{"line_number":582,"context_line":"                wop.write_full(encoded_data)"},{"line_number":583,"context_line":"                ioctx.operate_write_op(wop, object_name)"},{"line_number":584,"context_line":"        except rados.OSError as e:"}],"source_content_type":"text/x-python","patch_set":11,"id":"eee45931_d3c9b1c9","line":581,"updated":"2021-03-12 17:55:09.000000000","message":"This causes a traceback in manila-share with \u0027manila access-allow\u0027  It should be:\n     with rados.WriteOpCtx() as wop:\nself.rados_client instantinates rados.Rados, which has no WriteOpCtx, but there is a rados.WriteOpCtx.  When I make this change and restart manila-share the \u0027manila access-allow\u0027 command succeeds.","commit_id":"eeab1a2b844d667f0516d6f8aa7bb18af8659b73"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":true,"context_lines":[{"line_number":578,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        try:"},{"line_number":581,"context_line":"            with self.rados_client.WriteOpCtx() as wop:"},{"line_number":582,"context_line":"                wop.write_full(encoded_data)"},{"line_number":583,"context_line":"                ioctx.operate_write_op(wop, object_name)"},{"line_number":584,"context_line":"        except rados.OSError as e:"}],"source_content_type":"text/x-python","patch_set":11,"id":"743a9b0c_2e78a592","line":581,"in_reply_to":"eee45931_d3c9b1c9","updated":"2021-03-15 13:00:41.000000000","message":"I was wondering if we could use the rados_client we instantiated in the main driver impl or if we needed to use the rados lib. Good catch Tom. I\u0027ll rewrite this.","commit_id":"eeab1a2b844d667f0516d6f8aa7bb18af8659b73"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"f795040227a486b9c3f8ee7fcfa569751e0a6909","unresolved":true,"context_lines":[{"line_number":544,"context_line":"            bytes_read \u003d ioctx.read(object_name, max_size)"},{"line_number":545,"context_line":"            if ((len(bytes_read) \u003d\u003d max_size) and"},{"line_number":546,"context_line":"                    (ioctx.read(object_name, 1, offset\u003dmax_size))):"},{"line_number":547,"context_line":"                log.warning(\"Size of object {0} exceeds \u0027{1}\u0027 bytes \""},{"line_number":548,"context_line":"                            \"read\".format(object_name, max_size))"},{"line_number":549,"context_line":"        finally:"},{"line_number":550,"context_line":"            ioctx.close()"}],"source_content_type":"text/x-python","patch_set":15,"id":"4d667ad7_6a53bf71","line":547,"updated":"2021-03-14 02:25:37.000000000","message":"s/log.warning/LOG.warning/","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            bytes_read \u003d ioctx.read(object_name, max_size)"},{"line_number":545,"context_line":"            if ((len(bytes_read) \u003d\u003d max_size) and"},{"line_number":546,"context_line":"                    (ioctx.read(object_name, 1, offset\u003dmax_size))):"},{"line_number":547,"context_line":"                log.warning(\"Size of object {0} exceeds \u0027{1}\u0027 bytes \""},{"line_number":548,"context_line":"                            \"read\".format(object_name, max_size))"},{"line_number":549,"context_line":"        finally:"},{"line_number":550,"context_line":"            ioctx.close()"}],"source_content_type":"text/x-python","patch_set":15,"id":"403de39d_0e021396","line":547,"in_reply_to":"4d667ad7_6a53bf71","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"f795040227a486b9c3f8ee7fcfa569751e0a6909","unresolved":true,"context_lines":[{"line_number":574,"context_line":"        if len(encoded_data) \u003e max_size:"},{"line_number":575,"context_line":"            msg \u003d (\"Data to be written to object \u0027{0}\u0027 exceeds \""},{"line_number":576,"context_line":"                   \"{1} bytes\".format(object_name, max_size))"},{"line_number":577,"context_line":"            log.error(msg)"},{"line_number":578,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7bad91cf_cfbf2a0e","line":577,"updated":"2021-03-14 02:25:37.000000000","message":"s/log.error/LOG.error/","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        if len(encoded_data) \u003e max_size:"},{"line_number":575,"context_line":"            msg \u003d (\"Data to be written to object \u0027{0}\u0027 exceeds \""},{"line_number":576,"context_line":"                   \"{1} bytes\".format(object_name, max_size))"},{"line_number":577,"context_line":"            log.error(msg)"},{"line_number":578,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":15,"id":"89f8d8cf_e0c8c032","line":577,"in_reply_to":"7bad91cf_cfbf2a0e","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"f795040227a486b9c3f8ee7fcfa569751e0a6909","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                wop.write_full(encoded_data)"},{"line_number":583,"context_line":"                ioctx.operate_write_op(wop, object_name)"},{"line_number":584,"context_line":"        except rados.OSError as e:"},{"line_number":585,"context_line":"            log.error(e)"},{"line_number":586,"context_line":"            raise e"},{"line_number":587,"context_line":"        finally:"},{"line_number":588,"context_line":"            ioctx.close()"}],"source_content_type":"text/x-python","patch_set":15,"id":"c2a1a014_a9dcf5b7","line":585,"updated":"2021-03-14 02:25:37.000000000","message":"s/log.error/LOG.error/","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                wop.write_full(encoded_data)"},{"line_number":583,"context_line":"                ioctx.operate_write_op(wop, object_name)"},{"line_number":584,"context_line":"        except rados.OSError as e:"},{"line_number":585,"context_line":"            log.error(e)"},{"line_number":586,"context_line":"            raise e"},{"line_number":587,"context_line":"        finally:"},{"line_number":588,"context_line":"            ioctx.close()"}],"source_content_type":"text/x-python","patch_set":15,"id":"30d66754_fabdf450","line":585,"in_reply_to":"c2a1a014_a9dcf5b7","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"f795040227a486b9c3f8ee7fcfa569751e0a6909","unresolved":true,"context_lines":[{"line_number":593,"context_line":"        try:"},{"line_number":594,"context_line":"            ioctx.remove_object(object_name)"},{"line_number":595,"context_line":"        except rados.ObjectNotFound:"},{"line_number":596,"context_line":"            log.warning(\"Object \u0027{0}\u0027 was already removed\".format(object_name))"},{"line_number":597,"context_line":"        finally:"},{"line_number":598,"context_line":"            ioctx.close()"},{"line_number":599,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"8573fe7f_817bec4b","line":596,"updated":"2021-03-14 02:25:37.000000000","message":"s/log.warning/LOG.warning/","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"13fed394935a0be2a6020d44954d246d1986d733","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        try:"},{"line_number":594,"context_line":"            ioctx.remove_object(object_name)"},{"line_number":595,"context_line":"        except rados.ObjectNotFound:"},{"line_number":596,"context_line":"            log.warning(\"Object \u0027{0}\u0027 was already removed\".format(object_name))"},{"line_number":597,"context_line":"        finally:"},{"line_number":598,"context_line":"            ioctx.close()"},{"line_number":599,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"eefba204_4cdf2a87","line":596,"in_reply_to":"8573fe7f_817bec4b","updated":"2021-03-15 13:00:41.000000000","message":"Ack","commit_id":"d1cca4412ffce87c62a7b55c98d310b056269891"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":255,"context_line":"                kwargs[\u0027ganesha_rados_export_counter\u0027])"},{"line_number":256,"context_line":"            self.ganesha_rados_export_index \u003d ("},{"line_number":257,"context_line":"                kwargs[\u0027ganesha_rados_export_index\u0027])"},{"line_number":258,"context_line":"            self.rados_client \u003d ("},{"line_number":259,"context_line":"                kwargs[\u0027rados_client\u0027])"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                self._get_rados_object(self.ganesha_rados_export_counter)"},{"line_number":262,"context_line":"            except rados.ObjectNotFound:"}],"source_content_type":"text/x-python","patch_set":28,"id":"af0ef20b_ae59109c","line":259,"range":{"start_line":258,"start_character":32,"end_line":259,"end_character":39},"updated":"2021-03-23 07:16:31.000000000","message":"nit: no need for parentheses or new line","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                kwargs[\u0027ganesha_rados_export_counter\u0027])"},{"line_number":256,"context_line":"            self.ganesha_rados_export_index \u003d ("},{"line_number":257,"context_line":"                kwargs[\u0027ganesha_rados_export_index\u0027])"},{"line_number":258,"context_line":"            self.rados_client \u003d ("},{"line_number":259,"context_line":"                kwargs[\u0027rados_client\u0027])"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                self._get_rados_object(self.ganesha_rados_export_counter)"},{"line_number":262,"context_line":"            except rados.ObjectNotFound:"}],"source_content_type":"text/x-python","patch_set":28,"id":"7375ab09_b463d141","line":259,"range":{"start_line":258,"start_character":32,"end_line":259,"end_character":39},"in_reply_to":"af0ef20b_ae59109c","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"}],"manila/tests/share/drivers/cephfs/test_driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def test_allow_access_to_preexisting_ceph_user(self):"},{"line_number":530,"context_line":"        msg \u003d (\"auth ID: admin exists and not created by \""},{"line_number":531,"context_line":"               \"ceph_volume_client. Not allowed to modify\")"},{"line_number":532,"context_line":"        driver.rados_command.side_effect \u003d Exception(msg)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"}],"source_content_type":"text/x-python","patch_set":28,"id":"8a9e4f02_9b5f2ef2","line":531,"range":{"start_line":531,"start_character":16,"end_line":531,"end_character":34},"updated":"2021-03-23 07:16:31.000000000","message":"mgr plugin","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"17bc09f777484d26cdeaf3ca41b43d884af75808","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def test_allow_access_to_preexisting_ceph_user(self):"},{"line_number":530,"context_line":"        msg \u003d (\"auth ID: admin exists and not created by \""},{"line_number":531,"context_line":"               \"ceph_volume_client. Not allowed to modify\")"},{"line_number":532,"context_line":"        driver.rados_command.side_effect \u003d Exception(msg)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"}],"source_content_type":"text/x-python","patch_set":28,"id":"4237fbda_0d396939","line":531,"range":{"start_line":531,"start_character":16,"end_line":531,"end_character":34},"in_reply_to":"8a9e4f02_9b5f2ef2","updated":"2021-03-23 17:36:39.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"}],"manila/tests/share/drivers/ganesha/test_manager.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6a932b0557e9051a15e4d8d3314dfa5a38bbcc09","unresolved":true,"context_lines":[{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"        self.assertEqual(fakebin.decode(\u0027utf-8\u0027), ret)"},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"    def test_put_rados_object(self):"},{"line_number":1050,"context_line":"        pass"},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"        # TODO(vkmc) Fix me"}],"source_content_type":"text/x-python","patch_set":12,"id":"4618bcb3_ae84ed15","line":1049,"updated":"2021-03-11 22:40:45.000000000","message":"The \"with\" context on WriteOpCtx assumes that there will be __enter__ and __exit__ methods called, so we need to supply mocked versions of these.  This is ugly but seems to work:\"\n\ndef test_put_rados_object(self):\n    faketext \u003d chr(246)\n\n    ioctx \u003d mock.Mock()\n\n    mock_enter \u003d mock.Mock()\n    mock_exit \u003d mock.Mock()\n    mock_enter_exit \u003d mock.Mock(__enter__\u003dmock_enter, __exit__\u003dmock_exit)\n\n    self.rados_client.open_ioctx \u003d mock.Mock(return_value\u003dioctx)\n    self.rados_client.conf_get \u003d mock.Mock(return_value\u003d256)\n    self.rados_client.WriteOpCtx \u003d mock.Mock(return_value\u003dmock_enter_exit)\n\n   ... (same as you have from here)","commit_id":"c13e3cdfcfb7af97cbe45b8d16a331d68b027560"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"9e6fe1c5abc8d10878b491d372d75eda139a4a61","unresolved":true,"context_lines":[{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"        self.assertEqual(fakebin.decode(\u0027utf-8\u0027), ret)"},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"    def test_put_rados_object(self):"},{"line_number":1050,"context_line":"        pass"},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"        # TODO(vkmc) Fix me"}],"source_content_type":"text/x-python","patch_set":12,"id":"0c3a36f1_6220919a","line":1049,"in_reply_to":"4618bcb3_ae84ed15","updated":"2021-03-12 00:11:13.000000000","message":"Thanks Tom! After some reading I ended up picking MagicMock to do the trick... seems there is not a convention on how to do mocking on objects used as context managers","commit_id":"c13e3cdfcfb7af97cbe45b8d16a331d68b027560"}],"releasenotes/notes/bp-update-cephfs-drivers-9ac5165f31669030.yaml":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated extra spec is no longer supported. If enabled, this"},{"line_number":5,"context_line":"    configuration option leads to a considerable decrease in performance."},{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"3e078f8e_a833a0b6","line":4,"updated":"2021-03-18 12:53:25.000000000","message":"Need to indicate that this deprecation pertains to CephFS driver.  It just appears in deprecations section of release notes without context.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7267581eef8d7111173e7257577df1e49a76ee05","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated extra spec is no longer supported. If enabled, this"},{"line_number":5,"context_line":"    configuration option leads to a considerable decrease in performance."},{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"9a10e254_60918057","line":4,"in_reply_to":"3e078f8e_a833a0b6","updated":"2021-03-19 14:53:02.000000000","message":"Ramana, is there a deprecation note we can cite from the Ceph community?","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"af5334440b6ba3a8f87514bccc090e70a6ed33e5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated extra spec is no longer supported. If enabled, this"},{"line_number":5,"context_line":"    configuration option leads to a considerable decrease in performance."},{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"55f357dc_06b51721","line":4,"in_reply_to":"9a10e254_60918057","updated":"2021-03-19 19:22:39.000000000","message":"I don\u0027t think so. I suggest saying that the Ceph mgr/volumes interface doesn\u0027t have support for data_isolated extra spec. The Ceph community decided not to  implement this for mgr/volumes as creating a RADOS pool for every subvolume/share doesn\u0027t scale. The ceph_volume_client library that supports this feature is already removed in Ceph master/Quincy, and deprecated in Pacific release.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated extra spec is no longer supported. If enabled, this"},{"line_number":5,"context_line":"    configuration option leads to a considerable decrease in performance."},{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Implements operations leveraging the rados client."}],"source_content_type":"text/x-yaml","patch_set":21,"id":"c208a55f_b5b9bcf7","line":6,"updated":"2021-03-18 12:53:25.000000000","message":"Pls. indicate that this is a *Ceph community* decision; one could read it as a Manila or OpenStack community decision.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Implements operations leveraging the rados client."},{"line_number":10,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":11,"context_line":"    (removal planned for Ceph Q)"},{"line_number":12,"context_line":"other:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"372ecfd9_e31bc2d2","line":9,"updated":"2021-03-18 12:53:25.000000000","message":"Need to indicate that this deprecation pertains to CephFS driver.  It just appears in the fixes section of release notes without context.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7267581eef8d7111173e7257577df1e49a76ee05","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Therefore, the community decided to remove this option entirely."},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Implements operations leveraging the rados client."},{"line_number":10,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":11,"context_line":"    (removal planned for Ceph Q)"},{"line_number":12,"context_line":"other:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"fa7a24d7_80c3db9f","line":9,"in_reply_to":"372ecfd9_e31bc2d2","updated":"2021-03-19 14:53:02.000000000","message":"Ack","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    (removal planned for Ceph Q)"},{"line_number":12,"context_line":"other:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    - The drivers can now work with multiple filesystem clusters."},{"line_number":15,"context_line":"    The filesystem to be used by manila can be specified by the"},{"line_number":16,"context_line":"    driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":17,"context_line":"    - Several unit tests have been dropped including"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"7fdb52e9_a95cfcdc","line":14,"updated":"2021-03-18 12:53:25.000000000","message":"ditto on indicating that this ia about CephFS driver.\n\nAlso. any given CephFS driver instance can still only use one filesystem (which we can now select via configuration option) -- right?  Maybe the point is that the backend Ceph cluster can now support multiple file systems so we have a configuration option to pick which to use?","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7267581eef8d7111173e7257577df1e49a76ee05","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    (removal planned for Ceph Q)"},{"line_number":12,"context_line":"other:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    - The drivers can now work with multiple filesystem clusters."},{"line_number":15,"context_line":"    The filesystem to be used by manila can be specified by the"},{"line_number":16,"context_line":"    driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":17,"context_line":"    - Several unit tests have been dropped including"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"e80bc18d_a4dcddf6","line":14,"in_reply_to":"7fdb52e9_a95cfcdc","updated":"2021-03-19 14:53:02.000000000","message":"Yes, that\u0027s true. We can clarify that.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"af5334440b6ba3a8f87514bccc090e70a6ed33e5","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    (removal planned for Ceph Q)"},{"line_number":12,"context_line":"other:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    - The drivers can now work with multiple filesystem clusters."},{"line_number":15,"context_line":"    The filesystem to be used by manila can be specified by the"},{"line_number":16,"context_line":"    driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":17,"context_line":"    - Several unit tests have been dropped including"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"14711feb_7a47f48f","line":14,"in_reply_to":"e80bc18d_a4dcddf6","updated":"2021-03-19 19:22:39.000000000","message":"Thanks, Tom. I wasn\u0027t clear here. The drivers without this change work with multiple filesystem clusters. The drivers would always pick the cluster\u0027s default filesystem.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":12,"context_line":"other:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    - The drivers can now work with multiple filesystem clusters."},{"line_number":15,"context_line":"    The filesystem to be used by manila can be specified by the"},{"line_number":16,"context_line":"    driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":17,"context_line":"    - Several unit tests have been dropped including"},{"line_number":18,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"25ad0e99_31882397","line":15,"updated":"2021-03-18 12:53:25.000000000","message":"Lines 15-16 need to be indented to match line 14.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7267581eef8d7111173e7257577df1e49a76ee05","unresolved":false,"context_lines":[{"line_number":12,"context_line":"other:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    - The drivers can now work with multiple filesystem clusters."},{"line_number":15,"context_line":"    The filesystem to be used by manila can be specified by the"},{"line_number":16,"context_line":"    driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":17,"context_line":"    - Several unit tests have been dropped including"},{"line_number":18,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"ac62531c_2179c284","line":15,"in_reply_to":"25ad0e99_31882397","updated":"2021-03-19 14:53:02.000000000","message":"Ack","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2b536b0c5da82fffc812933b1a47cf8042b98439","unresolved":true,"context_lines":[{"line_number":21,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":22,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":23,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":24,"context_line":"    The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":25,"context_line":"    trash folder and purges the trash\u0027s contents"},{"line_number":26,"context_line":"    (`rm -rf` of the backend CephFS subvolume/subtree) aysnchronously,"},{"line_number":27,"context_line":"    whereas the ceph_volume_client library moves the share\u0027s content"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"770436ce_30499b8c","line":24,"updated":"2021-03-18 12:53:25.000000000","message":"Lines 24ff need to be indented to match line 23.","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7267581eef8d7111173e7257577df1e49a76ee05","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":22,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":23,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":24,"context_line":"    The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":25,"context_line":"    trash folder and purges the trash\u0027s contents"},{"line_number":26,"context_line":"    (`rm -rf` of the backend CephFS subvolume/subtree) aysnchronously,"},{"line_number":27,"context_line":"    whereas the ceph_volume_client library moves the share\u0027s content"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"5b4a9c85_c09815fc","line":24,"in_reply_to":"770436ce_30499b8c","updated":"2021-03-19 14:53:02.000000000","message":"Ack","commit_id":"f71cf1288e1817511f63144eaa53ef272a68df43"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7c8d0f4155b55aa35be5e47d5d00a56d6d3aff1b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":28,"id":"b8b60dfe_4fc03bc1","updated":"2021-03-23 07:17:50.000000000","message":"the release notes job claims that this file needs a newline at the end","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"808b0153_f705bdc7","in_reply_to":"b8b60dfe_4fc03bc1","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated option is not supported in the rados client."},{"line_number":5,"context_line":"    If enabled, this configuration option lead to a considerable decrease"},{"line_number":6,"context_line":"    in performance, since it was enabling the creation of a separate pool"},{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"5da0e45d_462498ce","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":73},"updated":"2021-03-23 07:16:31.000000000","message":"this wasn\u0027t an option, it was a scoped extra-spec: ``cephfs:data_isolated``","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated option is not supported in the rados client."},{"line_number":5,"context_line":"    If enabled, this configuration option lead to a considerable decrease"},{"line_number":6,"context_line":"    in performance, since it was enabling the creation of a separate pool"},{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"21dc8fe3_0b5dc9cb","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":73},"in_reply_to":"5da0e45d_462498ce","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated option is not supported in the rados client."},{"line_number":5,"context_line":"    If enabled, this configuration option lead to a considerable decrease"},{"line_number":6,"context_line":"    in performance, since it was enabling the creation of a separate pool"},{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"},{"line_number":9,"context_line":"    and the OpenStack manila community decided to remove this extra spec"},{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"89cc1620_330358b9","line":10,"range":{"start_line":4,"start_character":4,"end_line":10,"end_character":27},"updated":"2021-03-23 07:16:31.000000000","message":"Needs some context. All release notes in the manila repository are collated together in the end and these bullet points are added within their respective sections. So, each bullet item must provide complete context of what you\u0027re referring to. \n\n  The ``cephfs:data_isolated`` extra specification is no longer supported by the\n  CephFS driver...","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"},{"line_number":9,"context_line":"    and the OpenStack manila community decided to remove this extra spec"},{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"fb4a6a75_ed904e1e","line":10,"range":{"start_line":10,"start_character":4,"end_line":10,"end_character":27},"updated":"2021-03-23 07:16:31.000000000","message":"nit: in the Wallaby release","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The data_isolated option is not supported in the rados client."},{"line_number":5,"context_line":"    If enabled, this configuration option lead to a considerable decrease"},{"line_number":6,"context_line":"    in performance, since it was enabling the creation of a separate pool"},{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"},{"line_number":9,"context_line":"    and the OpenStack manila community decided to remove this extra spec"},{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"844d5041_d25cf809","line":10,"range":{"start_line":4,"start_character":4,"end_line":10,"end_character":27},"in_reply_to":"89cc1620_330358b9","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    per share. Therefore, the Ceph community decided not to include this"},{"line_number":8,"context_line":"    option in rados client (which the manila Cephfs drivers will be using now)"},{"line_number":9,"context_line":"    and the OpenStack manila community decided to remove this extra spec"},{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"522b932b_334a4034","line":10,"range":{"start_line":10,"start_character":4,"end_line":10,"end_character":27},"in_reply_to":"fb4a6a75_ed904e1e","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."},{"line_number":14,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"47ce93e3_7fc9cba7","line":13,"range":{"start_line":13,"start_character":4,"end_line":13,"end_character":54},"updated":"2021-03-23 07:16:31.000000000","message":"The CephFS driver now communicates with ceph clusters via the \"ceph_argparse\" client instead of the \"ceph_volume_client\". The ceph_volume_client has been deprecated and will not be available in the Quincy release of Ceph.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"c41d2590811beac0bda3faff94a147d26968ad08","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."},{"line_number":14,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"8b2982b3_2199fc46","line":13,"range":{"start_line":13,"start_character":4,"end_line":13,"end_character":54},"in_reply_to":"47ce93e3_7fc9cba7","updated":"2021-03-23 19:39:51.000000000","message":"\"ceph_argparse\" client? It\u0027s a utility library for the Ceph CLI. We connect to the Ceph cluster using the python rados client and make use of the ceph_argparse library to issue commands to Ceph manager daemon\u0027s volumes module. Maybe say implements CephFS backend operations by issuing commands to ceph-mgr\u0027s volumes module using a python rados client?","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    on the Wallaby release."},{"line_number":11,"context_line":"fixes:"},{"line_number":12,"context_line":"  - |"},{"line_number":13,"context_line":"    Implements operations leveraging the rados client."},{"line_number":14,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"262fc434_200ba3c5","line":13,"range":{"start_line":13,"start_character":4,"end_line":13,"end_character":54},"in_reply_to":"47ce93e3_7fc9cba7","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":14,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"316724b8_c6cd67d1","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":5},"updated":"2021-03-23 07:16:31.000000000","message":"upgrade","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    Removes the ceph_vol_client, library soon to be deprecated and removed"},{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"f49b5bae_2f621f9c","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":5},"in_reply_to":"316724b8_c6cd67d1","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"10397f1f_6021db00","line":18,"range":{"start_line":18,"start_character":4,"end_line":18,"end_character":5},"updated":"2021-03-23 07:16:31.000000000","message":"Please call out the breaking upgrade impact here:\n\n Manila\u0027s CephFS drivers now **require** the \"ceph_argparse\" package and the \"rados\" packages.\n Do not upgrade without also adding these packages within your environment since the driver\n will refuse to startup. This breaking change was necessary because the erstwhile driver\n connector \"ceph_volume_client\" has been deprecated by the Ceph community.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"76ee928b_eceb07c7","line":18,"range":{"start_line":18,"start_character":4,"end_line":18,"end_character":5},"in_reply_to":"10397f1f_6021db00","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"c41d2590811beac0bda3faff94a147d26968ad08","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"9ef4825e_53afb70c","line":18,"range":{"start_line":18,"start_character":4,"end_line":18,"end_character":5},"in_reply_to":"10397f1f_6021db00","updated":"2021-03-23 19:39:51.000000000","message":"If we want to be precise, maybe say, require \"python3-ceph-argparse\" and \"python3-rados\" packages?","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d4fa72f4b647425ffd78e0c07663fca341f5eba0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    by the Ceph Community. Expected removal timeframe is for for Ceph Q"},{"line_number":16,"context_line":"    release."},{"line_number":17,"context_line":"other:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"87d54cc3_1606aa62","line":18,"range":{"start_line":18,"start_character":4,"end_line":18,"end_character":5},"in_reply_to":"76ee928b_eceb07c7","updated":"2021-03-23 21:12:54.000000000","message":"\u003e If we want to be precise, maybe say, require \"python3-ceph-argparse\" and \"python3-rados\" packages?\n\nYeah that\u0027s better - thanks for the package names.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":22,"context_line":"    - Several unit tests have been dropped including"},{"line_number":23,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"},{"line_number":24,"context_line":"        (extra spec deprecated and removed)"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"ced88190_84179f8d","line":21,"range":{"start_line":21,"start_character":44,"end_line":21,"end_character":45},"updated":"2021-03-23 07:16:31.000000000","message":"If this option is not specified, the driver will assume that a single filesystem is present in the Ceph cluster and it will attempt to use it.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":22,"context_line":"    - Several unit tests have been dropped including"},{"line_number":23,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"},{"line_number":24,"context_line":"        (extra spec deprecated and removed)"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"1e358ace_5a39e4b5","line":21,"range":{"start_line":21,"start_character":44,"end_line":21,"end_character":45},"in_reply_to":"ced88190_84179f8d","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":22,"context_line":"    - Several unit tests have been dropped including"},{"line_number":23,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"},{"line_number":24,"context_line":"        (extra spec deprecated and removed)"},{"line_number":25,"context_line":"        - test_connect_noevict (rados client doesn\u0027t have this option)"},{"line_number":26,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":27,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":28,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":29,"context_line":"      The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":30,"context_line":"      trash folder and purges the trash\u0027s contents"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"20965ea9_a4d6ff12","line":27,"range":{"start_line":22,"start_character":6,"end_line":27,"end_character":79},"updated":"2021-03-23 07:16:31.000000000","message":"Unit test updates needn\u0027t be called out in release notes","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    - The Ceph backend can now work with multiple filesystem clusters."},{"line_number":20,"context_line":"      The filesystem to be used by manila can be specified by the"},{"line_number":21,"context_line":"      driver option \u0027cephfs_filesystem_name\u0027."},{"line_number":22,"context_line":"    - Several unit tests have been dropped including"},{"line_number":23,"context_line":"        - test_create_data_isolated and test_delete_data_isolated"},{"line_number":24,"context_line":"        (extra spec deprecated and removed)"},{"line_number":25,"context_line":"        - test_connect_noevict (rados client doesn\u0027t have this option)"},{"line_number":26,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":27,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":28,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":29,"context_line":"      The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":30,"context_line":"      trash folder and purges the trash\u0027s contents"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"aa128f1d_8836239a","line":27,"range":{"start_line":22,"start_character":6,"end_line":27,"end_character":79},"in_reply_to":"20965ea9_a4d6ff12","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"726f0cc46a548bcb1a336c7306450f1f171c6503","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        - test_connect_noevict (rados client doesn\u0027t have this option)"},{"line_number":26,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":27,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":28,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":29,"context_line":"      The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":30,"context_line":"      trash folder and purges the trash\u0027s contents"},{"line_number":31,"context_line":"      (`rm -rf` of the backend CephFS subvolume/subtree) aysnchronously,"},{"line_number":32,"context_line":"      whereas the ceph_volume_client library moves the share\u0027s content"},{"line_number":33,"context_line":"      and purges the content synchronously."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"69601437_79d1605a","line":33,"range":{"start_line":28,"start_character":6,"end_line":33,"end_character":43},"updated":"2021-03-23 07:16:31.000000000","message":"This could be moved to \"features\" since it\u0027s an enhancement. Also, please add context in the beginning:\n\n  Deletion of shares offered by the CephFS driver (CEPHFS and NFS) is now faster.","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9e941b115023552ed8e5a1c1e8032a733b9b2559","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        - test_connect_noevict (rados client doesn\u0027t have this option)"},{"line_number":26,"context_line":"        - test_allow_access_rw (now covered in test_allow_access_rw_ro)"},{"line_number":27,"context_line":"        - test_module_missing (not checking rados presence with a flag anymore)"},{"line_number":28,"context_line":"    - The removal of a share will be quicker for the manila user."},{"line_number":29,"context_line":"      The ceph-mgr volumes module moves the share\u0027s content to a"},{"line_number":30,"context_line":"      trash folder and purges the trash\u0027s contents"},{"line_number":31,"context_line":"      (`rm -rf` of the backend CephFS subvolume/subtree) aysnchronously,"},{"line_number":32,"context_line":"      whereas the ceph_volume_client library moves the share\u0027s content"},{"line_number":33,"context_line":"      and purges the content synchronously."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"9b2a6e9f_a3326007","line":33,"range":{"start_line":28,"start_character":6,"end_line":33,"end_character":43},"in_reply_to":"69601437_79d1605a","updated":"2021-03-23 19:45:16.000000000","message":"Done","commit_id":"07d2fb9fbbd0c4a6145e23926eed10bdccc43b90"}]}
