)]}'
{"novaclient/client.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d14e8a50322623927cc423746c1897619541bf88","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # if service name is None then use service_type for logging"},{"line_number":343,"context_line":"        service \u003d self.service_name or self.service_type"},{"line_number":344,"context_line":"        _log_request_id(self._logger, resp, service)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def open_session(self):"},{"line_number":347,"context_line":"        if not self._connection_pool:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_2b0362b9","line":344,"updated":"2016-06-01 15:56:25.000000000","message":"I have to point out that the request ID would already be in the debug-level message from the code on line 337, which happens to log all headers.","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"70db7300c29e672e26152f6ea5fd504493983ee1","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # if service name is None then use service_type for logging"},{"line_number":343,"context_line":"        service \u003d self.service_name or self.service_type"},{"line_number":344,"context_line":"        _log_request_id(self._logger, resp, service)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def open_session(self):"},{"line_number":347,"context_line":"        if not self._connection_pool:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_e7d3185e","line":344,"in_reply_to":"9abb7d3a_2b0362b9","updated":"2016-06-02 13:05:09.000000000","message":"Yes.\nBut it is too many output.\nIt should be narrowed down.","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a4c35ccd5597c206cd3caffd79d8d313e9cd4baa","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # if service name is None then use service_type for logging"},{"line_number":343,"context_line":"        service \u003d self.service_name or self.service_type"},{"line_number":344,"context_line":"        _log_request_id(self._logger, resp, service)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def open_session(self):"},{"line_number":347,"context_line":"        if not self._connection_pool:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_a353bb6b","line":344,"in_reply_to":"9abb7d3a_e7d3185e","updated":"2016-06-02 15:10:04.000000000","message":"Fair enough :)","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d14e8a50322623927cc423746c1897619541bf88","unresolved":false,"context_lines":[{"line_number":729,"context_line":"    else:"},{"line_number":730,"context_line":"        # FIXME(jamielennox): username and password are now optional. Need"},{"line_number":731,"context_line":"        # to test that they were provided in this mode."},{"line_number":732,"context_line":"        logger \u003d kwargs.get(\u0027logger\u0027)"},{"line_number":733,"context_line":"        return HTTPClient(username,"},{"line_number":734,"context_line":"                          password,"},{"line_number":735,"context_line":"                          user_id\u003duser_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_abb3d208","line":732,"updated":"2016-06-01 15:56:25.000000000","message":"Any reason we shouldn\u0027t do this by adding \"logger\u003dNone\" to the function definition, rather than by pulling it out of kwargs?","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a4c35ccd5597c206cd3caffd79d8d313e9cd4baa","unresolved":false,"context_lines":[{"line_number":729,"context_line":"    else:"},{"line_number":730,"context_line":"        # FIXME(jamielennox): username and password are now optional. Need"},{"line_number":731,"context_line":"        # to test that they were provided in this mode."},{"line_number":732,"context_line":"        logger \u003d kwargs.get(\u0027logger\u0027)"},{"line_number":733,"context_line":"        return HTTPClient(username,"},{"line_number":734,"context_line":"                          password,"},{"line_number":735,"context_line":"                          user_id\u003duser_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_a3af3b2a","line":732,"in_reply_to":"9abb7d3a_4798246b","updated":"2016-06-02 15:10:04.000000000","message":"Indeed we could, but this feels like something we should be explicit about.  Explicit is better than implicit…","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"70db7300c29e672e26152f6ea5fd504493983ee1","unresolved":false,"context_lines":[{"line_number":729,"context_line":"    else:"},{"line_number":730,"context_line":"        # FIXME(jamielennox): username and password are now optional. Need"},{"line_number":731,"context_line":"        # to test that they were provided in this mode."},{"line_number":732,"context_line":"        logger \u003d kwargs.get(\u0027logger\u0027)"},{"line_number":733,"context_line":"        return HTTPClient(username,"},{"line_number":734,"context_line":"                          password,"},{"line_number":735,"context_line":"                          user_id\u003duser_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_4798246b","line":732,"in_reply_to":"9abb7d3a_abb3d208","updated":"2016-06-02 13:05:09.000000000","message":"The \u0027kwargs\u0027 in the arguments of \u0027_construct_http_client\u0027 method can be passed to \u0027SessionClient\u0027 as it is.","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"}],"novaclient/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d14e8a50322623927cc423746c1897619541bf88","unresolved":false,"context_lines":[{"line_number":701,"context_line":"                            format\u003dstreamformat)"},{"line_number":702,"context_line":"        logging.getLogger(\u0027iso8601\u0027).setLevel(logging.WARNING)"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"        self.client_logger \u003d logging.getLogger(client.__name__)"},{"line_number":705,"context_line":"        ch \u003d logging.StreamHandler()"},{"line_number":706,"context_line":"        self.client_logger.setLevel(logging.DEBUG)"},{"line_number":707,"context_line":"        self.client_logger.addHandler(ch)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_8be9aeb9","line":704,"range":{"start_line":704,"start_character":47,"end_line":704,"end_character":62},"updated":"2016-06-01 15:56:25.000000000","message":"Could you go into the rationale for using the name of the client module?","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"70db7300c29e672e26152f6ea5fd504493983ee1","unresolved":false,"context_lines":[{"line_number":701,"context_line":"                            format\u003dstreamformat)"},{"line_number":702,"context_line":"        logging.getLogger(\u0027iso8601\u0027).setLevel(logging.WARNING)"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"        self.client_logger \u003d logging.getLogger(client.__name__)"},{"line_number":705,"context_line":"        ch \u003d logging.StreamHandler()"},{"line_number":706,"context_line":"        self.client_logger.setLevel(logging.DEBUG)"},{"line_number":707,"context_line":"        self.client_logger.addHandler(ch)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_a74ab0aa","line":704,"range":{"start_line":704,"start_character":47,"end_line":704,"end_character":62},"in_reply_to":"9abb7d3a_8be9aeb9","updated":"2016-06-02 13:05:09.000000000","message":"The client_logger is passed to \u0027novaclient.Client\u0027 in Line 904.\nIt is for client.\nSo it is adequate to use the name of the client module.","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a4c35ccd5597c206cd3caffd79d8d313e9cd4baa","unresolved":false,"context_lines":[{"line_number":701,"context_line":"                            format\u003dstreamformat)"},{"line_number":702,"context_line":"        logging.getLogger(\u0027iso8601\u0027).setLevel(logging.WARNING)"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"        self.client_logger \u003d logging.getLogger(client.__name__)"},{"line_number":705,"context_line":"        ch \u003d logging.StreamHandler()"},{"line_number":706,"context_line":"        self.client_logger.setLevel(logging.DEBUG)"},{"line_number":707,"context_line":"        self.client_logger.addHandler(ch)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_1e25baad","line":704,"range":{"start_line":704,"start_character":47,"end_line":704,"end_character":62},"in_reply_to":"9abb7d3a_a74ab0aa","updated":"2016-06-02 15:10:04.000000000","message":"But doesn\u0027t the client already allocate a logger with the given name if one isn\u0027t passed?\n\nOn the other hand, you set up the logging level and handler here, which I suppose makes sense.","commit_id":"8c481969280a6492df50dfb93921436f27f8c811"}]}
