)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eab906005b394200ee7e7b791b21e27b1e86e0bc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Nova shelve creates duplicated images in cells"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calling super method in cells_api.py causes duplicated method call in"},{"line_number":10,"context_line":"nova-api and nova-cell. I found the problem in shelve and unshelve,"},{"line_number":11,"context_line":"so fix about them. (Nova cell v1 may have similar problems)"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8030b6ffc1710bca733e38a9a6fb0d7de5f24268"},{"line_number":14,"context_line":"Closes-bug: #1588657"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a8ec9b2_84bf435f","line":11,"range":{"start_line":10,"start_character":24,"end_line":11,"end_character":18},"updated":"2016-09-21 02:13:48.000000000","message":"As noted inline, there are other API methods doing the same thing - why aren\u0027t those issues?","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eab906005b394200ee7e7b791b21e27b1e86e0bc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calling super method in cells_api.py causes duplicated method call in"},{"line_number":10,"context_line":"nova-api and nova-cell. I found the problem in shelve and unshelve,"},{"line_number":11,"context_line":"so fix about them. (Nova cell v1 may have similar problems)"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8030b6ffc1710bca733e38a9a6fb0d7de5f24268"},{"line_number":14,"context_line":"Closes-bug: #1588657"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a8ec9b2_a4b6ff87","line":11,"range":{"start_line":11,"start_character":19,"end_line":11,"end_character":58},"updated":"2016-09-21 02:13:48.000000000","message":"This is cells v1 that you\u0027re touching so I\u0027m not sure why this comment is in here.","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ecb76140574df2d91bb14719e2797a6588a51473","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calling super method in cells_api.py causes duplicated method call in"},{"line_number":10,"context_line":"nova-api and nova-cell. I found the problem in shelve and unshelve,"},{"line_number":11,"context_line":"so fix about them. (Nova cell v1 may have similar problems)"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I8030b6ffc1710bca733e38a9a6fb0d7de5f24268"},{"line_number":14,"context_line":"Closes-bug: #1588657"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a8ec9b2_2ede2c11","line":11,"range":{"start_line":11,"start_character":19,"end_line":11,"end_character":58},"in_reply_to":"7a8ec9b2_a4b6ff87","updated":"2016-09-21 12:40:21.000000000","message":"Yeah, the cell v1 comment is odd.","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"}],"nova/compute/cells_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eab906005b394200ee7e7b791b21e27b1e86e0bc","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    def rescue(self, context, instance, rescue_password\u003dNone,"},{"line_number":334,"context_line":"               rescue_image_ref\u003dNone, clean_shutdown\u003dTrue):"},{"line_number":335,"context_line":"        \"\"\"Rescue the given instance.\"\"\""},{"line_number":336,"context_line":"        super(ComputeCellsAPI, self).rescue(context, instance,"},{"line_number":337,"context_line":"                rescue_password\u003drescue_password,"},{"line_number":338,"context_line":"                rescue_image_ref\u003drescue_image_ref,"},{"line_number":339,"context_line":"                clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_04fed337","line":336,"updated":"2016-09-21 02:13:48.000000000","message":"So what about this?","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ecb76140574df2d91bb14719e2797a6588a51473","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    def rescue(self, context, instance, rescue_password\u003dNone,"},{"line_number":334,"context_line":"               rescue_image_ref\u003dNone, clean_shutdown\u003dTrue):"},{"line_number":335,"context_line":"        \"\"\"Rescue the given instance.\"\"\""},{"line_number":336,"context_line":"        super(ComputeCellsAPI, self).rescue(context, instance,"},{"line_number":337,"context_line":"                rescue_password\u003drescue_password,"},{"line_number":338,"context_line":"                rescue_image_ref\u003drescue_image_ref,"},{"line_number":339,"context_line":"                clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_0e9a506e","line":336,"in_reply_to":"7a8ec9b2_04fed337","updated":"2016-09-21 12:40:21.000000000","message":"These three calls rescue/unrescue/shelve_offload very quickly become noops in the super class. They cause some instance state changes or check volume info but don\u0027t have any harmful side effect. Shelve is different because it creates an image in the super class and then creates another image after being cast to the cell.","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"8e2751eb8665fee9bc312aeb2a4690ab67db6f14","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    def rescue(self, context, instance, rescue_password\u003dNone,"},{"line_number":334,"context_line":"               rescue_image_ref\u003dNone, clean_shutdown\u003dTrue):"},{"line_number":335,"context_line":"        \"\"\"Rescue the given instance.\"\"\""},{"line_number":336,"context_line":"        super(ComputeCellsAPI, self).rescue(context, instance,"},{"line_number":337,"context_line":"                rescue_password\u003drescue_password,"},{"line_number":338,"context_line":"                rescue_image_ref\u003drescue_image_ref,"},{"line_number":339,"context_line":"                clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_6e091484","line":336,"in_reply_to":"7a8ec9b2_0e9a506e","updated":"2016-09-21 12:41:12.000000000","message":"I should add that it should not be a problem to remove the super() calls from those methods, but they\u0027re not buggy for having them.","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eab906005b394200ee7e7b791b21e27b1e86e0bc","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    @check_instance_cell"},{"line_number":346,"context_line":"    def unrescue(self, context, instance):"},{"line_number":347,"context_line":"        \"\"\"Unrescue the given instance.\"\"\""},{"line_number":348,"context_line":"        super(ComputeCellsAPI, self).unrescue(context, instance)"},{"line_number":349,"context_line":"        self._cast_to_cells(context, instance, \u0027unrescue\u0027)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @check_instance_cell"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_24fd8f3a","line":348,"updated":"2016-09-21 02:13:48.000000000","message":"And this?","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eab906005b394200ee7e7b791b21e27b1e86e0bc","unresolved":false,"context_lines":[{"line_number":359,"context_line":"    @check_instance_cell"},{"line_number":360,"context_line":"    def shelve_offload(self, context, instance, clean_shutdown\u003dTrue):"},{"line_number":361,"context_line":"        \"\"\"Offload the shelved instance.\"\"\""},{"line_number":362,"context_line":"        super(ComputeCellsAPI, self).shelve_offload(context, instance,"},{"line_number":363,"context_line":"                clean_shutdown\u003dclean_shutdown)"},{"line_number":364,"context_line":"        self._cast_to_cells(context, instance, \u0027shelve_offload\u0027,"},{"line_number":365,"context_line":"                clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_8498231d","line":362,"updated":"2016-09-21 02:13:48.000000000","message":"What about this?","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5db4c74634164765122dffc8aa18a402c7605e27","unresolved":false,"context_lines":[{"line_number":4148,"context_line":"            self.context, requested_networks, 5)"},{"line_number":4149,"context_line":"        self.assertEqual(5, count)"},{"line_number":4150,"context_line":""},{"line_number":4151,"context_line":"    def _test_shelve(self, vm_state\u003dvm_states.ACTIVE,"},{"line_number":4152,"context_line":"                     boot_from_volume\u003dFalse, clean_shutdown\u003dTrue):"},{"line_number":4153,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4154,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_2c1dac66","line":4151,"updated":"2016-09-09 17:17:32.000000000","message":"Because your test name begins with _ it will not get run.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"3c7bad61edc29d1d637e902530639b728800d566","unresolved":false,"context_lines":[{"line_number":4148,"context_line":"            self.context, requested_networks, 5)"},{"line_number":4149,"context_line":"        self.assertEqual(5, count)"},{"line_number":4150,"context_line":""},{"line_number":4151,"context_line":"    def _test_shelve(self, vm_state\u003dvm_states.ACTIVE,"},{"line_number":4152,"context_line":"                     boot_from_volume\u003dFalse, clean_shutdown\u003dTrue):"},{"line_number":4153,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4154,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_96bf7e5f","line":4151,"in_reply_to":"9a89bdaa_2c1dac66","updated":"2016-09-12 06:21:19.000000000","message":"This is not a test case.\nThis method override _test_shelve() included in super class \"_ComputeAPIUnitTestMixIn\" for Cells.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5b84ac1ca9a07c36fb96bc0036e9145e00ede37f","unresolved":false,"context_lines":[{"line_number":4148,"context_line":"            self.context, requested_networks, 5)"},{"line_number":4149,"context_line":"        self.assertEqual(5, count)"},{"line_number":4150,"context_line":""},{"line_number":4151,"context_line":"    def _test_shelve(self, vm_state\u003dvm_states.ACTIVE,"},{"line_number":4152,"context_line":"                     boot_from_volume\u003dFalse, clean_shutdown\u003dTrue):"},{"line_number":4153,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4154,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_0e532e3a","line":4151,"in_reply_to":"9a89bdaa_96bf7e5f","updated":"2016-09-12 16:53:34.000000000","message":"Okay. A comment would be useful here to indicate that. It\u0027s not clear at a quick glance how this gets called.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5db4c74634164765122dffc8aa18a402c7605e27","unresolved":false,"context_lines":[{"line_number":4153,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4154,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"},{"line_number":4155,"context_line":"        instance \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":4156,"context_line":"        with test.nested("},{"line_number":4157,"context_line":"            mock.patch.object(self.compute_api, \u0027_cast_to_cells\u0027)"},{"line_number":4158,"context_line":"        ) as ("},{"line_number":4159,"context_line":"            cast_to_cells,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_0c3708e4","line":4156,"updated":"2016-09-09 17:17:32.000000000","message":"You don\u0027t need test.nested. You can with \"with mock.patch.object(...) as cast_to_cells:\"","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"3c7bad61edc29d1d637e902530639b728800d566","unresolved":false,"context_lines":[{"line_number":4153,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4154,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"},{"line_number":4155,"context_line":"        instance \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":4156,"context_line":"        with test.nested("},{"line_number":4157,"context_line":"            mock.patch.object(self.compute_api, \u0027_cast_to_cells\u0027)"},{"line_number":4158,"context_line":"        ) as ("},{"line_number":4159,"context_line":"            cast_to_cells,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_b6b64288","line":4156,"in_reply_to":"9a89bdaa_0c3708e4","updated":"2016-09-12 06:21:19.000000000","message":"Thanks for suggesting.\nI fix it.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"d11aee1b28e480cd27395bf639f42a197991ceaa","unresolved":false,"context_lines":[{"line_number":4531,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4532,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"},{"line_number":4533,"context_line":"        instance \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":4534,"context_line":"        with mock.patch.object(self.compute_api, \u0027_cast_to_cells\u0027) as\\"},{"line_number":4535,"context_line":"                cast_to_cells:"},{"line_number":4536,"context_line":"            self.compute_api.shelve(self.context, instance,"},{"line_number":4537,"context_line":"                                    clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_ee036a0e","line":4534,"range":{"start_line":4534,"start_character":69,"end_line":4534,"end_character":70},"updated":"2016-09-12 16:55:06.000000000","message":"If at all possible we try to avoid line continuations in Nova. You can split the line before the \u0027_cast_to_cells\u0027 argument to avoid it.","commit_id":"25f6a2fccf6f9357cc749ffe90576fae6a63c1fc"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d7b47486f717b7f7e80756cf164cc2b62ae11877","unresolved":false,"context_lines":[{"line_number":4531,"context_line":"        params \u003d dict(task_state\u003dNone, vm_state\u003dvm_state,"},{"line_number":4532,"context_line":"                      display_name\u003d\u0027fake-name\u0027)"},{"line_number":4533,"context_line":"        instance \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":4534,"context_line":"        with mock.patch.object(self.compute_api, \u0027_cast_to_cells\u0027) as\\"},{"line_number":4535,"context_line":"                cast_to_cells:"},{"line_number":4536,"context_line":"            self.compute_api.shelve(self.context, instance,"},{"line_number":4537,"context_line":"                                    clean_shutdown\u003dclean_shutdown)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_5eb95214","line":4534,"range":{"start_line":4534,"start_character":69,"end_line":4534,"end_character":70},"in_reply_to":"9a89bdaa_ee036a0e","updated":"2016-09-13 00:34:51.000000000","message":"I fix it.","commit_id":"25f6a2fccf6f9357cc749ffe90576fae6a63c1fc"}],"nova/tests/unit/compute/test_compute_cells.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"fb9c310d03fa08ecc29537c04ed348043b9b04f9","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        def _fake_validate_cell(*args, **kwargs):"},{"line_number":348,"context_line":"            return"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        self.stubs.Set(self.compute_api, \u0027_validate_cell\u0027,"},{"line_number":351,"context_line":"                       _fake_validate_cell)"},{"line_number":352,"context_line":"        deploy_stubs(self.stubs, self.compute_api)"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_b01f7108","line":350,"range":{"start_line":350,"start_character":13,"end_line":350,"end_character":22},"updated":"2016-08-03 07:26:40.000000000","message":"Use \u0027stub_out\u0027 instead of \u0027stubs.Set\u0027.\n(Don\u0027t use mox stub.)","commit_id":"7667cb38a20f9d61f2cf39746cf75287f4de3ffd"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"fb9c310d03fa08ecc29537c04ed348043b9b04f9","unresolved":false,"context_lines":[{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.compute_api.unshelve(self.context, instance)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        self.assertEqual(instance.task_state, task_states.UNSHELVING)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def tearDown(self):"},{"line_number":372,"context_line":"        global ORIG_COMPUTE_API"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_d08f85ca","line":369,"range":{"start_line":369,"start_character":25,"end_line":369,"end_character":68},"updated":"2016-08-03 07:26:40.000000000","message":"nit: assertEqual(expected, actual)","commit_id":"7667cb38a20f9d61f2cf39746cf75287f4de3ffd"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5db4c74634164765122dffc8aa18a402c7605e27","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                  cells_enabled\u003dTrue)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"class CellsShelveComputeAPITestCase(test_shelve.ShelveComputeAPITestCase):"},{"line_number":376,"context_line":"    def setUp(self):"},{"line_number":377,"context_line":"        super(CellsShelveComputeAPITestCase, self).setUp()"},{"line_number":378,"context_line":"        global ORIG_COMPUTE_API"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_ac0e1ce3","line":375,"range":{"start_line":375,"start_character":36,"end_line":375,"end_character":72},"updated":"2016-09-09 17:17:32.000000000","message":"I\u0027m not sure why you inherit from this class. I do not see anything from this class being used.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"3c7bad61edc29d1d637e902530639b728800d566","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                  cells_enabled\u003dTrue)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"class CellsShelveComputeAPITestCase(test_shelve.ShelveComputeAPITestCase):"},{"line_number":376,"context_line":"    def setUp(self):"},{"line_number":377,"context_line":"        super(CellsShelveComputeAPITestCase, self).setUp()"},{"line_number":378,"context_line":"        global ORIG_COMPUTE_API"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_b909d32e","line":375,"range":{"start_line":375,"start_character":36,"end_line":375,"end_character":72},"in_reply_to":"9a89bdaa_ac0e1ce3","updated":"2016-09-12 06:21:19.000000000","message":"I\u0027d like to run tests that are included in the super class.\nThis is the reason why I inherit.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5b84ac1ca9a07c36fb96bc0036e9145e00ede37f","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                  cells_enabled\u003dTrue)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"class CellsShelveComputeAPITestCase(test_shelve.ShelveComputeAPITestCase):"},{"line_number":376,"context_line":"    def setUp(self):"},{"line_number":377,"context_line":"        super(CellsShelveComputeAPITestCase, self).setUp()"},{"line_number":378,"context_line":"        global ORIG_COMPUTE_API"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_6e6afaee","line":375,"range":{"start_line":375,"start_character":36,"end_line":375,"end_character":72},"in_reply_to":"9a89bdaa_b909d32e","updated":"2016-09-12 16:53:34.000000000","message":"I see. I missed that test_shelve was not being overridden here.","commit_id":"c14a65f2327d6c0e356caf6f6b30314ba336f5d0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e468f1643c4de26ce631493eae3f2e585c25399","unresolved":false,"context_lines":[{"line_number":430,"context_line":"class CellsShelveComputeAPITestCase(test_shelve.ShelveComputeAPITestCase):"},{"line_number":431,"context_line":"    def setUp(self):"},{"line_number":432,"context_line":"        super(CellsShelveComputeAPITestCase, self).setUp()"},{"line_number":433,"context_line":"        global ORIG_COMPUTE_API"},{"line_number":434,"context_line":"        ORIG_COMPUTE_API \u003d self.compute_api"},{"line_number":435,"context_line":"        self.compute_api \u003d compute_cells_api.ComputeCellsAPI()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        def _fake_validate_cell(*args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_26bc6cba","line":434,"range":{"start_line":433,"start_character":8,"end_line":434,"end_character":43},"updated":"2016-09-21 23:53:24.000000000","message":"yikes....but I guess this is the same above.","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e468f1643c4de26ce631493eae3f2e585c25399","unresolved":false,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        self.assertEqual(task_states.UNSHELVING, instance.task_state)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def tearDown(self):"},{"line_number":468,"context_line":"        global ORIG_COMPUTE_API"},{"line_number":469,"context_line":"        self.compute_api \u003d ORIG_COMPUTE_API"},{"line_number":470,"context_line":"        super(CellsShelveComputeAPITestCase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_66b2f4e6","line":467,"updated":"2016-09-21 23:53:24.000000000","message":"tearDown should come right after setUp...","commit_id":"32be8108366bf47f0066deb53a5330379f6fd10c"}]}
