)]}'
{"nova/db/api.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"cfee825c32e3f69a4ff9cacfda0ae712fb07753f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"IMPL \u003d db_api.DBAPI(CONF.database.backend, backend_mapping\u003d_BACKEND_MAPPING,"},{"line_number":70,"context_line":"                    lazy\u003dTrue)"},{"line_number":71,"context_line":"if CONF.database.use_tpool:"},{"line_number":72,"context_line":"    IMPL \u003d tpool.Proxy(IMPL)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAWH%2F%2F7K0%3D","line":72,"updated":"2014-03-12 22:08:12.000000000","message":"There\u0027s one thing that concerns me about this.  Because this option is checked at module import time, it\u0027s possible that this \u0027if\u0027 condition might be checked before the config file is read.  (This appears to be possible in the dhcp bridge and nova-manage, judging by the imports there, and my guess is that an analysis of the import graph would show that it would always be the case.)  That means you\u0027ll always get the default (False), and thus not be able to turn the option on in order to test this functionality.","commit_id":"06df6a12b8b6327f835f73f9a78070224c19f111"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"fadfa2b3681501c70e120f86bd1269c57f336bf0","unresolved":false,"context_lines":[{"line_number":69,"context_line":"IMPL \u003d db_api.DBAPI(CONF.database.backend, backend_mapping\u003d_BACKEND_MAPPING,"},{"line_number":70,"context_line":"                    lazy\u003dTrue)"},{"line_number":71,"context_line":"if CONF.database.use_tpool:"},{"line_number":72,"context_line":"    IMPL \u003d tpool.Proxy(IMPL)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAWH%2F%2FyGY%3D","line":72,"in_reply_to":"AAAAWH%2F%2F7K0%3D","updated":"2014-03-13 20:46:40.000000000","message":"Right. There was a reason the code was the way it was... and now you\u0027ve gone and ripped this out of oslo. It was a decent amount of code to be shared between projects, so that\u0027s why I put it in oslo in the first place.","commit_id":"06df6a12b8b6327f835f73f9a78070224c19f111"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"4d09eeb7e56241483697fd4644c61dcc4c0f4791","unresolved":false,"context_lines":[{"line_number":69,"context_line":"IMPL \u003d db_api.DBAPI(CONF.database.backend, backend_mapping\u003d_BACKEND_MAPPING,"},{"line_number":70,"context_line":"                    lazy\u003dTrue)"},{"line_number":71,"context_line":"if CONF.database.use_tpool:"},{"line_number":72,"context_line":"    IMPL \u003d tpool.Proxy(IMPL)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAWH%2F%2Fsqc%3D","line":72,"in_reply_to":"AAAAWH%2F%2FyGY%3D","updated":"2014-03-14 12:32:59.000000000","message":"Fixed time, for option check","commit_id":"06df6a12b8b6327f835f73f9a78070224c19f111"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"8cdac106bb1d8fa2a98a167447f9741fc1047174","unresolved":false,"context_lines":[{"line_number":69,"context_line":"class NovaDBAPI(db_api.DBAPI):"},{"line_number":70,"context_line":"    \"\"\"Initialize the chosen DB API backend with tpool.\"\"\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.is_tpool_wrapped \u003d False"},{"line_number":75,"context_line":"        if not kwargs.get(\u0027lazy\u0027, False):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FoBA%3D","line":72,"updated":"2014-03-14 22:22:46.000000000","message":"I\u0027d suggest to just use the superclass __init__() here","commit_id":"08689cfe6ded0406cf2206abc5659660e1f31b23"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"8cdac106bb1d8fa2a98a167447f9741fc1047174","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _wrap_tpool(self):"},{"line_number":81,"context_line":"        if not self.is_tpool_wrapped and CONF.database.use_tpool:"},{"line_number":82,"context_line":"            self \u003d tpool.Proxy(self)"},{"line_number":83,"context_line":"            self.is_tpool_wrapped \u003d True"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def __getattr__(self, key):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FoB0%3D","line":82,"updated":"2014-03-14 22:22:46.000000000","message":"you must have meant to do something else here :)\n\nself._proxy \u003d tool.Proxy(self)?","commit_id":"08689cfe6ded0406cf2206abc5659660e1f31b23"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4cef5567d60b40a0d501642c9fe3f80ebd56b8fa","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def _wrap_tpool(self):"},{"line_number":81,"context_line":"        if not self.is_tpool_wrapped and CONF.database.use_tpool:"},{"line_number":82,"context_line":"            self \u003d tpool.Proxy(self)"},{"line_number":83,"context_line":"            self.is_tpool_wrapped \u003d True"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def __getattr__(self, key):"},{"line_number":86,"context_line":"        self._wrap_tpool()"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2Fq2I%3D","line":83,"updated":"2014-03-14 15:38:33.000000000","message":"So, this is a no-op; self is a parameter, meaning its scope is the method.","commit_id":"08689cfe6ded0406cf2206abc5659660e1f31b23"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"8cdac106bb1d8fa2a98a167447f9741fc1047174","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self.is_tpool_wrapped \u003d True"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def __getattr__(self, key):"},{"line_number":86,"context_line":"        self._wrap_tpool()"},{"line_number":87,"context_line":"        return super(NovaDBAPI, self).__getattr__(key)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FoAg%3D","line":86,"updated":"2014-03-14 22:22:46.000000000","message":"... create tool.Proxy() instance here on the first call of __getattr__()","commit_id":"08689cfe6ded0406cf2206abc5659660e1f31b23"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"a44f03c2a886af422fcdb3f63eeb9c9a60dd753d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if self._proxy is None:"},{"line_number":84,"context_line":"            self._proxy \u003d tpool.Proxy(self._db_api)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        return getattr(self._proxy, key)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"IMPL \u003d NovaDBAPI()"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAXH%2F%2Fn64%3D","line":86,"updated":"2014-04-18 18:23:01.000000000","message":"I think this whole thing may be better as this:\n\nhttp://paste.openstack.org/show/76301/\n\nThoughts?  The version in the paste eliminates 1 \u0027if\u0027 check from getattr(). It also doesn\u0027t need \u0027lazy\u0027 when instantiating oslo DB API, since it is already instantiating it lazily.","commit_id":"0d38c828383bc848495ee63d8e8ddcc5b89d4e0e"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"92fbc7cafc6946a3812d989052d3babcf48d4564","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if self._proxy is None:"},{"line_number":84,"context_line":"            self._proxy \u003d tpool.Proxy(self._db_api)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        return getattr(self._proxy, key)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"IMPL \u003d NovaDBAPI()"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAXH%2F%2FWM8%3D","line":86,"in_reply_to":"AAAAXH%2F%2Fn64%3D","updated":"2014-04-22 11:57:37.000000000","message":"looks good","commit_id":"0d38c828383bc848495ee63d8e8ddcc5b89d4e0e"}]}
