)]}'
{"nova/service.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"59ccb8176866ba7f73d245bd0196d4c478e36a9a","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                # NOTE(danms): If we race to create a record wth a sibling,"},{"line_number":366,"context_line":"                # don\u0027t fail here."},{"line_number":367,"context_line":"                service_ref \u003d objects.Service.get_by_host_and_binary("},{"line_number":368,"context_line":"                    ctxt, self.host, self.binary)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        if self.manager:"},{"line_number":371,"context_line":"            self.manager.init_host()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_d3b94730","side":"PARENT","line":368,"updated":"2016-10-11 15:13:50.000000000","message":"These all stay as self.host.","commit_id":"08338dba5e2d9a127dac8a52b12cf124821b0a63"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"898b1c80a5f147fb75a7231a9b0dcff34c6d6ac4","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def _create_service_ref(this_service, context):"},{"line_number":52,"context_line":"    service \u003d objects.Service(context)"},{"line_number":53,"context_line":"    service.host \u003d CONF.host"},{"line_number":54,"context_line":"    service.binary \u003d this_service.binary"},{"line_number":55,"context_line":"    service.topic \u003d this_service.topic"},{"line_number":56,"context_line":"    service.report_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_33044314","line":53,"updated":"2016-10-11 15:09:07.000000000","message":"I think we should leave this to this_service","commit_id":"ef0dc21765b0d69caf223752fe0f0219c72f88fc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"898b1c80a5f147fb75a7231a9b0dcff34c6d6ac4","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            wname \u003d \u0027osapi_compute\u0027"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            wname \u003d name"},{"line_number":294,"context_line":"        self.host \u003d getattr(CONF, \u0027%s_listen\u0027 % name, \"0.0.0.0\")"},{"line_number":295,"context_line":"        self.port \u003d getattr(CONF, \u0027%s_listen_port\u0027 % name, 0)"},{"line_number":296,"context_line":"        self.workers \u003d (getattr(CONF, \u0027%s_workers\u0027 % wname, None) or"},{"line_number":297,"context_line":"                        processutils.get_worker_count())"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_332b6384","line":294,"updated":"2016-10-11 15:09:07.000000000","message":"I think we should add:\n   self.host \u003d CONF.host\n    self.listen_address \u003d getattr(CONF, \u0027%s_listen\u0027 % name, \"0.0.0.0\")","commit_id":"ef0dc21765b0d69caf223752fe0f0219c72f88fc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"59ccb8176866ba7f73d245bd0196d4c478e36a9a","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        self.use_ssl \u003d use_ssl"},{"line_number":306,"context_line":"        self.server \u003d wsgi.Server(name,"},{"line_number":307,"context_line":"                                  self.app,"},{"line_number":308,"context_line":"                                  host\u003dself.host,"},{"line_number":309,"context_line":"                                  port\u003dself.port,"},{"line_number":310,"context_line":"                                  use_ssl\u003dself.use_ssl,"},{"line_number":311,"context_line":"                                  max_url_len\u003dmax_url_len)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_9368afbc","line":308,"updated":"2016-10-11 15:13:50.000000000","message":"So, for example this goes to self.listen_address","commit_id":"ef0dc21765b0d69caf223752fe0f0219c72f88fc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"03ea37da588700d3f55f18d8871719acfd9a4051","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            wname \u003d \u0027osapi_compute\u0027"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            wname \u003d name"},{"line_number":294,"context_line":"        self.host \u003d CONF.host"},{"line_number":295,"context_line":"        self.listen_address \u003d getattr(CONF, \u0027%s_listen\u0027 % name, \"0.0.0.0\")"},{"line_number":296,"context_line":"        self.port \u003d getattr(CONF, \u0027%s_listen_port\u0027 % name, 0)"},{"line_number":297,"context_line":"        self.workers \u003d (getattr(CONF, \u0027%s_workers\u0027 % wname, None) or"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_22f20b70","line":294,"updated":"2016-10-12 09:40:12.000000000","message":"Emm...I think we should ensure this is what we expected host in the unittest","commit_id":"f103b6f0126aea77df19e506afd7f5a7fb860326"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"03ea37da588700d3f55f18d8871719acfd9a4051","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        self.use_ssl \u003d use_ssl"},{"line_number":307,"context_line":"        self.server \u003d wsgi.Server(name,"},{"line_number":308,"context_line":"                                  self.app,"},{"line_number":309,"context_line":"                                  host\u003dself.listen_address,"},{"line_number":310,"context_line":"                                  port\u003dself.port,"},{"line_number":311,"context_line":"                                  use_ssl\u003dself.use_ssl,"},{"line_number":312,"context_line":"                                  max_url_len\u003dmax_url_len)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_c2fdcf3b","line":309,"updated":"2016-10-12 09:40:12.000000000","message":"This can be ensured by the fixtures. So i think we needn\u0027t unittest to ensure this is right.","commit_id":"f103b6f0126aea77df19e506afd7f5a7fb860326"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28b467dfbea48d16083891859fbb0874fde6805e","unresolved":false,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        \"\"\""},{"line_number":356,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":357,"context_line":"        service_ref \u003d objects.Service.get_by_host_and_binary(ctxt, self.host,"},{"line_number":358,"context_line":"                                                             self.binary)"},{"line_number":359,"context_line":"        if service_ref:"},{"line_number":360,"context_line":"            _update_service_ref(service_ref)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_82cbd752","line":357,"updated":"2016-10-12 10:10:04.000000000","message":"We should add/update a unit test for this, so its clear it comes from the correct CONF now.","commit_id":"f103b6f0126aea77df19e506afd7f5a7fb860326"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"69efdeadd17034342ef3dfbebf4f06f708cb1288","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        self.manager.reset()"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"class WSGIService(service.Service):"},{"line_number":278,"context_line":"    \"\"\"Provides ability to launch API from a \u0027paste\u0027 configuration.\"\"\""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def __init__(self, name, loader\u003dNone, use_ssl\u003dFalse, max_url_len\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_c910b151","line":277,"updated":"2017-02-10 12:29:38.000000000","message":"As a heads up, there is a related bug that came up around running nova-api in mod-wsgi instead of via this eventlet service, that actually breaks all this service version registration.\n\nYou may want to look into that before doing any more work on this direction. I would reach out to dansmith on IRC about this one.","commit_id":"79b036308f3701b9b43782f0813aab6e81be8c06"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"467f96e1ea3643f4028dc8bf2cafa0a870d87071","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                old_service_ref \u003d objects.Service.get_by_host_and_binary("},{"line_number":369,"context_line":"                                    ctxt, self.listen_address, self.binary)"},{"line_number":370,"context_line":"                if old_service_ref:"},{"line_number":371,"context_line":"                    old_service_ref.destroy()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"                service_ref \u003d _create_service_ref(self, ctxt)"},{"line_number":374,"context_line":"            except (exception.ServiceTopicExists,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_66445274","line":371,"updated":"2017-02-10 12:27:38.000000000","message":"We should probably add a warning or debug message here to say we deleted the old service entry.\n\nSomething tells me we could have separate processes race here, meaning destroy() could raise a Not found excpetion. We should catch that here, and ensure it doesn\u0027t fail the service start up.","commit_id":"79b036308f3701b9b43782f0813aab6e81be8c06"}]}
