)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"46707cc1b2475e497f96f8eacf162e887cbddd06","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Implement disconnect_volume for RemoteFsConnector (NFS only)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We have to umount NFS volume on disconnect_volume call."},{"line_number":10,"context_line":"RemoteFsConnector is used only for Cinder Volume migartions now. Nova"},{"line_number":11,"context_line":"does not use it. So this change looks safe."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I408c97434bb0d3ad36f97e2442d9d74da110f081"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a57f1b5_3c7e37e5","line":10,"updated":"2016-02-10 21:15:28.000000000","message":"spelling nazi warning......\n\nmigrations","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"}],"os_brick/initiator/connector.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a2c7ae32cf1121c14e8ddc04cd2a3bbd12cab5a6","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"        :type device_info: dict"},{"line_number":1821,"context_line":"        \"\"\""},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":"        self._remotefsclient.umount(connection_properties, device_info)"},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":1826,"context_line":"        # TODO(walter-boring): is this possible?"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_000410be","line":1823,"updated":"2016-02-10 14:12:20.000000000","message":"Why are you unmounting on disconnect_volume?  An NFS mount may have many volumes on it, you can only unmount it if all of them are no longer in use.\n\nI don\u0027t think this does what the summary comment says with \"Disconnects a volume in a filesystem\".","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5d6841a7370165b97180db6c7df5666a4c54e7ff","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"        :type device_info: dict"},{"line_number":1821,"context_line":"        \"\"\""},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":"        self._remotefsclient.umount(connection_properties, device_info)"},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":1826,"context_line":"        # TODO(walter-boring): is this possible?"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_836ecac7","line":1823,"in_reply_to":"3a57f1b5_000410be","updated":"2016-02-10 14:26:59.000000000","message":"If I understand correct, we mount each volume for new mount point, e.g.:\n/path/to/mount_point_base/\u003cvol_id\u003e\nSo it should be safe to unmount on disconnect.\n\nI will fix a docstring in the next patch","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"d2827a1b35cbfbda57424708b311865c14ea7a8c","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"        :type device_info: dict"},{"line_number":1821,"context_line":"        \"\"\""},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":"        self._remotefsclient.umount(connection_properties, device_info)"},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":1826,"context_line":"        # TODO(walter-boring): is this possible?"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_8619e67b","line":1823,"in_reply_to":"3a57f1b5_0ed9a121","updated":"2016-02-10 19:33:04.000000000","message":"You\u0027re right, Eric. I\u0027ve just checked it with devstack","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f375c0a1dd08baaf33a598d5027636916985279d","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"        :type device_info: dict"},{"line_number":1821,"context_line":"        \"\"\""},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":"        self._remotefsclient.umount(connection_properties, device_info)"},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":1826,"context_line":"        # TODO(walter-boring): is this possible?"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_0ed9a121","line":1823,"in_reply_to":"3a57f1b5_836ecac7","updated":"2016-02-10 14:45:36.000000000","message":"But that isn\u0027t correct... we mount one NFS export and reuse it for many volumes.","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"026caac2d934c2a317dbab562994c3b583c9a67a","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"        :type device_info: dict"},{"line_number":1821,"context_line":"        \"\"\""},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":"        self._remotefsclient.umount(connection_properties, device_info)"},{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":1826,"context_line":"        # TODO(walter-boring): is this possible?"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_de5ebbe8","line":1823,"in_reply_to":"3a57f1b5_8619e67b","updated":"2016-02-10 22:34:42.000000000","message":"This is why Nova uses the method of \"try to unmount, but if unmount fails saying it\u0027s busy, just do nothing\".","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"}],"os_brick/remotefs/remotefs.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a2c7ae32cf1121c14e8ddc04cd2a3bbd12cab5a6","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                       % {\u0027sh\u0027: nfs_share,"},{"line_number":156,"context_line":"                                          \u0027error\u0027: mnt_errors})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _umount_nfs(self, nfs_share):"},{"line_number":159,"context_line":"        try:"},{"line_number":160,"context_line":"            self.execute(\u0027umount\u0027, nfs_share)"},{"line_number":161,"context_line":"        except putils.ProcessExecutionError as exc:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_60494431","line":158,"updated":"2016-02-10 14:12:20.000000000","message":"This may be a moot point given the other comment, but:\n\nI suspect you want to handle this the same way that Nova has unmounted NFS mounts for a long time, where it does not raise an error if the filesystem is still in use, leaving it mounted for an attempt to unmount it the next time around.","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5d6841a7370165b97180db6c7df5666a4c54e7ff","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                       % {\u0027sh\u0027: nfs_share,"},{"line_number":156,"context_line":"                                          \u0027error\u0027: mnt_errors})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _umount_nfs(self, nfs_share):"},{"line_number":159,"context_line":"        try:"},{"line_number":160,"context_line":"            self.execute(\u0027umount\u0027, nfs_share)"},{"line_number":161,"context_line":"        except putils.ProcessExecutionError as exc:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_c3e9221c","line":158,"in_reply_to":"3a57f1b5_60494431","updated":"2016-02-10 14:26:59.000000000","message":"Correct, but I don\u0027t want to re-try if something went wrong","commit_id":"07ec31d7d0684820a14b189f192febf206780b47"}]}
