)]}'
{"manila/share/driver.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"8f415e63390bc26ce313854c24010ac8f4e631f2","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @property"},{"line_number":247,"context_line":"    def initialized(self):"},{"line_number":248,"context_line":"        if not hasattr(self, \"_initialized\"):"},{"line_number":249,"context_line":"            self._initialized \u003d False"},{"line_number":250,"context_line":"        return self._initialized"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_4ae243a1","line":248,"updated":"2015-10-05 15:27:07.000000000","message":"Can you just add the variable \"self._initialized \u003d False\" to the __init__ method? Like we already do i.e. for \"self._stats \u003d {}\" .And then just return here self._initialized . That way it\u0027s imo easier to understand the code. Also a comment about the variable usage would be useful.","commit_id":"7abc9b909991b845edafeab88152a120bb8ae9d9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2bea0b2be8c8a2cafd3ee6c0685e1442d9c1f449","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @property"},{"line_number":247,"context_line":"    def initialized(self):"},{"line_number":248,"context_line":"        if not hasattr(self, \"_initialized\"):"},{"line_number":249,"context_line":"            self._initialized \u003d False"},{"line_number":250,"context_line":"        return self._initialized"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_f07300b3","line":248,"in_reply_to":"7a2fa921_4ae243a1","updated":"2015-10-05 15:52:42.000000000","message":"In case of \"_stats\" only driver changes it. In case of \"_initialized\" Manager sets info. In that case interface is provided. So, we will be able to change implementation of interface as we want, not changing manger that talks to interface.","commit_id":"7abc9b909991b845edafeab88152a120bb8ae9d9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"906dcdfc3f249b67183d3267e586c623f091e29a","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @property"},{"line_number":247,"context_line":"    def initialized(self):"},{"line_number":248,"context_line":"        if not hasattr(self, \"_initialized\"):"},{"line_number":249,"context_line":"            self._initialized \u003d False"},{"line_number":250,"context_line":"        return self._initialized"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_08d4c5e9","line":248,"in_reply_to":"7a2fa921_f07300b3","updated":"2015-10-08 10:55:13.000000000","message":"Added \"self.initialized\". As public, because it is used out of driver.","commit_id":"7abc9b909991b845edafeab88152a120bb8ae9d9"}],"manila/share/manager.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ccb5ea0df3112d3a668487410c728d5e917e7859","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                        \"host\": self.host,"},{"line_number":219,"context_line":"                }"},{"line_number":220,"context_line":"            )"},{"line_number":221,"context_line":"            LOG.exception(e)"},{"line_number":222,"context_line":"            self.driver.initialized \u003d False"},{"line_number":223,"context_line":"            # we don\u0027t want to continue since we failed"},{"line_number":224,"context_line":"            # to initialize the driver correctly."}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_ce77da9d","line":221,"updated":"2015-10-05 12:37:23.000000000","message":"You can merge the 2 logs call:\n\n  LOG.exception(_LE(..))\n\nLOG.exception will log at \"error\" level and append the stack trace.","commit_id":"b9d1d8308011d4587554dec6ff122cc353490e54"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e334effbce10845f7be131b6c361ee3624a38985","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                        \"host\": self.host,"},{"line_number":219,"context_line":"                }"},{"line_number":220,"context_line":"            )"},{"line_number":221,"context_line":"            LOG.exception(e)"},{"line_number":222,"context_line":"            self.driver.initialized \u003d False"},{"line_number":223,"context_line":"            # we don\u0027t want to continue since we failed"},{"line_number":224,"context_line":"            # to initialize the driver correctly."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a2fa921_5fa3e79e","line":221,"in_reply_to":"9a1a9d01_ce77da9d","updated":"2015-10-05 15:06:30.000000000","message":"Done","commit_id":"b9d1d8308011d4587554dec6ff122cc353490e54"}],"manila/tests/share/test_manager.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ccb5ea0df3112d3a668487410c728d5e917e7859","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        self.share_manager.init_host()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        self.assertTrue(manager.LOG.exception.called)"},{"line_number":185,"context_line":"        self.assertTrue(manager.LOG.error.called)"},{"line_number":186,"context_line":"        self.assertFalse(self.share_manager.driver.initialized)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_0e5152d8","line":184,"updated":"2015-10-05 12:37:23.000000000","message":"The previous version of the test asserted that the class name was printed in the log. the class name is a useful information to know which driver failed (in case of multi backend)","commit_id":"b9d1d8308011d4587554dec6ff122cc353490e54"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e334effbce10845f7be131b6c361ee3624a38985","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        self.share_manager.init_host()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        self.assertTrue(manager.LOG.exception.called)"},{"line_number":185,"context_line":"        self.assertTrue(manager.LOG.error.called)"},{"line_number":186,"context_line":"        self.assertFalse(self.share_manager.driver.initialized)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a2fa921_1fc48f3e","line":184,"in_reply_to":"9a1a9d01_0e5152d8","updated":"2015-10-05 15:06:30.000000000","message":"Done","commit_id":"b9d1d8308011d4587554dec6ff122cc353490e54"}]}
