)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a01e2022d8e05364e7e67d845c0bb0ea64f9e105","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url was specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip ironic-api related jobs in the case."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0271be94ba7febc6abd5bf3343f6fa179bc1a6a4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_119e7b07","line":11,"updated":"2016-11-21 11:54:42.000000000","message":"let\u0027s specify \"jobs\": skip lookup and heartbeat","commit_id":"02cc1b57cf78d0cfb7582aedfe75feda52f6b212"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"df976b3fbd925102f414e5cba23c82ea42aceab0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yufei \u003czhang.yufei@99cloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-03 00:17:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_e4d5e6e4","line":7,"updated":"2016-12-06 21:27:50.000000000","message":"nit: s/releated/related/","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"58b4adfbe8e27a3b43d79ca1e2819210cb7d7f9e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yufei \u003czhang.yufei@99cloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-03 00:17:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_1c5a27f2","line":7,"in_reply_to":"3a71b18c_e4d5e6e4","updated":"2016-12-07 08:17:03.000000000","message":"Done","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4bb295a58d77619236fc259117b76fb9703f2543","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip heartbeat and lookup in this case."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_c480ea8d","line":9,"updated":"2016-12-06 21:49:49.000000000","message":"I think this commit message needs work. I don\u0027t really understand it.\n\nMaybe:\n\nWhen a node is inspected the \u0027api_url\u0027 value is not provided to IPA via the PXE parameter \u0027ipa-api-url\u0027. Update so a default value for \u0027api_url\u0027 is no longer provided. If \u0027api_url\u0027 is not provided skip the heartbeat and lookup steps.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"0f4553209cbb328e5fabeef8b484a33486b578b2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip heartbeat and lookup in this case."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_857a6cbb","line":9,"in_reply_to":"3a71b18c_85298ce8","updated":"2016-12-06 22:56:33.000000000","message":"That works for me. Thanks Jay.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"58b4adfbe8e27a3b43d79ca1e2819210cb7d7f9e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip heartbeat and lookup in this case."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_fc564bcc","line":9,"in_reply_to":"3a71b18c_857a6cbb","updated":"2016-12-07 08:17:03.000000000","message":"Done","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b2d1ff31476874c3b64f70c7c4d0bcdde61bbb2b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip heartbeat and lookup in this case."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_85298ce8","line":9,"in_reply_to":"3a71b18c_c480ea8d","updated":"2016-12-06 22:47:45.000000000","message":"How about:\n\n\"Currently, if IPA is booted without an ironic or inspector url, it will default to localhost and fail to connect. Instead, we now explicitly fail and print a log message if no callback url is provided.\"","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4bb295a58d77619236fc259117b76fb9703f2543","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Skip API releated work if no api url configured"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we inspect the node, no api url is specified in pxe parameters,"},{"line_number":10,"context_line":"IPA use http://127.0.0.1 as the default ironic-api url and reports"},{"line_number":11,"context_line":"ConnectionError now. We should skip heartbeat and lookup in this case."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0271be94ba7febc6abd5bf3343f6fa179bc1a6a4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3a71b18c_1f7a2b88","line":10,"updated":"2016-12-06 21:49:49.000000000","message":"This patch changes that. There is no longer a default value.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"}],"ironic_python_agent/agent.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a01e2022d8e05364e7e67d845c0bb0ea64f9e105","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                if config.get(\u0027metrics_statsd\u0027):"},{"line_number":356,"context_line":"                    for opt, val in config.items():"},{"line_number":357,"context_line":"                        setattr(cfg.CONF.metrics_statsd, opt, val)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        wsgi \u003d simple_server.make_server("},{"line_number":360,"context_line":"            self.listen_address.hostname,"},{"line_number":361,"context_line":"            self.listen_address.port,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_31a37751","line":358,"updated":"2016-11-21 11:54:42.000000000","message":"let\u0027s issue some warning if api_url is empty. or better, an INFO logging if inspection is enabled and ERROR otherwise","commit_id":"02cc1b57cf78d0cfb7582aedfe75feda52f6b212"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"d9ab1a79605ccb883b2cf5caaf44091c48542016","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            propagate_map_exceptions\u003dTrue,"},{"line_number":169,"context_line":"            invoke_kwds\u003d{\u0027agent\u0027: self},"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        self.api_url \u003d api_url or \u0027\u0027"},{"line_number":172,"context_line":"        self.api_client \u003d ironic_api_client.APIClient(self.api_url)"},{"line_number":173,"context_line":"        self.listen_address \u003d listen_address"},{"line_number":174,"context_line":"        self.advertise_address \u003d advertise_address"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_261cdf76","line":171,"range":{"start_line":171,"start_character":30,"end_line":171,"end_character":36},"updated":"2016-11-24 08:31:52.000000000","message":"wondering if this really needed. all the other \u0027if\u0027 blocks would work if self.api_url is None (now default) - so what would fail if we do not set it to empty string and leave it as None?","commit_id":"7e3f4de7d76acae579d081b0224f2e03c5e16095"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"59d4b0fb4c3fa35d43d6733d02de78ee5d151d68","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            propagate_map_exceptions\u003dTrue,"},{"line_number":169,"context_line":"            invoke_kwds\u003d{\u0027agent\u0027: self},"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        self.api_url \u003d api_url or \u0027\u0027"},{"line_number":172,"context_line":"        self.api_client \u003d ironic_api_client.APIClient(self.api_url)"},{"line_number":173,"context_line":"        self.listen_address \u003d listen_address"},{"line_number":174,"context_line":"        self.advertise_address \u003d advertise_address"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_c9789cf5","line":171,"range":{"start_line":171,"start_character":30,"end_line":171,"end_character":36},"in_reply_to":"5a74a57a_261cdf76","updated":"2016-11-24 10:09:03.000000000","message":"It\u0027s needed, The APIClient init will use api_url.rstrip(\u0027/\u0027) and raise error. Seems it\u0027s the simplest way to fix that but not graceful.","commit_id":"7e3f4de7d76acae579d081b0224f2e03c5e16095"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"bd6cbb732f8148a6733301bd65db67110b20e108","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            propagate_map_exceptions\u003dTrue,"},{"line_number":169,"context_line":"            invoke_kwds\u003d{\u0027agent\u0027: self},"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        self.api_url \u003d api_url or \u0027\u0027"},{"line_number":172,"context_line":"        self.api_client \u003d ironic_api_client.APIClient(self.api_url)"},{"line_number":173,"context_line":"        self.listen_address \u003d listen_address"},{"line_number":174,"context_line":"        self.advertise_address \u003d advertise_address"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_907885c6","line":171,"range":{"start_line":171,"start_character":30,"end_line":171,"end_character":36},"in_reply_to":"5a74a57a_c9789cf5","updated":"2016-11-24 10:21:08.000000000","message":"Fair enough, then let it be so.","commit_id":"7e3f4de7d76acae579d081b0224f2e03c5e16095"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b459bd343d964d8eee6ce1824051c15a59f96ef9","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                         \u0027skipped for inspector.\u0027)"},{"line_number":364,"context_line":"            else:"},{"line_number":365,"context_line":"                LOG.error(\u0027Neither ipa-api-url nor inspection_callback_url\u0027"},{"line_number":366,"context_line":"                          \u0027found, please check your pxe append parameters.\u0027)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        wsgi \u003d simple_server.make_server("},{"line_number":369,"context_line":"            self.listen_address.hostname,"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_66487e5c","line":366,"updated":"2016-12-02 17:55:25.000000000","message":"nit: should we add ipa-standalone to this error? I\u0027m OK with not, fwiw, since that\u0027s generally considered a developer setting.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"58d34abef6f3a74286c1ffcc30bb426426f23ed9","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                         \u0027skipped for inspector.\u0027)"},{"line_number":364,"context_line":"            else:"},{"line_number":365,"context_line":"                LOG.error(\u0027Neither ipa-api-url nor inspection_callback_url\u0027"},{"line_number":366,"context_line":"                          \u0027found, please check your pxe append parameters.\u0027)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        wsgi \u003d simple_server.make_server("},{"line_number":369,"context_line":"            self.listen_address.hostname,"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_e491bff2","line":366,"in_reply_to":"3a71b18c_66487e5c","updated":"2016-12-05 08:49:17.000000000","message":"I think not, because standalone is  a parameter that only those who are quite familiar with ironic will use in development.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"}],"ironic_python_agent/tests/unit/test_agent.py":[{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"91797ac4eb9de3f630abf526b5f6c4643532dd03","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        self.assertIsNone(self.agent.api_client)"},{"line_number":271,"context_line":"        self.assertIsNone(self.agent.heartbeater)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        self.agent.api_client \u003d mock.Mock()"},{"line_number":274,"context_line":"        self.agent.heartbeater \u003d mock.Mock()"},{"line_number":275,"context_line":"        CONF.set_override(\u0027inspection_callback_url\u0027, \u0027http://foo/bar\u0027,"},{"line_number":276,"context_line":"                          enforce_type\u003dTrue)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a74a57a_e9e501a4","line":274,"range":{"start_line":273,"start_character":0,"end_line":274,"end_character":44},"updated":"2016-11-27 16:26:19.000000000","message":"Not sure that whether line 273,274,294,295 should be deleted.","commit_id":"e6aff2cf3c06fcf3d9a59670d7368da456e4c441"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"99561b98bfc6259df3ef11816ee802c49d6bd501","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @mock.patch.object(hardware.HardwareManager, \u0027list_hardware_info\u0027)"},{"line_number":258,"context_line":"    def test_run_with_inspection_without_apiurl(self,"},{"line_number":259,"context_line":"                                                mocked_list_hardware,"},{"line_number":260,"context_line":"                                                wsgi_server_cls,"},{"line_number":261,"context_line":"                                                mocked_dispatch,"},{"line_number":262,"context_line":"                                                mocked_inspector,"},{"line_number":263,"context_line":"                                                mocked_wait):"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_df8d13d4","line":260,"updated":"2016-12-06 21:57:04.000000000","message":"This should be named \u0027mock_wsgi_server\u0027, or something that starts with \u0027mock_\u0027\n\nAnd realize that it isn\u0027t done elsewhere, but that\u0027s just wrong.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"dd31bd91646e9ebf3495735537e81a87eed7135b","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @mock.patch.object(hardware.HardwareManager, \u0027list_hardware_info\u0027)"},{"line_number":258,"context_line":"    def test_run_with_inspection_without_apiurl(self,"},{"line_number":259,"context_line":"                                                mocked_list_hardware,"},{"line_number":260,"context_line":"                                                wsgi_server_cls,"},{"line_number":261,"context_line":"                                                mocked_dispatch,"},{"line_number":262,"context_line":"                                                mocked_inspector,"},{"line_number":263,"context_line":"                                                mocked_wait):"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_d79a4813","line":260,"in_reply_to":"3a71b18c_1c0b0725","updated":"2016-12-07 08:58:08.000000000","message":"After I serached all unit tests in IPA, I find that only test_agent.py has this kind of nits.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"58b4adfbe8e27a3b43d79ca1e2819210cb7d7f9e","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @mock.patch.object(hardware.HardwareManager, \u0027list_hardware_info\u0027)"},{"line_number":258,"context_line":"    def test_run_with_inspection_without_apiurl(self,"},{"line_number":259,"context_line":"                                                mocked_list_hardware,"},{"line_number":260,"context_line":"                                                wsgi_server_cls,"},{"line_number":261,"context_line":"                                                mocked_dispatch,"},{"line_number":262,"context_line":"                                                mocked_inspector,"},{"line_number":263,"context_line":"                                                mocked_wait):"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_1c0b0725","line":260,"in_reply_to":"3a71b18c_df8d13d4","updated":"2016-12-07 08:17:03.000000000","message":"Fixed in this method, but not sure that whether should I fix other nits like this in this patch, I think maybe a new patch for all nits like this in IPA is better.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"a2c1fb2f9d24b0d959e9a96691d70db219a87d8b","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                                                wsgi_server_cls,"},{"line_number":261,"context_line":"                                                mocked_dispatch,"},{"line_number":262,"context_line":"                                                mocked_inspector,"},{"line_number":263,"context_line":"                                                mocked_wait):"},{"line_number":264,"context_line":"        CONF.set_override(\u0027inspection_callback_url\u0027, \u0027http://foo/bar\u0027,"},{"line_number":265,"context_line":"                          enforce_type\u003dTrue)"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_df71930d","line":263,"updated":"2016-12-06 21:53:43.000000000","message":"A docstring or some comments would be useful. Explaining how this works.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":10453,"name":"octopuszhang","email":"zhangyf@rc.inesa.com","username":"1"},"change_message_id":"58b4adfbe8e27a3b43d79ca1e2819210cb7d7f9e","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                                                wsgi_server_cls,"},{"line_number":261,"context_line":"                                                mocked_dispatch,"},{"line_number":262,"context_line":"                                                mocked_inspector,"},{"line_number":263,"context_line":"                                                mocked_wait):"},{"line_number":264,"context_line":"        CONF.set_override(\u0027inspection_callback_url\u0027, \u0027http://foo/bar\u0027,"},{"line_number":265,"context_line":"                          enforce_type\u003dTrue)"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_dc2b4f80","line":263,"in_reply_to":"3a71b18c_df71930d","updated":"2016-12-07 08:17:03.000000000","message":"Done","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"99561b98bfc6259df3ef11816ee802c49d6bd501","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    @mock.patch.object(hardware.HardwareManager, \u0027list_hardware_info\u0027)"},{"line_number":302,"context_line":"    def test_run_without_inspection_and_apiurl(self,"},{"line_number":303,"context_line":"                                               mocked_list_hardware,"},{"line_number":304,"context_line":"                                               wsgi_server_cls,"},{"line_number":305,"context_line":"                                               mocked_dispatch,"},{"line_number":306,"context_line":"                                               mocked_inspector,"},{"line_number":307,"context_line":"                                               mocked_wait):"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_5fb82375","line":304,"updated":"2016-12-06 21:57:04.000000000","message":"This should be named \u0027mock_wsgi_server\u0027, or something that starts with \u0027mock_\u0027\n\nAnd realize that it isn\u0027t done elsewhere, but that\u0027s just wrong.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"a2c1fb2f9d24b0d959e9a96691d70db219a87d8b","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                               wsgi_server_cls,"},{"line_number":305,"context_line":"                                               mocked_dispatch,"},{"line_number":306,"context_line":"                                               mocked_inspector,"},{"line_number":307,"context_line":"                                               mocked_wait):"},{"line_number":308,"context_line":"        CONF.set_override(\u0027inspection_callback_url\u0027, None,"},{"line_number":309,"context_line":"                          enforce_type\u003dTrue)"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a71b18c_ff62cf3c","line":307,"updated":"2016-12-06 21:53:43.000000000","message":"A docstring or some comments would be useful. Explaining how this works.","commit_id":"902eed35d84f59c0ec2fff964f8703f758e450d3"}]}
