)]}'
{"cinder/tests/test_glusterfs.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f0b4d6ec36251aef4916808b3f3d29c493d34133","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        mox.VerifyAll()"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def test_ensure_share_mounted(self):"},{"line_number":311,"context_line":"        \"\"\"_ensure_share_mounted simple use case.\"\"\""},{"line_number":312,"context_line":"        mox \u003d self._mox"},{"line_number":313,"context_line":"        drv \u003d self._driver"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu7A%3D","line":310,"updated":"2013-11-20 23:12:48.000000000","message":"I think we also need a bad path test case.","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f0b4d6ec36251aef4916808b3f3d29c493d34133","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        utils.get_file_gid(self.TEST_MNT_POINT).AndReturn(333333)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        utils.get_file_mode(self.TEST_MNT_POINT).AndReturn(0o0777)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        drv._ensure_share_writable(self.TEST_MNT_POINT)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu8A%3D","line":330,"updated":"2013-11-20 23:12:48.000000000","message":"Do you mean to have an \u0027o\u0027 here?","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"0d811b9e25718a6e7ff797ff89aa159d84bdb393","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        utils.get_file_gid(self.TEST_MNT_POINT).AndReturn(333333)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        utils.get_file_mode(self.TEST_MNT_POINT).AndReturn(0o0777)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        drv._ensure_share_writable(self.TEST_MNT_POINT)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bp4s%3D","line":330,"in_reply_to":"AAAATn%2F%2BqCY%3D","updated":"2013-11-21 23:29:51.000000000","message":"Ok,  Thanks for the info.\n\nAre you going to change this to 0o777 then?","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4adc05c248f1bf0f594ca2045012339d8c1d0bb4","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        utils.get_file_gid(self.TEST_MNT_POINT).AndReturn(333333)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        utils.get_file_mode(self.TEST_MNT_POINT).AndReturn(0o0777)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        drv._ensure_share_writable(self.TEST_MNT_POINT)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BqCY%3D","line":330,"in_reply_to":"AAAATn%2F%2Bu8A%3D","updated":"2013-11-21 22:56:19.000000000","message":"This is actually a test now:  (it surprised me too)\n\n\ncinder/tests/test_glusterfs.py:330:9: H232  Python 3.x incompatible octal 777 should be written as 0o777","commit_id":"316f518567c1b00921dd07ef4301134664466698"}],"cinder/tests/test_utils.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f0b4d6ec36251aef4916808b3f3d29c493d34133","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        def fake_stat(path):"},{"line_number":526,"context_line":"            if path \u003d\u003d test_file:"},{"line_number":527,"context_line":"                class stat_result:"},{"line_number":528,"context_line":"                    st_mode \u003d 0o777"},{"line_number":529,"context_line":"                    st_gid \u003d 33333"},{"line_number":530,"context_line":"                    pass"},{"line_number":531,"context_line":"                return stat_result"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu60%3D","line":528,"updated":"2013-11-20 23:12:48.000000000","message":"Here you have \u0027o\u0027 again.  Is that on purpose.  Should it be 0o0777 then to be consistent with the other test?","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4adc05c248f1bf0f594ca2045012339d8c1d0bb4","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        def fake_stat(path):"},{"line_number":526,"context_line":"            if path \u003d\u003d test_file:"},{"line_number":527,"context_line":"                class stat_result:"},{"line_number":528,"context_line":"                    st_mode \u003d 0o777"},{"line_number":529,"context_line":"                    st_gid \u003d 33333"},{"line_number":530,"context_line":"                    pass"},{"line_number":531,"context_line":"                return stat_result"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BqB4%3D","line":528,"in_reply_to":"AAAATn%2F%2Bu60%3D","updated":"2013-11-21 22:56:19.000000000","message":"I should probably change the other one to 0o777.","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"a431c29f457e1eca7fa466816b4af551c69dbb67","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        self.mox.VerifyAll()"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _make_fake_stat(self, test_file, orig_os_stat):"},{"line_number":517,"context_line":"        \"\"\"Generate a function that will return a particular"},{"line_number":518,"context_line":"           stat object for a given file."},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"           :param: test_file: file to spoof stat() for"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BhwA%3D","line":517,"updated":"2013-11-25 04:08:57.000000000","message":"fix the summary line for this doc string. http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"29f914bd0f092e889bc512518001c87e71ce2991"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"a431c29f457e1eca7fa466816b4af551c69dbb67","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                class stat_result:"},{"line_number":528,"context_line":"                    st_mode \u003d 0o777"},{"line_number":529,"context_line":"                    st_gid \u003d 33333"},{"line_number":530,"context_line":"                    pass"},{"line_number":531,"context_line":"                return stat_result"},{"line_number":532,"context_line":"            else:"},{"line_number":533,"context_line":"                return orig_os_stat(path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bhvw%3D","line":530,"updated":"2013-11-25 04:08:57.000000000","message":"no reason for pass here.","commit_id":"29f914bd0f092e889bc512518001c87e71ce2991"}],"cinder/volume/drivers/glusterfs.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f0b4d6ec36251aef4916808b3f3d29c493d34133","unresolved":false,"context_lines":[{"line_number":987,"context_line":"            tempfile.NamedTemporaryFile(prefix\u003dprefix, dir\u003dpath)"},{"line_number":988,"context_line":"        except OSError:"},{"line_number":989,"context_line":"            msg \u003d _(\u0027GlusterFS share at %(dir)s is not writable by the \u0027"},{"line_number":990,"context_line":"                    \u0027Cinder user. Snapshot operations will not be \u0027"},{"line_number":991,"context_line":"                    \u0027supported.\u0027) % {\u0027dir\u0027: path}"},{"line_number":992,"context_line":"            raise exception.GlusterfsException(msg)"},{"line_number":993,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu8I%3D","line":990,"updated":"2013-11-20 23:12:48.000000000","message":"I don\u0027t think \u0027Cinder\u0027 should be capitalized here as it is the \u0027cinder\u0027 user that doesn\u0027t have access.","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"0d811b9e25718a6e7ff797ff89aa159d84bdb393","unresolved":false,"context_lines":[{"line_number":987,"context_line":"            tempfile.NamedTemporaryFile(prefix\u003dprefix, dir\u003dpath)"},{"line_number":988,"context_line":"        except OSError:"},{"line_number":989,"context_line":"            msg \u003d _(\u0027GlusterFS share at %(dir)s is not writable by the \u0027"},{"line_number":990,"context_line":"                    \u0027Cinder user. Snapshot operations will not be \u0027"},{"line_number":991,"context_line":"                    \u0027supported.\u0027) % {\u0027dir\u0027: path}"},{"line_number":992,"context_line":"            raise exception.GlusterfsException(msg)"},{"line_number":993,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bp38%3D","line":990,"in_reply_to":"AAAATn%2F%2BqB8%3D","updated":"2013-11-21 23:29:51.000000000","message":"Oh yes, it doesn\u0027t have to be \u0027cinder\u0027 does it.  Perhaps this is better:  msg \u003d _(\u0027GlusterFS share at %(dir)s is not writable by the \u0027\n             \u0027configured Cinder user. Snapshot operations will not be \u0027","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4adc05c248f1bf0f594ca2045012339d8c1d0bb4","unresolved":false,"context_lines":[{"line_number":987,"context_line":"            tempfile.NamedTemporaryFile(prefix\u003dprefix, dir\u003dpath)"},{"line_number":988,"context_line":"        except OSError:"},{"line_number":989,"context_line":"            msg \u003d _(\u0027GlusterFS share at %(dir)s is not writable by the \u0027"},{"line_number":990,"context_line":"                    \u0027Cinder user. Snapshot operations will not be \u0027"},{"line_number":991,"context_line":"                    \u0027supported.\u0027) % {\u0027dir\u0027: path}"},{"line_number":992,"context_line":"            raise exception.GlusterfsException(msg)"},{"line_number":993,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BqB8%3D","line":990,"in_reply_to":"AAAATn%2F%2Bu8I%3D","updated":"2013-11-21 22:56:19.000000000","message":"Ehhh well... The name of the user is up to the deployer, I was aiming more for \"the user the Cinder service is running as\".\n\nMaybe I should just change it to \"writable by Cinder\"?","commit_id":"316f518567c1b00921dd07ef4301134664466698"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8a61572f66468b67ca6d70c87cda2fa329c03d99","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                raise exception.GlusterfsException("},{"line_number":105,"context_line":"                    _(\u0027mount.glusterfs is not installed\u0027))"},{"line_number":106,"context_line":"            else:"},{"line_number":107,"context_line":"                raise"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_for_setup_error(self):"},{"line_number":110,"context_line":"        \"\"\"Just to override parent behavior.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bc9U%3D","line":107,"updated":"2013-11-25 22:02:05.000000000","message":"Need to call ensure_shares_mounted here to trigger this to occur at driver start-up time.","commit_id":"29f914bd0f092e889bc512518001c87e71ce2991"}]}
