)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"ed0989ae1df8fbd643f6d632570542e3bb5da067","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Optimize periodic call to get_by_host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an optimization suggested by John Garbutt in the review of"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/160513"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I998b6ac0ad6fd53769061ef66b9b19ba5e12391d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da9b358b_c6dbaf1a","line":9,"updated":"2015-03-30 14:06:51.000000000","message":"Do you want to throw in why John suggested this change? \n\n\"Most periodic tasks do this:\"","commit_id":"e2498b956a0b56239dd8b1efb8f96986c7939439"}],"nova/compute/manager.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67d287fd6b778673546db5ad524150dc6efb416f","unresolved":false,"context_lines":[{"line_number":2021,"context_line":"            return"},{"line_number":2022,"context_line":"        context \u003d context.elevated()"},{"line_number":2023,"context_line":"        instances \u003d objects.InstanceList.get_by_host(context, self.host,"},{"line_number":2024,"context_line":"                                                     expected_attrs\u003d[],"},{"line_number":2025,"context_line":"                                                     use_slave\u003dTrue)"},{"line_number":2026,"context_line":"        uuids \u003d [instance.uuid for instance in instances]"},{"line_number":2027,"context_line":"        self.scheduler_client.sync_instance_info(context, self.host, uuids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_9babf188","line":2024,"updated":"2015-03-23 08:29:10.000000000","message":"yup, this saves the joining of the info_cache and security groups","commit_id":"e2498b956a0b56239dd8b1efb8f96986c7939439"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"65ba2a201344679ae9f0f19ff3d6c803ce096f97","unresolved":false,"context_lines":[{"line_number":2375,"context_line":"        mock_get_by_host.return_value \u003d objects.InstanceList("},{"line_number":2376,"context_line":"                objects\u003d[inst1, inst2, inst3])"},{"line_number":2377,"context_line":"        self.compute._sync_scheduler_instance_info(self.context)"},{"line_number":2378,"context_line":"        args, kwargs \u003d mock_get_by_host.call_args"},{"line_number":2379,"context_line":"        self.assertIsInstance(args[0], self.context.__class__)"},{"line_number":2380,"context_line":"        self.assertEqual(args[1], self.compute.host)"},{"line_number":2381,"context_line":"        self.assertEqual(kwargs[\"expected_attrs\"], [])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa041b7_806a4b19","line":2378,"updated":"2015-04-01 17:48:31.000000000","message":"mock_get_by_host.assert_called_once_with I think is more normal here? but this is better.","commit_id":"dfffc9a33c2e75577804ea957c90dee48dc52204"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f45ab923bd969f87a78261241b2d1d692f4d4ead","unresolved":false,"context_lines":[{"line_number":2375,"context_line":"        mock_get_by_host.return_value \u003d objects.InstanceList("},{"line_number":2376,"context_line":"                objects\u003d[inst1, inst2, inst3])"},{"line_number":2377,"context_line":"        self.compute._sync_scheduler_instance_info(self.context)"},{"line_number":2378,"context_line":"        args, kwargs \u003d mock_get_by_host.call_args"},{"line_number":2379,"context_line":"        self.assertIsInstance(args[0], self.context.__class__)"},{"line_number":2380,"context_line":"        self.assertEqual(args[1], self.compute.host)"},{"line_number":2381,"context_line":"        self.assertEqual(kwargs[\"expected_attrs\"], [])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa041b7_71e5d7a6","line":2378,"in_reply_to":"baa041b7_3b4df072","updated":"2015-04-01 19:07:53.000000000","message":"Instead of doing that, I would rather mock the elevated() method to return a fake context so you can still use assert_called_once_with(fake, ...)","commit_id":"dfffc9a33c2e75577804ea957c90dee48dc52204"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"92de7dd924be96da1525ae19bc95ff426b5aa814","unresolved":false,"context_lines":[{"line_number":2375,"context_line":"        mock_get_by_host.return_value \u003d objects.InstanceList("},{"line_number":2376,"context_line":"                objects\u003d[inst1, inst2, inst3])"},{"line_number":2377,"context_line":"        self.compute._sync_scheduler_instance_info(self.context)"},{"line_number":2378,"context_line":"        args, kwargs \u003d mock_get_by_host.call_args"},{"line_number":2379,"context_line":"        self.assertIsInstance(args[0], self.context.__class__)"},{"line_number":2380,"context_line":"        self.assertEqual(args[1], self.compute.host)"},{"line_number":2381,"context_line":"        self.assertEqual(kwargs[\"expected_attrs\"], [])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa041b7_3b4df072","line":2378,"in_reply_to":"baa041b7_806a4b19","updated":"2015-04-01 17:57:33.000000000","message":"Yes, but the elevated context makes specifying the exact call list sketchy - you have to use mock.ANY, and I thought this was more explicit in that case.","commit_id":"dfffc9a33c2e75577804ea957c90dee48dc52204"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"54d01f8fd55989409ba44f9836b9b0dccb5efc96","unresolved":false,"context_lines":[{"line_number":2380,"context_line":"        mock_elevated.return_value \u003d \u0027fake_elevated\u0027"},{"line_number":2381,"context_line":"        self.compute._sync_scheduler_instance_info(self.context)"},{"line_number":2382,"context_line":"        mock_get_by_host.assert_called_once_with("},{"line_number":2383,"context_line":"                \u0027fake_elevated\u0027, self.compute.host, expected_attrs\u003d[],"},{"line_number":2384,"context_line":"                use_slave\u003dTrue)"},{"line_number":2385,"context_line":"        mock_sync.assert_called_once_with(\u0027fake_elevated\u0027, self.compute.host,"},{"line_number":2386,"context_line":"                                          exp_uuids)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa041b7_b7bb330e","line":2383,"updated":"2015-04-02 13:01:02.000000000","message":"The parameter should be a context object. It\u0027s work at here. But not sure we can use string instead of context object.","commit_id":"41e52f61a26aaa3622dbb0c8c456ac838a183ea5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1e99a147802bb20f1f85ccdd2d95c5bbe163249b","unresolved":false,"context_lines":[{"line_number":2380,"context_line":"        mock_elevated.return_value \u003d \u0027fake_elevated\u0027"},{"line_number":2381,"context_line":"        self.compute._sync_scheduler_instance_info(self.context)"},{"line_number":2382,"context_line":"        mock_get_by_host.assert_called_once_with("},{"line_number":2383,"context_line":"                \u0027fake_elevated\u0027, self.compute.host, expected_attrs\u003d[],"},{"line_number":2384,"context_line":"                use_slave\u003dTrue)"},{"line_number":2385,"context_line":"        mock_sync.assert_called_once_with(\u0027fake_elevated\u0027, self.compute.host,"},{"line_number":2386,"context_line":"                                          exp_uuids)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa041b7_8dc70212","line":2383,"in_reply_to":"baa041b7_b7bb330e","updated":"2015-04-02 14:02:44.000000000","message":"I\u0027m not sure how that makes the test any better; it\u0027s a mock being called with the expected value. But I can change it if it makes things clearer.","commit_id":"41e52f61a26aaa3622dbb0c8c456ac838a183ea5"}]}
