)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"42c8eceda09a0b5cb3d55133835727c3931ee8a9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"entirely in unit tests because the default value for"},{"line_number":16,"context_line":"max_concurrent_builds is 10."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Resolves-bug: 1520633"},{"line_number":19,"context_line":"Change-Id: I15825eb3fb1bccb12f4a9148809495ce3e83e3c8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a8ffd7b_43a7e1a9","line":18,"updated":"2015-11-27 16:05:28.000000000","message":"\"Closes-Bug: 1520633\" creates automatically links the launchpad bug with this patch set. More info here: http://docs.openstack.org/infra/manual/developers.html#working-on-bugs","commit_id":"0a474444fd02e5a771cc70185e6d32921d64d3eb"}],"nova/compute/utils.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f5d5a94447fd096122bffa99392a7d6ed1763b2","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        return self"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":544,"context_line":"        for uuid in self.instance_uuids:"},{"line_number":545,"context_line":"            objects.InstanceActionEvent.event_finish_with_failure("},{"line_number":546,"context_line":"                self.context, uuid, self.event_name, exc_val\u003dexc_val,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_391c2469","line":543,"updated":"2016-01-26 01:12:34.000000000","message":"Referenced in my other comment in this file","commit_id":"8d8113e265719321059951c99ea110e1eae7e777"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f5d5a94447fd096122bffa99392a7d6ed1763b2","unresolved":false,"context_lines":[{"line_number":552,"context_line":"    def __enter__(self):"},{"line_number":553,"context_line":"        pass"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def __exit__(self, exc_type, exc_value, traceback):"},{"line_number":556,"context_line":"        pass"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_d9586833","line":555,"range":{"start_line":555,"start_character":23,"end_line":555,"end_character":53},"updated":"2016-01-26 01:12:34.000000000","message":"Nit: It would be nice to have these named the same as they are in the other context manager on L543","commit_id":"8d8113e265719321059951c99ea110e1eae7e777"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7f9769d218bd1ad60a792595c3b55f1b50fc34c0","unresolved":false,"context_lines":[{"line_number":552,"context_line":"    def __enter__(self):"},{"line_number":553,"context_line":"        pass"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def __exit__(self, exc_type, exc_value, traceback):"},{"line_number":556,"context_line":"        pass"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a061dce_3b2e0dfb","line":555,"range":{"start_line":555,"start_character":23,"end_line":555,"end_character":53},"in_reply_to":"9a68dd71_d9586833","updated":"2016-04-07 17:23:32.000000000","message":"Done","commit_id":"8d8113e265719321059951c99ea110e1eae7e777"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"2747b32f4435457654296d49712c2af51e913e5a","unresolved":false,"context_lines":[{"line_number":3989,"context_line":"        ComputeManagerBuildInstanceTestCase):"},{"line_number":3990,"context_line":"    def setUp(self):"},{"line_number":3991,"context_line":"        super(ComputeManagerUnlimitedSemaphoreTestCase, self).setUp()"},{"line_number":3992,"context_line":"        self.flags(max_concurrent_builds\u003d10)"},{"line_number":3993,"context_line":""},{"line_number":3994,"context_line":""},{"line_number":3995,"context_line":"class ComputeManagerMigrationTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_dadb734e","line":3992,"updated":"2015-10-24 08:53:01.000000000","message":"according to commit message should be 0?","commit_id":"152cfb9f1e23c7dd42a56bcc20f2550fba2bb746"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"25356dc3a90465d869b32130da1fe8db3d605c3a","unresolved":false,"context_lines":[{"line_number":3989,"context_line":"        ComputeManagerBuildInstanceTestCase):"},{"line_number":3990,"context_line":"    def setUp(self):"},{"line_number":3991,"context_line":"        super(ComputeManagerUnlimitedSemaphoreTestCase, self).setUp()"},{"line_number":3992,"context_line":"        self.flags(max_concurrent_builds\u003d10)"},{"line_number":3993,"context_line":""},{"line_number":3994,"context_line":""},{"line_number":3995,"context_line":"class ComputeManagerMigrationTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_207358b6","line":3992,"in_reply_to":"3a29b11f_dadb734e","updated":"2015-10-24 15:34:27.000000000","message":"Yep. Had a brainfart when changing from CONF to self.flags.","commit_id":"152cfb9f1e23c7dd42a56bcc20f2550fba2bb746"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f5d5a94447fd096122bffa99392a7d6ed1763b2","unresolved":false,"context_lines":[{"line_number":4000,"context_line":"        super(ComputeManagerUnlimitedSemaphoreTestCase, self).setUp()"},{"line_number":4001,"context_line":"        self.flags(max_concurrent_builds\u003d0)"},{"line_number":4002,"context_line":""},{"line_number":4003,"context_line":""},{"line_number":4004,"context_line":"class ComputeManagerMigrationTestCase(test.NoDBTestCase):"},{"line_number":4005,"context_line":"    def setUp(self):"},{"line_number":4006,"context_line":"        super(ComputeManagerMigrationTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_d6b117e1","line":4003,"updated":"2016-01-26 01:12:34.000000000","message":"-1, This is pretty heavy to run all of the ComputeManagerBuildInstanceTestCase (36 tests, only 12 of which expose the bug) a second time to test max_concurrent_builds\u003d0\n\nAlso, your new tests don\u0027t fail with the old code because self.flags(max_concurrent_builds\u003d0) is being set after the compute manager has already been created\n\nI suggest adding a new test to ComputeManagerBuildInstanceTestCase similar to test_build_and_run_instance_called_with_proper_args, for example test_build_and_run_max_concurrent_unlimited (or a better name) that has:\n\n self.flags(max_concurrent_builds\u003d0) \n self.compute \u003d importutils.import_object(CONF.compute_manager)\n\nat the beginning. You can break out the inside of the test to a private function that both test_build_and_run_instance_called_with_proper_args and your new test can call.","commit_id":"8d8113e265719321059951c99ea110e1eae7e777"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7f9769d218bd1ad60a792595c3b55f1b50fc34c0","unresolved":false,"context_lines":[{"line_number":4000,"context_line":"        super(ComputeManagerUnlimitedSemaphoreTestCase, self).setUp()"},{"line_number":4001,"context_line":"        self.flags(max_concurrent_builds\u003d0)"},{"line_number":4002,"context_line":""},{"line_number":4003,"context_line":""},{"line_number":4004,"context_line":"class ComputeManagerMigrationTestCase(test.NoDBTestCase):"},{"line_number":4005,"context_line":"    def setUp(self):"},{"line_number":4006,"context_line":"        super(ComputeManagerMigrationTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a061dce_7a499130","line":4003,"in_reply_to":"9a68dd71_d6b117e1","updated":"2016-04-07 17:23:32.000000000","message":"Done\nThanks, really helpful feedback","commit_id":"8d8113e265719321059951c99ea110e1eae7e777"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"373f63d3388a4a46ef374ec01938ab3ad8dbf439","unresolved":false,"context_lines":[{"line_number":3213,"context_line":"        self._test_build_and_run_instance(mock_hooks)"},{"line_number":3214,"context_line":""},{"line_number":3215,"context_line":"    @mock.patch(\u0027nova.hooks._HOOKS\u0027)"},{"line_number":3216,"context_line":"    def test_build_and_run_instance_with_unlimited_max_concurrent_builds("},{"line_number":3217,"context_line":"            self, mock_hooks):"},{"line_number":3218,"context_line":"        self.flags(max_concurrent_builds\u003d0)"},{"line_number":3219,"context_line":"        self.compute \u003d importutils.import_object(CONF.compute_manager)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a061dce_674c1e77","line":3216,"updated":"2016-04-08 17:03:16.000000000","message":"This will fit on one line (barely!) with only \"self\" when the private function is instead decorated","commit_id":"cce7a1dc0f22c0afda9d658fbeffb9dda55f6d6c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7283a862e9060f04b465b2c14edace7a41855f48","unresolved":false,"context_lines":[{"line_number":3213,"context_line":"        self._test_build_and_run_instance(mock_hooks)"},{"line_number":3214,"context_line":""},{"line_number":3215,"context_line":"    @mock.patch(\u0027nova.hooks._HOOKS\u0027)"},{"line_number":3216,"context_line":"    def test_build_and_run_instance_with_unlimited_max_concurrent_builds("},{"line_number":3217,"context_line":"            self, mock_hooks):"},{"line_number":3218,"context_line":"        self.flags(max_concurrent_builds\u003d0)"},{"line_number":3219,"context_line":"        self.compute \u003d importutils.import_object(CONF.compute_manager)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a1b2928_044d7472","line":3216,"in_reply_to":"9a061dce_674c1e77","updated":"2016-04-11 09:15:44.000000000","message":"Done","commit_id":"cce7a1dc0f22c0afda9d658fbeffb9dda55f6d6c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"373f63d3388a4a46ef374ec01938ab3ad8dbf439","unresolved":false,"context_lines":[{"line_number":3219,"context_line":"        self.compute \u003d importutils.import_object(CONF.compute_manager)"},{"line_number":3220,"context_line":"        self._test_build_and_run_instance(mock_hooks)"},{"line_number":3221,"context_line":""},{"line_number":3222,"context_line":"    def _test_build_and_run_instance(self, mock_hooks):"},{"line_number":3223,"context_line":"        self.mox.StubOutWithMock(self.compute, \u0027_build_and_run_instance\u0027)"},{"line_number":3224,"context_line":"        self._do_build_instance_update()"},{"line_number":3225,"context_line":"        self.compute._build_and_run_instance(self.context, self.instance,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a061dce_7c483188","line":3222,"updated":"2016-04-08 17:03:16.000000000","message":"I think you can decorate this private function with @mock.patch(\u0027nova.hooks._HOOKS) and avoid unnecessary passing mock_hooks around","commit_id":"cce7a1dc0f22c0afda9d658fbeffb9dda55f6d6c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7283a862e9060f04b465b2c14edace7a41855f48","unresolved":false,"context_lines":[{"line_number":3219,"context_line":"        self.compute \u003d importutils.import_object(CONF.compute_manager)"},{"line_number":3220,"context_line":"        self._test_build_and_run_instance(mock_hooks)"},{"line_number":3221,"context_line":""},{"line_number":3222,"context_line":"    def _test_build_and_run_instance(self, mock_hooks):"},{"line_number":3223,"context_line":"        self.mox.StubOutWithMock(self.compute, \u0027_build_and_run_instance\u0027)"},{"line_number":3224,"context_line":"        self._do_build_instance_update()"},{"line_number":3225,"context_line":"        self.compute._build_and_run_instance(self.context, self.instance,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a1b2928_a43120ef","line":3222,"in_reply_to":"9a061dce_7c483188","updated":"2016-04-11 09:15:44.000000000","message":"Done","commit_id":"cce7a1dc0f22c0afda9d658fbeffb9dda55f6d6c"}]}
