)]}'
{"cinder/tests/unit/test_quobyte.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":944,"context_line":"                        \"true\")"},{"line_number":945,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":946,"context_line":"                        \"true\")"},{"line_number":947,"context_line":"        self.assertTrue(drv._execute_as_root is False)"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"    def test_set_nas_security_options_insecure(self):"},{"line_number":950,"context_line":"        drv \u003d self._driver"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_303c1193","line":947,"updated":"2015-10-27 14:24:33.000000000","message":"Why not just self.assertFalse(drv._execute_as_root)?","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"2e0724d8212fc33f3022836da6691b76deb94f94","unresolved":false,"context_lines":[{"line_number":944,"context_line":"                        \"true\")"},{"line_number":945,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":946,"context_line":"                        \"true\")"},{"line_number":947,"context_line":"        self.assertTrue(drv._execute_as_root is False)"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"    def test_set_nas_security_options_insecure(self):"},{"line_number":950,"context_line":"        drv \u003d self._driver"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_26637bb3","line":947,"in_reply_to":"1a26ad4f_303c1193","updated":"2015-10-27 15:10:40.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":957,"context_line":"                        \"false\")"},{"line_number":958,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":959,"context_line":"                        \"false\")"},{"line_number":960,"context_line":"        self.assertTrue(drv._execute_as_root is True)"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    def test_set_nas_security_options_explicitly_secure(self):"},{"line_number":963,"context_line":"        drv \u003d self._driver"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_105eb5e9","line":960,"updated":"2015-10-27 14:24:33.000000000","message":"Why not just self.assertTrue(drv._execute_as_root)?","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"2e0724d8212fc33f3022836da6691b76deb94f94","unresolved":false,"context_lines":[{"line_number":957,"context_line":"                        \"false\")"},{"line_number":958,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":959,"context_line":"                        \"false\")"},{"line_number":960,"context_line":"        self.assertTrue(drv._execute_as_root is True)"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    def test_set_nas_security_options_explicitly_secure(self):"},{"line_number":963,"context_line":"        drv \u003d self._driver"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_c65727c9","line":960,"in_reply_to":"1a26ad4f_105eb5e9","updated":"2015-10-27 15:10:40.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                        \"true\")"},{"line_number":971,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":972,"context_line":"                        \"true\")"},{"line_number":973,"context_line":"        self.assertTrue(drv._execute_as_root is False)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_b06fc191","line":973,"updated":"2015-10-27 14:24:33.000000000","message":"Same to comment on in line 947.","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"2e0724d8212fc33f3022836da6691b76deb94f94","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                        \"true\")"},{"line_number":971,"context_line":"        self.assertTrue(drv.configuration.nas_secure_file_permissions \u003d\u003d"},{"line_number":972,"context_line":"                        \"true\")"},{"line_number":973,"context_line":"        self.assertTrue(drv._execute_as_root is False)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_86728f7b","line":973,"in_reply_to":"1a26ad4f_b06fc191","updated":"2015-10-27 15:10:40.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"}],"cinder/volume/drivers/quobyte.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a874716c91b7017e3916656aae91e7623d5f90ad","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def do_setup(self, context):"},{"line_number":96,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":97,"context_line":"        self.set_nas_security_options(is_new_cinder_install\u003dFalse)"},{"line_number":98,"context_line":"        super(QuobyteDriver, self).do_setup(context)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        self.shares \u003d {}  # address : options"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_fbd88a1f","side":"PARENT","line":97,"updated":"2015-10-19 18:59:57.000000000","message":"Don\u0027t you still need to invoke set_nas_security_options?  It isn\u0027t invoked by the super class so far as I can see.","commit_id":"ec98796767d1d743a30767edb9a1f3bb7d4deba8"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"c0b28afba0f6d9d8faf9a75f483e7207dcdc5eed","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def do_setup(self, context):"},{"line_number":96,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":97,"context_line":"        self.set_nas_security_options(is_new_cinder_install\u003dFalse)"},{"line_number":98,"context_line":"        super(QuobyteDriver, self).do_setup(context)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        self.shares \u003d {}  # address : options"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_a8ae952b","side":"PARENT","line":97,"in_reply_to":"3a29b11f_fbd88a1f","updated":"2015-10-23 08:16:20.000000000","message":"oh my. From the presence of that method in the parent driver i\u0027d gathered it is already called but you\u0027re oh so right!!!\nfixing now and adding test...","commit_id":"ec98796767d1d743a30767edb9a1f3bb7d4deba8"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"          volumes are also referred to as shares."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    Version history:"},{"line_number":80,"context_line":"        1.1   - Adds optional insecure NAS settings"},{"line_number":81,"context_line":"        1.0   - Initial driver."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_d0dcbd48","line":80,"updated":"2015-10-27 14:24:33.000000000","message":"Usually we put the newly coming version below the old version, so please put this line below line 81.","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"8a5b717b99b8f0873f95f37614cea2c84fe480a2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"          volumes are also referred to as shares."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    Version history:"},{"line_number":80,"context_line":"        1.1   - Adds optional insecure NAS settings"},{"line_number":81,"context_line":"        1.0   - Initial driver."},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_26529b14","line":80,"in_reply_to":"1a26ad4f_d0dcbd48","updated":"2015-10-27 15:10:00.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":135,"context_line":"            \"\"\""},{"line_number":136,"context_line":"            LOG.debug(\"Mapping \u0027auto\u0027 value to \u0027true\u0027 for\""},{"line_number":137,"context_line":"                      \" nas_secure_file_operations\")"},{"line_number":138,"context_line":"            self.configuration.nas_secure_file_operations \u003d \u0027true\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if self.configuration.nas_secure_file_permissions \u003d\u003d \u0027auto\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_50c8ad74","line":137,"updated":"2015-10-27 14:24:33.000000000","message":"Add a \".\" at the EOL please.","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"8a5b717b99b8f0873f95f37614cea2c84fe480a2","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":135,"context_line":"            \"\"\""},{"line_number":136,"context_line":"            LOG.debug(\"Mapping \u0027auto\u0027 value to \u0027true\u0027 for\""},{"line_number":137,"context_line":"                      \" nas_secure_file_operations\")"},{"line_number":138,"context_line":"            self.configuration.nas_secure_file_operations \u003d \u0027true\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if self.configuration.nas_secure_file_permissions \u003d\u003d \u0027auto\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_e65b432d","line":137,"in_reply_to":"1a26ad4f_50c8ad74","updated":"2015-10-27 15:10:00.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"107aa8e46062723be778f0080ac537ad4579119e","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":144,"context_line":"            \"\"\""},{"line_number":145,"context_line":"            LOG.debug(\"Mapping \u0027auto\u0027 value to \u0027true\u0027 for\""},{"line_number":146,"context_line":"                      \" nas_secure_file_permissions\")"},{"line_number":147,"context_line":"            self.configuration.nas_secure_file_permissions \u003d \u0027true\u0027"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        if self.configuration.nas_secure_file_operations \u003d\u003d \u0027false\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_b0cb4172","line":146,"updated":"2015-10-27 14:24:33.000000000","message":"Add a \".\" at the EOL please.","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"8a5b717b99b8f0873f95f37614cea2c84fe480a2","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":144,"context_line":"            \"\"\""},{"line_number":145,"context_line":"            LOG.debug(\"Mapping \u0027auto\u0027 value to \u0027true\u0027 for\""},{"line_number":146,"context_line":"                      \" nas_secure_file_permissions\")"},{"line_number":147,"context_line":"            self.configuration.nas_secure_file_permissions \u003d \u0027true\u0027"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        if self.configuration.nas_secure_file_operations \u003d\u003d \u0027false\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_86412f3c","line":146,"in_reply_to":"1a26ad4f_b0cb4172","updated":"2015-10-27 15:10:00.000000000","message":"Done","commit_id":"92661a756e8bd5184c6c6822236660c5f15cc4ca"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"89895a671767d69c1dc56e256a5d1e9ec5ab2a5e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                  )"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if self.configuration.nas_secure_file_operations \u003d\u003d \u0027auto\u0027:"},{"line_number":132,"context_line":"            \"\"\"Note (kaisers): All previous Quobyte driver versions ran with"},{"line_number":133,"context_line":"            secure settings hardcoded to \u0027True\u0027. Therefore the default \u0027auto\u0027"},{"line_number":134,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":135,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_b63505f8","line":132,"updated":"2015-11-26 01:28:16.000000000","message":"nit: Better to use comment \"#\" here than docstring.  This also doesn\u0027t follow docstring guidelines.","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"182c179d39655088d71edf6c575c5d9495987c3e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                  )"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if self.configuration.nas_secure_file_operations \u003d\u003d \u0027auto\u0027:"},{"line_number":132,"context_line":"            \"\"\"Note (kaisers): All previous Quobyte driver versions ran with"},{"line_number":133,"context_line":"            secure settings hardcoded to \u0027True\u0027. Therefore the default \u0027auto\u0027"},{"line_number":134,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":135,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_742f8bf6","line":132,"in_reply_to":"9a8ffd7b_b63505f8","updated":"2015-11-26 07:54:37.000000000","message":"Thanks for the hint!","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"89895a671767d69c1dc56e256a5d1e9ec5ab2a5e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self.configuration.nas_secure_file_operations \u003d \u0027true\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if self.configuration.nas_secure_file_permissions \u003d\u003d \u0027auto\u0027:"},{"line_number":141,"context_line":"            \"\"\"Note (kaisers): All previous Quobyte driver versions ran with"},{"line_number":142,"context_line":"            secure settings hardcoded to \u0027True\u0027. Therefore the default \u0027auto\u0027"},{"line_number":143,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":144,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_f602ad0a","line":141,"updated":"2015-11-26 01:28:16.000000000","message":"Same","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"182c179d39655088d71edf6c575c5d9495987c3e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self.configuration.nas_secure_file_operations \u003d \u0027true\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if self.configuration.nas_secure_file_permissions \u003d\u003d \u0027auto\u0027:"},{"line_number":141,"context_line":"            \"\"\"Note (kaisers): All previous Quobyte driver versions ran with"},{"line_number":142,"context_line":"            secure settings hardcoded to \u0027True\u0027. Therefore the default \u0027auto\u0027"},{"line_number":143,"context_line":"            setting can safely be mapped to the same, secure, setting."},{"line_number":144,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_542cc701","line":141,"in_reply_to":"9a8ffd7b_f602ad0a","updated":"2015-11-26 07:54:37.000000000","message":"dito","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"b8361131a9125c3635e4e839b29c0cd0675babcd","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                        LOG.info(_LI(\u0027Fixing previous mount %s which was not\u0027"},{"line_number":430,"context_line":"                                     \u0027 unmounted correctly.\u0027), mount_path)"},{"line_number":431,"context_line":"                        self._execute(\u0027umount.quobyte\u0027, mount_path,"},{"line_number":432,"context_line":"                                      run_as_root\u003dself._execute_as_root)"},{"line_number":433,"context_line":"                    except processutils.ProcessExecutionError as exc:"},{"line_number":434,"context_line":"                        LOG.warning(_LW(\"Failed to unmount previous mount: \""},{"line_number":435,"context_line":"                                        \"%s\"), exc)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a26ad4f_1126ad68","line":432,"updated":"2015-11-04 10:40:17.000000000","message":"Will quobyte mount and unmount commands succeed if you don\u0027t run as root?  I ask because with NFS we have to run mount.nfs as root even when nas_secure_file_operations is \u0027true\u0027 and we are avoiding running as root as much as possible.  On most distributions plain mount.nfs (which just reports) can run unprivileged, but actual mounts and unmounts have to run as root.  According to https://review.openstack.org/#/c/239517/ even the simple reporting mount.nfs command has to run as root.\n\nSo I\u0027m just checking here.","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"21a022bfedeb8937b34353f0670a6eae3ec16c08","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                        LOG.info(_LI(\u0027Fixing previous mount %s which was not\u0027"},{"line_number":430,"context_line":"                                     \u0027 unmounted correctly.\u0027), mount_path)"},{"line_number":431,"context_line":"                        self._execute(\u0027umount.quobyte\u0027, mount_path,"},{"line_number":432,"context_line":"                                      run_as_root\u003dself._execute_as_root)"},{"line_number":433,"context_line":"                    except processutils.ProcessExecutionError as exc:"},{"line_number":434,"context_line":"                        LOG.warning(_LW(\"Failed to unmount previous mount: \""},{"line_number":435,"context_line":"                                        \"%s\"), exc)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_8b8813e9","line":432,"in_reply_to":"1a26ad4f_1126ad68","updated":"2015-11-04 11:42:37.000000000","message":"Yep, (u)mount.quobyte works in user space (using FUSE).\nNevertheless thanks for checking!","commit_id":"ba202f6a0c0d0d6112c71cc8811f87354813130c"}]}
