)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"51a30bf4c42c72f4a5085eadf83648e94e2c90f8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"plugins are not indexed as a part of indexing the parent since the"},{"line_number":13,"context_line":"reason for doing that in the past was refactored some time ago. Only"},{"line_number":14,"context_line":"types specified in --type will be indexed from API; others from an old"},{"line_number":15,"context_line":"index."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This patch removes initial_indexing since it no longer has use, and"},{"line_number":18,"context_line":"renames setup_data to index_initial_data."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3aaa91ec_dedc2a48","line":15,"updated":"2016-06-24 19:26:32.000000000","message":"Can you provide a reference to the fix/","commit_id":"2be34741307995e15bcdc3fa51a27a7268422d48"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5b7becebe18e82452ec606b6f36143a71b5b842f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"plugins are not indexed as a part of indexing the parent since the"},{"line_number":13,"context_line":"reason for doing that in the past was refactored some time ago. Only"},{"line_number":14,"context_line":"types specified in --type will be indexed from API; others from an old"},{"line_number":15,"context_line":"index."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This patch removes initial_indexing since it no longer has use, and"},{"line_number":18,"context_line":"renames setup_data to index_initial_data."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3aaa91ec_e57b5179","line":15,"in_reply_to":"3aaa91ec_dedc2a48","updated":"2016-06-24 20:03:59.000000000","message":"Done","commit_id":"2be34741307995e15bcdc3fa51a27a7268422d48"}],"releasenotes/notes/bug-1584148-indexing-type-07ea84db2e6c1da4.yaml":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f219762e8e4d14d9d32c36f77386a31b0a38c544","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"  No longer index the data of child plugins as part of"},{"line_number":4,"context_line":"  indexing a parent plugin."},{"line_number":5,"context_line":"fixes:"},{"line_number":6,"context_line":"  - Fixes an issue whereby index sync --type with a parent"},{"line_number":7,"context_line":"    plugin resulted in Elasticsearch ConflictErrors."},{"line_number":8,"context_line":"other:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3aaa91ec_d97b4b28","line":5,"updated":"2016-06-27 22:38:21.000000000","message":"We should probably put the Bug ID in the fix. Bug: 1584148 - \u003cnotes\u003e\n\nIt creates a nicer format.  See: http://docs.openstack.org/releasenotes/searchlight/mitaka.html","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f219762e8e4d14d9d32c36f77386a31b0a38c544","unresolved":false,"context_lines":[{"line_number":5,"context_line":"fixes:"},{"line_number":6,"context_line":"  - Fixes an issue whereby index sync --type with a parent"},{"line_number":7,"context_line":"    plugin resulted in Elasticsearch ConflictErrors."},{"line_number":8,"context_line":"other:"},{"line_number":9,"context_line":"  - Prior to this patch, indexing a parent plugin also"},{"line_number":10,"context_line":"    indexed the data for any children it had. That is no"},{"line_number":11,"context_line":"    longer the case. A later patch will add support for"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3aaa91ec_3909afde","line":8,"updated":"2016-06-27 22:38:21.000000000","message":"This is okay for now, but be aware that at release time all of the release notes get combined into one big release note.  References like this may be confusing.","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"f571bb39bbf0edaa3793627b47fe15d61f9b87d9","unresolved":false,"context_lines":[{"line_number":5,"context_line":"fixes:"},{"line_number":6,"context_line":"  - Fixes an issue whereby index sync --type with a parent"},{"line_number":7,"context_line":"    plugin resulted in Elasticsearch ConflictErrors."},{"line_number":8,"context_line":"other:"},{"line_number":9,"context_line":"  - Prior to this patch, indexing a parent plugin also"},{"line_number":10,"context_line":"    indexed the data for any children it had. That is no"},{"line_number":11,"context_line":"    longer the case. A later patch will add support for"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3aaa91ec_5b103d00","line":8,"in_reply_to":"3aaa91ec_3909afde","updated":"2016-06-30 19:36:10.000000000","message":"Thanks, reworded","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"}],"searchlight/cmd/manage.py":[{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"a785e0003470585f65fd190e4df07d1a4e53b8f8","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                return _format_plugin(selection[1].obj)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            # Grab the first element in the first (and only) tuple."},{"line_number":164,"context_line":"            group \u003d resource_groups[0][0]"},{"line_number":165,"context_line":"            print(\"\\nAll resource types within Resource Group \\\"%(group)s\\\"\""},{"line_number":166,"context_line":"                  \" must be re-indexed.\\n\" % {\u0027group\u0027: group})"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_c11462ea","line":164,"updated":"2016-06-30 09:54:56.000000000","message":"I always find this a little confusing. Suppose we are reindexing several resource groups, only one group name will be displayed. Sometimes makes me think something is wrong.","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"f571bb39bbf0edaa3793627b47fe15d61f9b87d9","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                return _format_plugin(selection[1].obj)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            # Grab the first element in the first (and only) tuple."},{"line_number":164,"context_line":"            group \u003d resource_groups[0][0]"},{"line_number":165,"context_line":"            print(\"\\nAll resource types within Resource Group \\\"%(group)s\\\"\""},{"line_number":166,"context_line":"                  \" must be re-indexed.\\n\" % {\u0027group\u0027: group})"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_fbd92923","line":164,"in_reply_to":"3aaa91ec_c11462ea","updated":"2016-06-30 19:36:10.000000000","message":"Yeah, this does look odd, will tweak it","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f219762e8e4d14d9d32c36f77386a31b0a38c544","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \u0027\\n\u0027.join(map(format_selection, sorted(display_plugins))))"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            ans \u003d six.moves.input("},{"line_number":175,"context_line":"                \"Indexing will NOT delete existing data or mapping(s). It \""},{"line_number":176,"context_line":"                \"will reindex all resources. \\nUse \u0027--force\u0027 to suppress \""},{"line_number":177,"context_line":"                \"this message.\\nOK to continue? [y/n]: \")"},{"line_number":178,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":179,"context_line":"                print(\"Aborting.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_8472faab","line":176,"range":{"start_line":175,"start_character":17,"end_line":176,"end_character":44},"updated":"2016-06-27 22:38:21.000000000","message":"This message is quite misleading these days. It actually will update the mappings and for the chosen type it will \"delete\" the data. Coupled with the new messages above, it is actually rather confusing.\n\nWould you consider the following output:\n\nAll resource types within Resource Group \"searchlight\" must be re-indexed.\n\nThe following Resource Types will be completely indexed from their respective source. This will completely clear and reload all data for these resource types.\n\n  OS::Nova::Server (searchlight)\n\nThe following types will be reindexed from existing ElasticSearch data. This will not delete any existing data for these resource types.\n\n  OS::Cinder::Volume (searchlight)\n      --\u003e OS::Cinder::Snapshot (searchlight)\n  OS::Designate::Zone (searchlight)\n      --\u003e OS::Designate::RecordSet (searchlight)\n  OS::Glance::Image (searchlight)\n  OS::Glance::Metadef (searchlight)\n  OS::Neutron::Net (searchlight)\n      --\u003e OS::Neutron::Subnet (searchlight)\n      --\u003e OS::Neutron::Port (searchlight)\n  OS::Neutron::Router (searchlight)\n  OS::Nova::Hypervisor (searchlight)\n\nUse \u0027--force\u0027 to suppress this message.\nOK to continue? [y/n]:","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"f571bb39bbf0edaa3793627b47fe15d61f9b87d9","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \u0027\\n\u0027.join(map(format_selection, sorted(display_plugins))))"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            ans \u003d six.moves.input("},{"line_number":175,"context_line":"                \"Indexing will NOT delete existing data or mapping(s). It \""},{"line_number":176,"context_line":"                \"will reindex all resources. \\nUse \u0027--force\u0027 to suppress \""},{"line_number":177,"context_line":"                \"this message.\\nOK to continue? [y/n]: \")"},{"line_number":178,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":179,"context_line":"                print(\"Aborting.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_9bdaa576","line":176,"range":{"start_line":175,"start_character":17,"end_line":176,"end_character":44},"in_reply_to":"3aaa91ec_84131a0d","updated":"2016-06-30 19:36:10.000000000","message":"Yeah, splitting them up gets a bit complicated. Agree that the first line is a bit odd.","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"5809e8f9c992f6ad2ea085a7bcc87fa0ec8d9ada","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                  \u0027\\n\u0027.join(map(format_selection, sorted(display_plugins))))"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            ans \u003d six.moves.input("},{"line_number":175,"context_line":"                \"Indexing will NOT delete existing data or mapping(s). It \""},{"line_number":176,"context_line":"                \"will reindex all resources. \\nUse \u0027--force\u0027 to suppress \""},{"line_number":177,"context_line":"                \"this message.\\nOK to continue? [y/n]: \")"},{"line_number":178,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":179,"context_line":"                print(\"Aborting.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_84131a0d","line":176,"range":{"start_line":175,"start_character":17,"end_line":176,"end_character":44},"in_reply_to":"3aaa91ec_8472faab","updated":"2016-06-27 22:42:15.000000000","message":"In trying it out further, I see that the * allows you to still show parent child relationships.  It is hard to read, though.  In either case, line 175 is still misleading.","commit_id":"a223b4af58e61012f04e089dd3a43dd7d8d177f7"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"f1238e95da80af7f58c61a511605427aa39fb2f8","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            all_res_groups \u003d set(grp[0] for grp in resource_groups)"},{"line_number":164,"context_line":"            print(\"\\nResources in these groups must be re-indexed: %s.\" %"},{"line_number":165,"context_line":"                  \", \".join(all_res_groups))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            if es_reindex:"},{"line_number":168,"context_line":"                print(\"Any types marked with * will be reindexed from \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_64968bf1","line":165,"updated":"2016-07-11 20:24:24.000000000","message":"When there are a lot of resource groups, they will all be listed on the same line. For example, if we have each resource type in it\u0027s own group, this line will look like this:\n\nResources in these groups must be re-indexed: searchlight, sl-glance, sl-nova, sl-designate, sl-cinder, sl-neutron.\n\nWhich is hard to read. Placing each group on it\u0027s own line would be easier to read. Something like this:\n\nResources in these groups must be re-indexed:\n    searchlight\n    sl-glance\n    sl-nova\n    sl-designate\n    sl-cinder\n    sl-neutron.","commit_id":"5bef1fbf39f4b0272e61a0f98a4b84a25b642250"}],"searchlight/elasticsearch/plugins/base.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"22ddacf608d5cbb74c5608e6d58f37c9200ed965","unresolved":false,"context_lines":[{"line_number":122,"context_line":"           gets associated with an alias. Prepping means we will add"},{"line_number":123,"context_line":"           the settings and mapping for this listener\u0027s document type."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        if self.parent_plugin_type():"},{"line_number":126,"context_line":"            LOG.debug(_LI("},{"line_number":127,"context_line":"                \"Skipping index prep for %(doc_type)s; will be handled by \""},{"line_number":128,"context_line":"                \"parent (%(parent_type)s)\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_e64878b5","line":125,"updated":"2016-06-24 21:12:44.000000000","message":"I went through this a couple of times. Even though we are now indexing all children independent of the parent, we still want to create the index for the parent only. Just making sure we\u0027re consistent.","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ebd7514cb3e6a493f68d1f7774cf2f46177bbb42","unresolved":false,"context_lines":[{"line_number":122,"context_line":"           gets associated with an alias. Prepping means we will add"},{"line_number":123,"context_line":"           the settings and mapping for this listener\u0027s document type."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        if self.parent_plugin_type():"},{"line_number":126,"context_line":"            LOG.debug(_LI("},{"line_number":127,"context_line":"                \"Skipping index prep for %(doc_type)s; will be handled by \""},{"line_number":128,"context_line":"                \"parent (%(parent_type)s)\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_2cc0a14f","line":125,"in_reply_to":"3aaa91ec_e64878b5","updated":"2016-06-24 22:15:23.000000000","message":"We are forced to create the mapping for children and parents simultaneously by Elasticsearch; the same restriction doesn\u0027t need to apply to the data. Originally i think mapping and data happened in one step.","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"22ddacf608d5cbb74c5608e6d58f37c9200ed965","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    def index_initial_data(self, index_name\u003dNone):"},{"line_number":158,"context_line":"        \"\"\"Insert all objects from a plugin (generally by API requests to its"},{"line_number":159,"context_line":"        service) into an index assumed to have been created with"},{"line_number":160,"context_line":"        prepare_index. If index_name is not set, the searchlight-listener alias"},{"line_number":161,"context_line":"        will be used instead."},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        object_list \u003d self.get_objects()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_66eac875","line":160,"range":{"start_line":160,"start_character":53,"end_line":160,"end_character":73},"updated":"2016-06-24 21:12:44.000000000","message":"Nit. This isn\u0027t technically \"searchlight-listener\". But rather the listener-based alias. The user can rename it to be anything.","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"}],"searchlight/tests/unit/test_glance_image_plugin.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"22ddacf608d5cbb74c5608e6d58f37c9200ed965","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        serialized \u003d self.plugin.serialize(self.kernel_ramdisk_image)"},{"line_number":295,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def test_setup_data(self):"},{"line_number":298,"context_line":"        \"\"\"Tests initial data load.\"\"\""},{"line_number":299,"context_line":"        image_member_mocks \u003d ["},{"line_number":300,"context_line":"            self.members_image_members"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_869ed404","line":297,"range":{"start_line":297,"start_character":13,"end_line":297,"end_character":23},"updated":"2016-06-24 21:12:44.000000000","message":"Should be \"test_index_initial_data\".","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ebd7514cb3e6a493f68d1f7774cf2f46177bbb42","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        serialized \u003d self.plugin.serialize(self.kernel_ramdisk_image)"},{"line_number":295,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def test_setup_data(self):"},{"line_number":298,"context_line":"        \"\"\"Tests initial data load.\"\"\""},{"line_number":299,"context_line":"        image_member_mocks \u003d ["},{"line_number":300,"context_line":"            self.members_image_members"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_ccd11d25","line":297,"range":{"start_line":297,"start_character":13,"end_line":297,"end_character":23},"in_reply_to":"3aaa91ec_869ed404","updated":"2016-06-24 22:15:23.000000000","message":"Done","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"}],"searchlight/tests/unit/test_glance_metadefs_plugin.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"22ddacf608d5cbb74c5608e6d58f37c9200ed965","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            serialized \u003d self.plugin.serialize(ns)"},{"line_number":349,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    def test_setup_data(self):"},{"line_number":352,"context_line":"        with mock.patch.object(self.plugin, \u0027get_objects\u0027,"},{"line_number":353,"context_line":"                               return_value\u003dself.namespaces) as mock_get:"},{"line_number":354,"context_line":"            with mock.patch.object(self.plugin.index_helper,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_e68d18d4","line":351,"range":{"start_line":351,"start_character":14,"end_line":351,"end_character":23},"updated":"2016-06-24 21:12:44.000000000","message":"Should be \"test_index_initial_data\".","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ebd7514cb3e6a493f68d1f7774cf2f46177bbb42","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            serialized \u003d self.plugin.serialize(ns)"},{"line_number":349,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    def test_setup_data(self):"},{"line_number":352,"context_line":"        with mock.patch.object(self.plugin, \u0027get_objects\u0027,"},{"line_number":353,"context_line":"                               return_value\u003dself.namespaces) as mock_get:"},{"line_number":354,"context_line":"            with mock.patch.object(self.plugin.index_helper,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_ecc21952","line":351,"range":{"start_line":351,"start_character":14,"end_line":351,"end_character":23},"in_reply_to":"3aaa91ec_e68d18d4","updated":"2016-06-24 22:15:23.000000000","message":"Done","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"}],"searchlight/tests/unit/test_plugin.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"22ddacf608d5cbb74c5608e6d58f37c9200ed965","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                \u0027IndexingHelper.save_documents\u0027)"},{"line_number":322,"context_line":"    @mock.patch(\u0027searchlight.elasticsearch.plugins.base.\u0027"},{"line_number":323,"context_line":"                \u0027NotificationBase.get_version\u0027)"},{"line_number":324,"context_line":"    def test_setup_data(self, mock_vers, mock_save):"},{"line_number":325,"context_line":"        mock_engine \u003d mock.Mock()"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        # Test #1: Index with two documents."}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_c6b3bc96","line":324,"range":{"start_line":324,"start_character":13,"end_line":324,"end_character":23},"updated":"2016-06-24 21:12:44.000000000","message":"Should be \"test_index_initial_data\".","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ebd7514cb3e6a493f68d1f7774cf2f46177bbb42","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                \u0027IndexingHelper.save_documents\u0027)"},{"line_number":322,"context_line":"    @mock.patch(\u0027searchlight.elasticsearch.plugins.base.\u0027"},{"line_number":323,"context_line":"                \u0027NotificationBase.get_version\u0027)"},{"line_number":324,"context_line":"    def test_setup_data(self, mock_vers, mock_save):"},{"line_number":325,"context_line":"        mock_engine \u003d mock.Mock()"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        # Test #1: Index with two documents."}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_8caa7583","line":324,"range":{"start_line":324,"start_character":13,"end_line":324,"end_character":23},"in_reply_to":"3aaa91ec_c6b3bc96","updated":"2016-06-24 22:15:23.000000000","message":"Done","commit_id":"bad9394dc92eda952150c5d85d3cfde4a7ff938c"}]}
