)]}'
{"nova/scheduler/manager.py":[{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"2f28d3a3bff29afe5fdcb5f8a1b3222aaca9cad9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    \"nova.scheduler.driver\","},{"line_number":56,"context_line":"                    scheduler_driver,"},{"line_number":57,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":58,"context_line":"        # TODO(Yingxin): Change to catch stevedore.exceptions.NoMatches after"},{"line_number":59,"context_line":"        # stevedore v1.9.0"},{"line_number":60,"context_line":"        except RuntimeError:"},{"line_number":61,"context_line":"            raise RuntimeError("},{"line_number":62,"context_line":"                    _(\"Cannot load scheduler driver from configuration \""},{"line_number":63,"context_line":"                      \"%(conf)s.\"),"},{"line_number":64,"context_line":"                    {\u0027conf\u0027: scheduler_driver})"},{"line_number":65,"context_line":"        super(SchedulerManager, self).__init__(service_name\u003d\u0027scheduler\u0027,"},{"line_number":66,"context_line":"                                               *args, **kwargs)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_0149f58b","line":64,"range":{"start_line":58,"start_character":8,"end_line":64,"end_character":47},"updated":"2016-07-18 07:24:14.000000000","message":"It is better to remove the try...catch... block, because stevedore can raise the correct NoMatches exception with friendly information now.\n\nSee https://review.openstack.org/#/c/307485/","commit_id":"9a0f2211f38672a9f3f4931f3eb806f72aef0cb2"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"d1267ed0660a4232f718e7b4fee51e2ca8f07454","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    \"nova.scheduler.driver\","},{"line_number":56,"context_line":"                    scheduler_driver,"},{"line_number":57,"context_line":"                    invoke_on_load\u003dTrue).driver"},{"line_number":58,"context_line":"        # TODO(Yingxin): Change to catch stevedore.exceptions.NoMatches after"},{"line_number":59,"context_line":"        # stevedore v1.9.0"},{"line_number":60,"context_line":"        except RuntimeError:"},{"line_number":61,"context_line":"            raise RuntimeError("},{"line_number":62,"context_line":"                    _(\"Cannot load scheduler driver from configuration \""},{"line_number":63,"context_line":"                      \"%(conf)s.\"),"},{"line_number":64,"context_line":"                    {\u0027conf\u0027: scheduler_driver})"},{"line_number":65,"context_line":"        super(SchedulerManager, self).__init__(service_name\u003d\u0027scheduler\u0027,"},{"line_number":66,"context_line":"                                               *args, **kwargs)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_259025ec","line":64,"range":{"start_line":58,"start_character":8,"end_line":64,"end_character":47},"in_reply_to":"dada55a8_0149f58b","updated":"2016-07-19 18:29:29.000000000","message":"Ah, that\u0027s good to know. I wanted to remove it, but wasn\u0027t sure if I could yet.","commit_id":"9a0f2211f38672a9f3f4931f3eb806f72aef0cb2"}],"nova/tests/unit/scheduler/test_scheduler.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f998614a0f3a94e852a04d90b38d7a32c5025883","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                         mock_init_agg,"},{"line_number":78,"context_line":"                                         mock_init_inst):"},{"line_number":79,"context_line":"        self.flags(scheduler_driver\u003d\u0027nova.scheduler.chance.ChanceScheduler\u0027)"},{"line_number":80,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class SchedulerManagerTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_843e3f89","line":80,"updated":"2016-09-21 13:00:14.000000000","message":"I was tempted to say just drop this test, but actually this is not a bad idea.","commit_id":"2d8465b3110f68e2c88159454a90fe7b0459b2be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"59f8579ad8e7bb28be0f97919a53a7b79ed61ffb","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.flags(scheduler_driver\u003d\u0027nonexist_scheduler\u0027)"},{"line_number":72,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":75,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":76,"context_line":"    def test_init_classpath_driver_fails(self,"},{"line_number":77,"context_line":"                                         mock_init_agg,"},{"line_number":78,"context_line":"                                         mock_init_inst):"},{"line_number":79,"context_line":"        self.flags(scheduler_driver\u003d\u0027nova.scheduler.chance.ChanceScheduler\u0027)"},{"line_number":80,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class SchedulerManagerTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_c9903bf0","line":80,"range":{"start_line":74,"start_character":4,"end_line":80,"end_character":57},"updated":"2016-09-22 00:50:26.000000000","message":"Do we even need this test? It\u0027s hitting the same code path as the test above it, so it seems redundant.","commit_id":"35198367d52b6c536e0b7b9b632318ee6145ba91"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"00c4d5c51ad1828ce966ed07a9853ebc5e5e0ba8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.flags(scheduler_driver\u003d\u0027nonexist_scheduler\u0027)"},{"line_number":72,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":75,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":76,"context_line":"    def test_init_classpath_driver_fails(self,"},{"line_number":77,"context_line":"                                         mock_init_agg,"},{"line_number":78,"context_line":"                                         mock_init_inst):"},{"line_number":79,"context_line":"        self.flags(scheduler_driver\u003d\u0027nova.scheduler.chance.ChanceScheduler\u0027)"},{"line_number":80,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class SchedulerManagerTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a8bc5a2_5979e292","line":80,"range":{"start_line":74,"start_character":4,"end_line":80,"end_character":57},"in_reply_to":"5a8bc5a2_1eabc075","updated":"2016-09-22 18:00:55.000000000","message":"But this is testing deleted code, so it\u0027s really just testing that what was deleted stays deleted...which I guess is a thing we could do, but I don\u0027t think we need to. In other words, the RuntimeError that this test produces is coming from the same place as the test above.","commit_id":"35198367d52b6c536e0b7b9b632318ee6145ba91"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"44e89a9b6bf3842c45c51ece931a75ce11d13b61","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.flags(scheduler_driver\u003d\u0027nonexist_scheduler\u0027)"},{"line_number":72,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":75,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":76,"context_line":"    def test_init_classpath_driver_fails(self,"},{"line_number":77,"context_line":"                                         mock_init_agg,"},{"line_number":78,"context_line":"                                         mock_init_inst):"},{"line_number":79,"context_line":"        self.flags(scheduler_driver\u003d\u0027nova.scheduler.chance.ChanceScheduler\u0027)"},{"line_number":80,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class SchedulerManagerTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a8bc5a2_894b3c59","line":80,"range":{"start_line":74,"start_character":4,"end_line":80,"end_character":57},"in_reply_to":"7a8ec9b2_c9903bf0","updated":"2016-09-22 09:34:04.000000000","message":"Seeing as I remove this in the next patch, I think this can go","commit_id":"35198367d52b6c536e0b7b9b632318ee6145ba91"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"cc1cef86e23d0fa3d3866e916ca8866905c75beb","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.flags(scheduler_driver\u003d\u0027nonexist_scheduler\u0027)"},{"line_number":72,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_instance_info\u0027)"},{"line_number":75,"context_line":"    @mock.patch.object(host_manager.HostManager, \u0027_init_aggregates\u0027)"},{"line_number":76,"context_line":"    def test_init_classpath_driver_fails(self,"},{"line_number":77,"context_line":"                                         mock_init_agg,"},{"line_number":78,"context_line":"                                         mock_init_inst):"},{"line_number":79,"context_line":"        self.flags(scheduler_driver\u003d\u0027nova.scheduler.chance.ChanceScheduler\u0027)"},{"line_number":80,"context_line":"        self.assertRaises(RuntimeError, self.manager_cls)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class SchedulerManagerTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a8bc5a2_1eabc075","line":80,"range":{"start_line":74,"start_character":4,"end_line":80,"end_character":57},"in_reply_to":"7a8ec9b2_c9903bf0","updated":"2016-09-22 17:52:18.000000000","message":"Well, the test wouldn\u0027t pass without the change in code. IOW, the class path version wouldn\u0027t have raised the exception.","commit_id":"35198367d52b6c536e0b7b9b632318ee6145ba91"}],"releasenotes/notes/sched_remove_classpath_import-5d0f48eb388e6948.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e080dcc8eabfa5fb8d83e9b962d8b6078c9cebb3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - The ability to specify the scheduler driver via a full"},{"line_number":4,"context_line":"    class path was deprecated in Mitaka, and has now been"},{"line_number":5,"context_line":"    removed. Drivers must now be listed as one of the"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a8ec9b2_8b32c75c","line":2,"updated":"2016-09-21 14:41:02.000000000","message":"This isn\u0027t a deprecation, it\u0027s an upgrade impact because the thing is removed.","commit_id":"13119cded72df2526174597234d601411d6c29ef"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c10f310bb9c3756400661cfde461d1e166de0206","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - The ability to specify the scheduler driver via a full"},{"line_number":4,"context_line":"    class path was deprecated in Mitaka, and has now been"},{"line_number":5,"context_line":"    removed. Drivers must now be listed as one of the"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a8ec9b2_8b572759","line":2,"in_reply_to":"7a8ec9b2_8b32c75c","updated":"2016-09-21 14:41:53.000000000","message":"dang it, you are correct. I always miss those.","commit_id":"13119cded72df2526174597234d601411d6c29ef"}]}
