)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e70d57c2893b84e7c166a4df7384f7f18fe12b41","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Use improved instance_list module in compute API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This wires non-cellsv1 deployments up to use the new instance_list"},{"line_number":10,"context_line":"efficienter cross-cell listmaster 9000."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Changes to the unit tests are related to mocks that are no longer valid."},{"line_number":13,"context_line":"Also, I remove tests that did some cell behavior testing through the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7f515b1d_1d48d559","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"updated":"2017-09-28 15:33:06.000000000","message":"nice.\n\nis the 9000 an indication of the MTU that will need to be set to make use of this embiggerred efficiency?","commit_id":"1813b03b450ca27395c44d666b27306bcb240655"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"06175b31f7f57f7197e9cee6aea159194a04a795","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Use improved instance_list module in compute API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This wires non-cellsv1 deployments up to use the new instance_list"},{"line_number":10,"context_line":"efficienter cross-cell listmaster 9000."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Changes to the unit tests are related to mocks that are no longer valid."},{"line_number":13,"context_line":"Also, I remove tests that did some cell behavior testing through the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7f515b1d_9d5725cb","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"7f515b1d_1d48d559","updated":"2017-09-28 15:34:54.000000000","message":"No, it\u0027s 9000 because my marketing department told me that 9000 sounds cooler than \"version 2\". And I do everything my marketing department tells me to do.","commit_id":"1813b03b450ca27395c44d666b27306bcb240655"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d5239bcec4f8556c8f4305a39a7e2fc9343bec9c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Use improved instance_list module in compute API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This wires non-cellsv1 deployments up to use the new instance_list"},{"line_number":10,"context_line":"efficienter cross-cell listmaster 9000."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Changes to the unit tests are related to mocks that are no longer valid."},{"line_number":13,"context_line":"Also, I remove tests that did some cell behavior testing through the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7f515b1d_fd6739b6","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"7f515b1d_9d5725cb","updated":"2017-09-28 15:36:42.000000000","message":":P","commit_id":"1813b03b450ca27395c44d666b27306bcb240655"}],"nova/compute/api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cd0ae268a9ce8ab973e9edce7f0125e9e3e78397","unresolved":false,"context_lines":[{"line_number":2391,"context_line":"            fields.extend(expected_attrs)"},{"line_number":2392,"context_line":""},{"line_number":2393,"context_line":"        if CONF.cells.enable:"},{"line_number":2394,"context_line":"            insts \u003d self._do_old_style_instance_list_for_poor_cellsv1_users("},{"line_number":2395,"context_line":"                context, filters, limit, marker, expected_attrs, sort_keys,"},{"line_number":2396,"context_line":"                sort_dirs)"},{"line_number":2397,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df6247ed_2c59dbfd","line":2394,"range":{"start_line":2394,"start_character":25,"end_line":2394,"end_character":26},"updated":"2017-09-19 22:18:50.000000000","message":"This will be broken for the cells job.","commit_id":"cb9c747ce303d05f7f36fbb6eca1eaeb5bf8d633"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":2385,"context_line":"        # Only subtract from limit if it is not None"},{"line_number":2386,"context_line":"        limit \u003d (limit - len(build_req_instances)) if limit else limit"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"        fields \u003d [\u0027metadata\u0027, \u0027system_metadata\u0027, \u0027info_cache\u0027,"},{"line_number":2389,"context_line":"                  \u0027security_groups\u0027]"},{"line_number":2390,"context_line":"        if expected_attrs:"},{"line_number":2391,"context_line":"            fields.extend(expected_attrs)"},{"line_number":2392,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_23a12b95","line":2389,"range":{"start_line":2388,"start_character":8,"end_line":2389,"end_character":36},"updated":"2017-09-28 20:26:06.000000000","message":"OK I guess this is copied from _get_instances_by_filters.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":2392,"context_line":""},{"line_number":2393,"context_line":"        if CONF.cells.enable:"},{"line_number":2394,"context_line":"            insts \u003d self._do_old_style_instance_list_for_poor_cellsv1_users("},{"line_number":2395,"context_line":"                context, filters, limit, marker, expected_attrs, sort_keys,"},{"line_number":2396,"context_line":"                sort_dirs)"},{"line_number":2397,"context_line":"        else:"},{"line_number":2398,"context_line":"            insts \u003d instance_list.get_instance_objects_sorted("}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_43fb0778","line":2395,"range":{"start_line":2395,"start_character":49,"end_line":2395,"end_character":63},"updated":"2017-09-28 20:26:06.000000000","message":"I assume this is intentional that you\u0027re not using fields? If so, you could limit the fields variable creation up above to the else block below.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cb11ca6ca58d7bbfa740c800b418f2e3eea657cc","unresolved":false,"context_lines":[{"line_number":2392,"context_line":""},{"line_number":2393,"context_line":"        if CONF.cells.enable:"},{"line_number":2394,"context_line":"            insts \u003d self._do_old_style_instance_list_for_poor_cellsv1_users("},{"line_number":2395,"context_line":"                context, filters, limit, marker, expected_attrs, sort_keys,"},{"line_number":2396,"context_line":"                sort_dirs)"},{"line_number":2397,"context_line":"        else:"},{"line_number":2398,"context_line":"            insts \u003d instance_list.get_instance_objects_sorted("}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_7e57bccb","line":2395,"range":{"start_line":2395,"start_character":49,"end_line":2395,"end_character":63},"in_reply_to":"7f515b1d_43fb0778","updated":"2017-09-28 20:32:44.000000000","message":"Yeah because it does it in the call you note below and I was just trying to avoid touching any of that stuff and building deps between the two paths that don\u0027t need to be there after we nuke this from orbit.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":2498,"context_line":"    def _get_instances_by_filters(self, context, filters,"},{"line_number":2499,"context_line":"                                  limit\u003dNone, marker\u003dNone, expected_attrs\u003dNone,"},{"line_number":2500,"context_line":"                                  sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":2501,"context_line":"        fields \u003d [\u0027metadata\u0027, \u0027system_metadata\u0027, \u0027info_cache\u0027,"},{"line_number":2502,"context_line":"                  \u0027security_groups\u0027]"},{"line_number":2503,"context_line":"        if expected_attrs:"},{"line_number":2504,"context_line":"            fields.extend(expected_attrs)"},{"line_number":2505,"context_line":"        return objects.InstanceList.get_by_filters("},{"line_number":2506,"context_line":"            context, filters\u003dfilters, limit\u003dlimit, marker\u003dmarker,"},{"line_number":2507,"context_line":"            expected_attrs\u003dfields, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_4361c704","line":2504,"range":{"start_line":2501,"start_character":8,"end_line":2504,"end_character":41},"updated":"2017-09-28 20:26:06.000000000","message":"We could pull this into a common method such that if we ever need to add to or remove from this list, it\u0027s only in one place then. Like, I\u0027m pretty sure we don\u0027t need to join on system_metadata anymore when listing instances with details. Flavors are migrated now.\n\nAlternatively we could pass down the new \u0027fields\u0027 variable from get_all so it\u0027s used here. We can\u0027t do that while other things are calling this method though, but I think those other things aren\u0027t used anywhere, so that\u0027s all separate cleanup.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cb11ca6ca58d7bbfa740c800b418f2e3eea657cc","unresolved":false,"context_lines":[{"line_number":2498,"context_line":"    def _get_instances_by_filters(self, context, filters,"},{"line_number":2499,"context_line":"                                  limit\u003dNone, marker\u003dNone, expected_attrs\u003dNone,"},{"line_number":2500,"context_line":"                                  sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":2501,"context_line":"        fields \u003d [\u0027metadata\u0027, \u0027system_metadata\u0027, \u0027info_cache\u0027,"},{"line_number":2502,"context_line":"                  \u0027security_groups\u0027]"},{"line_number":2503,"context_line":"        if expected_attrs:"},{"line_number":2504,"context_line":"            fields.extend(expected_attrs)"},{"line_number":2505,"context_line":"        return objects.InstanceList.get_by_filters("},{"line_number":2506,"context_line":"            context, filters\u003dfilters, limit\u003dlimit, marker\u003dmarker,"},{"line_number":2507,"context_line":"            expected_attrs\u003dfields, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_3e4ca440","line":2504,"range":{"start_line":2501,"start_character":8,"end_line":2504,"end_character":41},"in_reply_to":"7f515b1d_4361c704","updated":"2017-09-28 20:32:44.000000000","message":"I was just trying to avoid touching the cellsv1 side of this and making the bits that we rip out less dependent on other things. If I split it out now, it becomes odd later when it\u0027s split out for no apparent reason. But if you think it\u0027s important it\u0027s easy to do.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":3741,"context_line":"        self.compute_rpcapi.detach_interface(context, instance\u003dinstance,"},{"line_number":3742,"context_line":"            port_id\u003dport_id)"},{"line_number":3743,"context_line":""},{"line_number":3744,"context_line":"    def get_instance_metadata(self, context, instance):"},{"line_number":3745,"context_line":"        \"\"\"Get all metadata associated with an instance.\"\"\""},{"line_number":3746,"context_line":"        return self.db.instance_metadata_get(context, instance.uuid)"},{"line_number":3747,"context_line":""},{"line_number":3748,"context_line":"    def get_all_instance_metadata(self, context, search_filts):"},{"line_number":3749,"context_line":"        return self._get_all_instance_metadata("},{"line_number":3750,"context_line":"            context, search_filts, metadata_type\u003d\u0027metadata\u0027)"},{"line_number":3751,"context_line":""},{"line_number":3752,"context_line":"    def get_all_system_metadata(self, context, search_filts):"},{"line_number":3753,"context_line":"        return self._get_all_instance_metadata("},{"line_number":3754,"context_line":"            context, search_filts, metadata_type\u003d\u0027system_metadata\u0027)"},{"line_number":3755,"context_line":""},{"line_number":3756,"context_line":"    def _get_all_instance_metadata(self, context, search_filts, metadata_type):"},{"line_number":3757,"context_line":"        \"\"\"Get all metadata.\"\"\""},{"line_number":3758,"context_line":"        instances \u003d self._get_instances_by_filters(context, filters\u003d{},"},{"line_number":3759,"context_line":"                                                   sort_keys\u003d[\u0027created_at\u0027],"},{"line_number":3760,"context_line":"                                                   sort_dirs\u003d[\u0027desc\u0027])"},{"line_number":3761,"context_line":"        return utils.filter_and_format_resource_metadata(\u0027instance\u0027, instances,"},{"line_number":3762,"context_line":"                search_filts, metadata_type)"},{"line_number":3763,"context_line":""},{"line_number":3764,"context_line":"    @check_instance_lock"},{"line_number":3765,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_032cefa9","line":3762,"range":{"start_line":3744,"start_character":4,"end_line":3762,"end_character":44},"updated":"2017-09-28 20:26:06.000000000","message":"I don\u0027t think any of this is used anywhere....just FYI.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41037f5814555712cc945daab4bf556fb18a0cb9","unresolved":false,"context_lines":[{"line_number":3741,"context_line":"        self.compute_rpcapi.detach_interface(context, instance\u003dinstance,"},{"line_number":3742,"context_line":"            port_id\u003dport_id)"},{"line_number":3743,"context_line":""},{"line_number":3744,"context_line":"    def get_instance_metadata(self, context, instance):"},{"line_number":3745,"context_line":"        \"\"\"Get all metadata associated with an instance.\"\"\""},{"line_number":3746,"context_line":"        return self.db.instance_metadata_get(context, instance.uuid)"},{"line_number":3747,"context_line":""},{"line_number":3748,"context_line":"    def get_all_instance_metadata(self, context, search_filts):"},{"line_number":3749,"context_line":"        return self._get_all_instance_metadata("},{"line_number":3750,"context_line":"            context, search_filts, metadata_type\u003d\u0027metadata\u0027)"},{"line_number":3751,"context_line":""},{"line_number":3752,"context_line":"    def get_all_system_metadata(self, context, search_filts):"},{"line_number":3753,"context_line":"        return self._get_all_instance_metadata("},{"line_number":3754,"context_line":"            context, search_filts, metadata_type\u003d\u0027system_metadata\u0027)"},{"line_number":3755,"context_line":""},{"line_number":3756,"context_line":"    def _get_all_instance_metadata(self, context, search_filts, metadata_type):"},{"line_number":3757,"context_line":"        \"\"\"Get all metadata.\"\"\""},{"line_number":3758,"context_line":"        instances \u003d self._get_instances_by_filters(context, filters\u003d{},"},{"line_number":3759,"context_line":"                                                   sort_keys\u003d[\u0027created_at\u0027],"},{"line_number":3760,"context_line":"                                                   sort_dirs\u003d[\u0027desc\u0027])"},{"line_number":3761,"context_line":"        return utils.filter_and_format_resource_metadata(\u0027instance\u0027, instances,"},{"line_number":3762,"context_line":"                search_filts, metadata_type)"},{"line_number":3763,"context_line":""},{"line_number":3764,"context_line":"    @check_instance_lock"},{"line_number":3765,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_fe6a8c7e","line":3762,"range":{"start_line":3744,"start_character":4,"end_line":3762,"end_character":44},"in_reply_to":"7f515b1d_032cefa9","updated":"2017-09-28 20:32:18.000000000","message":"Yup, this was all here for the ec2 API which is gone, and nothing in ec2api is calling any of this anymore.\n\nWhich means we likely don\u0027t need to default to join on metadata or system_metadata anymore.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":10896,"context_line":"            m_get.return_value \u003d objects.InstanceList(objects\u003d[])"},{"line_number":10897,"context_line":"            self.compute_api.get_all(c, search_opts\u003d{\u0027ip\u0027: \u0027.10\u0027}, limit\u003d1)"},{"line_number":10898,"context_line":"            self.assertEqual(1, m_get.call_count)"},{"line_number":10899,"context_line":"            args \u003d m_get.call_args[0]"},{"line_number":10900,"context_line":"            self.assertIsNone(args[2])"},{"line_number":10901,"context_line":""},{"line_number":10902,"context_line":"    @mock.patch.object(objects.BuildRequestList, \u0027get_by_filters\u0027)"},{"line_number":10903,"context_line":"    @mock.patch.object(objects.CellMapping, \u0027get_by_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_5e2400af","line":10900,"range":{"start_line":10899,"start_character":12,"end_line":10900,"end_character":38},"updated":"2017-09-28 20:26:06.000000000","message":"This gets a bit weird...could be more clear if the args were stored in variables before the assertions, or if you added comments.","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":10911,"context_line":"            m_get.return_value \u003d objects.InstanceList(objects\u003d[])"},{"line_number":10912,"context_line":"            self.compute_api.get_all(c, search_opts\u003d{}, limit\u003d1)"},{"line_number":10913,"context_line":"            self.assertEqual(1, m_get.call_count)"},{"line_number":10914,"context_line":"            args \u003d m_get.call_args[0]"},{"line_number":10915,"context_line":"            self.assertEqual(1, args[2])"},{"line_number":10916,"context_line":""},{"line_number":10917,"context_line":""},{"line_number":10918,"context_line":"def fake_rpc_method(self, context, method, **kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_fe328cf1","line":10915,"range":{"start_line":10914,"start_character":12,"end_line":10915,"end_character":40},"updated":"2017-09-28 20:26:06.000000000","message":"same","commit_id":"1eeed2e485cb61ab6d8bff735df9a710e4cb6dfa"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fdeae15fd7e59162df2b15e909ce2a80ea16edb","unresolved":false,"context_lines":[{"line_number":4818,"context_line":"                       return_value\u003dobjects.BuildRequestList(objects\u003d[]))"},{"line_number":4819,"context_line":"    @mock.patch.object(objects.CellMapping, \u0027get_by_uuid\u0027)"},{"line_number":4820,"context_line":"    @mock.patch.object(objects.CellMappingList, \u0027get_all\u0027)"},{"line_number":4821,"context_line":"    def test_get_all_cell0_marker_not_found(self, mock_cm_get_all,"},{"line_number":4822,"context_line":"                                            mock_cell_mapping_get,"},{"line_number":4823,"context_line":"                                            mock_buildreq_get,"},{"line_number":4824,"context_line":"                                            mock_target_cell):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_de447049","side":"PARENT","line":4821,"range":{"start_line":4821,"start_character":8,"end_line":4821,"end_character":43},"updated":"2017-09-28 20:26:06.000000000","message":"Hmm, this seems like a useful test - why not restrict this to just cells v1 or something?","commit_id":"ae4b5d0147cb3e345bf57034221e9c8fedf3cad2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cb11ca6ca58d7bbfa740c800b418f2e3eea657cc","unresolved":false,"context_lines":[{"line_number":4818,"context_line":"                       return_value\u003dobjects.BuildRequestList(objects\u003d[]))"},{"line_number":4819,"context_line":"    @mock.patch.object(objects.CellMapping, \u0027get_by_uuid\u0027)"},{"line_number":4820,"context_line":"    @mock.patch.object(objects.CellMappingList, \u0027get_all\u0027)"},{"line_number":4821,"context_line":"    def test_get_all_cell0_marker_not_found(self, mock_cm_get_all,"},{"line_number":4822,"context_line":"                                            mock_cell_mapping_get,"},{"line_number":4823,"context_line":"                                            mock_buildreq_get,"},{"line_number":4824,"context_line":"                                            mock_target_cell):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_1e72087c","side":"PARENT","line":4821,"range":{"start_line":4821,"start_character":8,"end_line":4821,"end_character":43},"in_reply_to":"7f515b1d_9eef181d","updated":"2017-09-28 20:32:44.000000000","message":"Yeah","commit_id":"ae4b5d0147cb3e345bf57034221e9c8fedf3cad2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f042f77a3f77c15e3db80a5be7e517cabeda125a","unresolved":false,"context_lines":[{"line_number":4818,"context_line":"                       return_value\u003dobjects.BuildRequestList(objects\u003d[]))"},{"line_number":4819,"context_line":"    @mock.patch.object(objects.CellMapping, \u0027get_by_uuid\u0027)"},{"line_number":4820,"context_line":"    @mock.patch.object(objects.CellMappingList, \u0027get_all\u0027)"},{"line_number":4821,"context_line":"    def test_get_all_cell0_marker_not_found(self, mock_cm_get_all,"},{"line_number":4822,"context_line":"                                            mock_cell_mapping_get,"},{"line_number":4823,"context_line":"                                            mock_buildreq_get,"},{"line_number":4824,"context_line":"                                            mock_target_cell):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_9eef181d","side":"PARENT","line":4821,"range":{"start_line":4821,"start_character":8,"end_line":4821,"end_character":43},"in_reply_to":"7f515b1d_de447049","updated":"2017-09-28 20:27:04.000000000","message":"Can this move to Cellsv1DeprecatedTestMixIn?","commit_id":"ae4b5d0147cb3e345bf57034221e9c8fedf3cad2"}]}
