)]}'
{"nodepool/driver/utils.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"989d1c43565506fcd95e45b916f2c2c05bc22ae4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    At this time, the implementing class must manage this thread."},{"line_number":38,"context_line":"    \u0027\u0027\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, handler, node, provider_config):"},{"line_number":41,"context_line":"        \u0027\u0027\u0027"},{"line_number":42,"context_line":"        :param NodeRequestHandler handler: The handler object."},{"line_number":43,"context_line":"        :param Node node: A Node object describing the node to launch."},{"line_number":44,"context_line":"        :param ProviderConfig provider_config: A ProviderConfig object"},{"line_number":45,"context_line":"            describing the provider launching this node."},{"line_number":46,"context_line":"        \u0027\u0027\u0027"},{"line_number":47,"context_line":"        threading.Thread.__init__(self, name\u003d\"NodeLauncher-%s\" % node.id)"},{"line_number":48,"context_line":"        stats.StatsReporter.__init__(self)"},{"line_number":49,"context_line":"        logger \u003d logging.getLogger(\"nodepool.NodeLauncher\")"},{"line_number":50,"context_line":"        self.log \u003d get_annotated_logger(logger, node_request\u003dhandler.request,"},{"line_number":51,"context_line":"                                        node\u003dnode.id)"},{"line_number":52,"context_line":"        self.handler \u003d handler"},{"line_number":53,"context_line":"        self.zk \u003d handler.zk"},{"line_number":54,"context_line":"        self.node \u003d node"},{"line_number":55,"context_line":"        self.provider_config \u003d provider_config"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_9b341ce1","line":53,"range":{"start_line":40,"start_character":0,"end_line":53,"end_character":28},"updated":"2020-01-21 14:29:54.000000000","message":"There is zero reason for the NodeLauncher to have the NodeRequestHandler here, except for two pieces of logging data. I understand the convenience of doing this, but having the NRH object passed in does two things that I don\u0027t like:\n\n  1) Needlessly couples the NL and NRH objects together.\n  2) Opens up the possibility that we could accidentally do something bad with the handler object itself.\n\nI\u0027d rather see the logging items you need passed in either separately, or, as part of a logging-specific dict item.","commit_id":"d3ce0bb6b58eaed6c65a835883cc731c2c941eff"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"0277cd867a6af72096ba1370f4d75fa99d9433e8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    At this time, the implementing class must manage this thread."},{"line_number":38,"context_line":"    \u0027\u0027\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, handler, node, provider_config):"},{"line_number":41,"context_line":"        \u0027\u0027\u0027"},{"line_number":42,"context_line":"        :param NodeRequestHandler handler: The handler object."},{"line_number":43,"context_line":"        :param Node node: A Node object describing the node to launch."},{"line_number":44,"context_line":"        :param ProviderConfig provider_config: A ProviderConfig object"},{"line_number":45,"context_line":"            describing the provider launching this node."},{"line_number":46,"context_line":"        \u0027\u0027\u0027"},{"line_number":47,"context_line":"        threading.Thread.__init__(self, name\u003d\"NodeLauncher-%s\" % node.id)"},{"line_number":48,"context_line":"        stats.StatsReporter.__init__(self)"},{"line_number":49,"context_line":"        logger \u003d logging.getLogger(\"nodepool.NodeLauncher\")"},{"line_number":50,"context_line":"        self.log \u003d get_annotated_logger(logger, node_request\u003dhandler.request,"},{"line_number":51,"context_line":"                                        node\u003dnode.id)"},{"line_number":52,"context_line":"        self.handler \u003d handler"},{"line_number":53,"context_line":"        self.zk \u003d handler.zk"},{"line_number":54,"context_line":"        self.node \u003d node"},{"line_number":55,"context_line":"        self.provider_config \u003d provider_config"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_fb01906e","line":53,"range":{"start_line":40,"start_character":0,"end_line":53,"end_character":28},"in_reply_to":"3fa7e38b_9b341ce1","updated":"2020-01-21 14:52:44.000000000","message":"Ok, had to refresh myself on the actual implementations of this class, but it seems we already depend on the handler in the subclasses, so this change makes more sense now and I remove my objection.","commit_id":"d3ce0bb6b58eaed6c65a835883cc731c2c941eff"}]}
