)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fdcef98a9bc7886aa2558e3c6a9132a97bad43ce","unresolved":false,"context_lines":[{"line_number":10,"context_line":"plus unit tests and release note."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Corresponding ceph_volume_client PR: \\"},{"line_number":13,"context_line":"https://github.com/https://github.com/ceph/ceph/pull/24839"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iad78b8cc25c34d3675cd38ce9c757ad0e411b613"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_ef163aa2","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":19},"updated":"2018-10-30 19:52:47.000000000","message":"remove","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f3c9264e24b3a0687e7388996ef3180b2b941dd9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"plus unit tests and release note."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Corresponding ceph_volume_client PR: \\"},{"line_number":13,"context_line":"https://github.com/https://github.com/ceph/ceph/pull/24839"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iad78b8cc25c34d3675cd38ce9c757ad0e411b613"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_05bef500","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":19},"in_reply_to":"3f79a3b5_ef163aa2","updated":"2018-10-30 21:16:38.000000000","message":"ack :)  ty","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"}],"manila/share/drivers/cephfs/driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fdcef98a9bc7886aa2558e3c6a9132a97bad43ce","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u00270o755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups in Octal \""},{"line_number":96,"context_line":"                    \"notation.\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_cf149e45","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":29},"updated":"2018-10-30 19:52:47.000000000","message":"suggestion - can we do the octal translation ourselves, in code?","commit_id":"7c2e2419b08ff95280e531c4ddaf6162aa1ab7b6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fdcef98a9bc7886aa2558e3c6a9132a97bad43ce","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u00270o755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups in Octal \""},{"line_number":96,"context_line":"                    \"notation.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_4fc96e22","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":29},"updated":"2018-10-30 19:52:47.000000000","message":"can we do this octal translation ourselves?","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"de68e30c2a2e5311a4538ae66746e5df9f0f0dd1","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u00270o755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups in Octal \""},{"line_number":96,"context_line":"                    \"notation.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e9bdd3b2","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":29},"in_reply_to":"3f79a3b5_09b5af19","updated":"2018-10-31 00:11:45.000000000","message":"sorry, ignore last statement, it isn\u0027t necessary to format the string.","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f3c9264e24b3a0687e7388996ef3180b2b941dd9","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u00270o755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups in Octal \""},{"line_number":96,"context_line":"                    \"notation.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_c5e8fde1","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":29},"in_reply_to":"3f79a3b5_4fc96e22","updated":"2018-10-30 21:16:38.000000000","message":"Do you mean just set default o \u0027755\u0027 or \u00270755\u0027?  These are already octal notation, equal to 493 base 10 after conversion to int.  I was using the py2/py3 equivalent notation.  I suppose that might not be colloquial so just using \u0027755\u0027 would be better in the default value?\n\nWe do convert the string to base 8 when putting its value into self._cephfs_volume_mode so the \"do the translation\" would already happen ourselves iiuc.","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e6c65a884de1eaee29e1e2f58d3f7a4812b41fb8","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u00270o755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups in Octal \""},{"line_number":96,"context_line":"                    \"notation.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_09b5af19","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":29},"in_reply_to":"3f79a3b5_c5e8fde1","updated":"2018-10-31 00:11:01.000000000","message":"Yep, 755, and suggest in the help text that this is akin to 3-digit numeric notation of unix permissions, ex: 755, 775 etc.\n\n \n\nWe can then do the octal representation with: \u00270o{perms}\u0027.format(cephfs_volume_mode) before invoking the client..","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e6c65a884de1eaee29e1e2f58d3f7a4812b41fb8","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.protocol_helper.init_helper()"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        self._cephfs_volume_mode \u003d int("},{"line_number":139,"context_line":"            self.configuration.cephfs_volume_mode, 8)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _update_share_stats(self):"},{"line_number":142,"context_line":"        stats \u003d self.volume_client.rados.get_cluster_stats()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_49408705","line":139,"range":{"start_line":138,"start_character":35,"end_line":139,"end_character":53},"updated":"2018-10-31 00:11:01.000000000","message":"Curious if Cephfs doesn\u0027t care about us sending a decimal number. would oct(mode) would be necessary in case they make some assumptions?\n\npy2:\n\u003e\u003e\u003e oct(int(\u0027777\u0027, 8))\n\u00270777\u0027\n\npy3:\n\u003e\u003e\u003e oct(int(\u0027777\u0027, 8))\n\u00270o777\u0027","commit_id":"3ba7cd51a71fe77c15979f044b30a3bfe4d83ddc"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"cea31e8cb8489abad20d49d0d3de82de814dc96f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u0027755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups expressed in \""},{"line_number":96,"context_line":"                    \"Octal as with linux \u0027chmod\u0027 or \u0027umask\u0027 commands.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_affc690d","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":27},"updated":"2018-11-04 10:07:26.000000000","message":"IMO this should be set as a class/module constant.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eca09b70e3af9fb766aa32b947d625114a816de4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \"Ganesha server host. This is not required if \""},{"line_number":91,"context_line":"                    \"\u0027cephfs_ganesha_path_to_private_key\u0027 is configured.\"),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027cephfs_volume_mode\u0027,"},{"line_number":93,"context_line":"               default\u003d\u0027755\u0027,"},{"line_number":94,"context_line":"               help\u003d\"The read/write/execute permissions mode for CephFS \""},{"line_number":95,"context_line":"                    \"volumes, snapshots, and snapshot groups expressed in \""},{"line_number":96,"context_line":"                    \"Octal as with linux \u0027chmod\u0027 or \u0027umask\u0027 commands.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1340c35d","line":93,"range":{"start_line":93,"start_character":24,"end_line":93,"end_character":27},"in_reply_to":"3f79a3b5_affc690d","updated":"2018-11-26 21:49:12.000000000","message":"Done.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"cea31e8cb8489abad20d49d0d3de82de814dc96f","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.configuration.append_config_values(cephfs_opts)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self._cephfs_volume_mode \u003d int("},{"line_number":124,"context_line":"            self.configuration.cephfs_volume_mode, 8)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def do_setup(self, context):"},{"line_number":127,"context_line":"        if self.configuration.cephfs_protocol_helper_type.upper() \u003d\u003d \"CEPHFS\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_0f0ebd3c","line":124,"range":{"start_line":123,"start_character":8,"end_line":124,"end_character":53},"updated":"2018-11-04 10:07:26.000000000","message":"In a case where a user inputs an invalid volume mode (e.g. \"bla\"), this fails with ValueError. IMO, this should be protected by a try-except clause, catching a ValueError, raising one of the Manila exceptions with a more straightforward message (e.g. BadConfigurationException with \"Invalid CephFS volume mode \u0027\u003cvolume-mode\u003e\u0027\").","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eca09b70e3af9fb766aa32b947d625114a816de4","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.configuration.append_config_values(cephfs_opts)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self._cephfs_volume_mode \u003d int("},{"line_number":124,"context_line":"            self.configuration.cephfs_volume_mode, 8)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def do_setup(self, context):"},{"line_number":127,"context_line":"        if self.configuration.cephfs_protocol_helper_type.upper() \u003d\u003d \"CEPHFS\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_f69bb5c3","line":124,"range":{"start_line":123,"start_character":8,"end_line":124,"end_character":53},"in_reply_to":"3f79a3b5_0f0ebd3c","updated":"2018-11-26 21:49:12.000000000","message":"Good point.  I\u0027ll do the try-catch and add a test for the exception.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"}],"manila/tests/share/drivers/cephfs/test_driver.py":[{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"cea31e8cb8489abad20d49d0d3de82de814dc96f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self._driver.protocol_helper.init_helper.assert_called_once_with()"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.assertEqual(0o755, self._driver._cephfs_volume_mode)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_share(self):"},{"line_number":135,"context_line":"        cephfs_volume \u003d {\"mount_path\": \"/foo/bar\"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5af9d119","line":132,"range":{"start_line":132,"start_character":25,"end_line":132,"end_character":30},"updated":"2018-11-04 10:07:26.000000000","message":"IMO this should be set as a module constant. Same for the next appearances of this value.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eca09b70e3af9fb766aa32b947d625114a816de4","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self._driver.protocol_helper.init_helper.assert_called_once_with()"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.assertEqual(0o755, self._driver._cephfs_volume_mode)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_share(self):"},{"line_number":135,"context_line":"        cephfs_volume \u003d {\"mount_path\": \"/foo/bar\"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_731817cd","line":132,"range":{"start_line":132,"start_character":25,"end_line":132,"end_character":30},"in_reply_to":"3f79a3b5_5af9d119","updated":"2018-11-26 21:49:12.000000000","message":"Makes sense, will do.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"}],"releasenotes/notes/cephfs-set-mode-b7fb3ec51300c220.yaml":[{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"cea31e8cb8489abad20d49d0d3de82de814dc96f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Shares backed by CephFS no longer have hard-coded mode 755.  Use"},{"line_number":5,"context_line":"    the ``cephfs_volume_mode`` coonfiguration option to set another"},{"line_number":6,"context_line":"    mode, such as 775 when using manila dynamic external storage"},{"line_number":7,"context_line":"    provider with OpenShift.  The default value remains 755 for"},{"line_number":8,"context_line":"    backwards compatibility."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_1a03590e","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":34},"updated":"2018-11-04 10:07:26.000000000","message":"double o\u0027.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eca09b70e3af9fb766aa32b947d625114a816de4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Shares backed by CephFS no longer have hard-coded mode 755.  Use"},{"line_number":5,"context_line":"    the ``cephfs_volume_mode`` coonfiguration option to set another"},{"line_number":6,"context_line":"    mode, such as 775 when using manila dynamic external storage"},{"line_number":7,"context_line":"    provider with OpenShift.  The default value remains 755 for"},{"line_number":8,"context_line":"    backwards compatibility."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_b3c6af49","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":34},"in_reply_to":"3f79a3b5_1a03590e","updated":"2018-11-26 21:49:12.000000000","message":"Thanks, fixed.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"cea31e8cb8489abad20d49d0d3de82de814dc96f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Shares backed by CephFS no longer have hard-coded mode 755.  Use"},{"line_number":5,"context_line":"    the ``cephfs_volume_mode`` coonfiguration option to set another"},{"line_number":6,"context_line":"    mode, such as 775 when using manila dynamic external storage"},{"line_number":7,"context_line":"    provider with OpenShift.  The default value remains 755 for"},{"line_number":8,"context_line":"    backwards compatibility."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_da0c013c","line":6,"range":{"start_line":5,"start_character":53,"end_line":6,"end_character":8},"updated":"2018-11-04 10:07:26.000000000","message":"As far as I can see, the tests do not test the feature of setting a volume mode value other than the default, maybe we should add such a test?","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eca09b70e3af9fb766aa32b947d625114a816de4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Shares backed by CephFS no longer have hard-coded mode 755.  Use"},{"line_number":5,"context_line":"    the ``cephfs_volume_mode`` coonfiguration option to set another"},{"line_number":6,"context_line":"    mode, such as 775 when using manila dynamic external storage"},{"line_number":7,"context_line":"    provider with OpenShift.  The default value remains 755 for"},{"line_number":8,"context_line":"    backwards compatibility."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_d3c1eb31","line":6,"range":{"start_line":5,"start_character":53,"end_line":6,"end_character":8},"in_reply_to":"3f79a3b5_da0c013c","updated":"2018-11-26 21:49:12.000000000","message":"Agree, coming up.","commit_id":"6be76c2ceb88b15847e4286c84827b2bc3706750"}]}
