)]}'
{"searchlight/elasticsearch/plugins/helper.py":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"2700d5d328ea2b4a6d1633325d6b7d18e413d38a","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                   \u0027id\u0027: doc_id}"},{"line_number":361,"context_line":"            LOG.error(_LE(\"%(count)d distinct results (%(results)s) found for \""},{"line_number":362,"context_line":"                          \"get_document_by_query for %(doc_type)s id %(id)s\") %"},{"line_number":363,"context_line":"                      ctx)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        routing \u003d search_results[\u0027hits\u0027][\u0027hits\u0027][0].get(\u0027_routing\u0027, None)"},{"line_number":366,"context_line":"        parent \u003d search_results[\u0027hits\u0027][\u0027hits\u0027][0][\u0027_parent\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_d00fe334","line":363,"updated":"2016-06-08 18:48:32.000000000","message":"Just a TODO note for the future (probably don\u0027t add to code), but is there anything we can do with this information in the future like keep a count of index coherency warnings and alerts for each doc type that we make visible via the info API?","commit_id":"01b25a13efb20404ce38e39fff625b7fa99a2dd9"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"2700d5d328ea2b4a6d1633325d6b7d18e413d38a","unresolved":false,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        LOG.debug(\"Deleting %s id %s with parent %s routing %s\","},{"line_number":370,"context_line":"                  self.document_type, doc_id, parent, routing)"},{"line_number":371,"context_line":"        delete_info \u003d {\u0027_id\u0027: doc_id, \u0027_parent\u0027: parent}"},{"line_number":372,"context_line":"        if routing:"},{"line_number":373,"context_line":"            delete_info[\u0027_routing\u0027] \u003d routing"},{"line_number":374,"context_line":"        self.delete_document(delete_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_5a567106","line":371,"updated":"2016-06-08 18:48:32.000000000","message":"total and utter nit. if for some reason you end up changing this code, maybe a better variable name is delete_ctx","commit_id":"01b25a13efb20404ce38e39fff625b7fa99a2dd9"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        self.delete_documents(to_delete, override_role_separation\u003dTrue)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def delete_document_unknown_parent(self, doc_id, timestamp\u003dNone):"},{"line_number":343,"context_line":"        \"\"\"Deletes a document that requires routing but where the routing is"},{"line_number":344,"context_line":"        not known. Since this involves a query to find it, there is a potential"},{"line_number":345,"context_line":"        race condition in between storing and indexing the document. A search"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_003a2bcd","line":342,"range":{"start_line":342,"start_character":53,"end_line":342,"end_character":62},"updated":"2016-06-16 22:32:03.000000000","message":"It seems that timestamp is not used.","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        self.delete_documents(to_delete, override_role_separation\u003dTrue)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def delete_document_unknown_parent(self, doc_id, timestamp\u003dNone):"},{"line_number":343,"context_line":"        \"\"\"Deletes a document that requires routing but where the routing is"},{"line_number":344,"context_line":"        not known. Since this involves a query to find it, there is a potential"},{"line_number":345,"context_line":"        race condition in between storing and indexing the document. A search"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_100ac1d2","line":342,"range":{"start_line":342,"start_character":53,"end_line":342,"end_character":62},"in_reply_to":"7aa08908_003a2bcd","updated":"2016-06-20 16:14:29.000000000","message":"Renamed to version and used.","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        search_doc_id \u003d doc_id"},{"line_number":349,"context_line":"        if self.plugin.requires_role_separation:"},{"line_number":350,"context_line":"            # Just look for the admin document though it doesn\u0027t matter which"},{"line_number":351,"context_line":"            search_doc_id +\u003d ADMIN_ID_SUFFIX"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        # Necessary to request \u0027fields\u0027 for e-s 1.x, not for 2.x"},{"line_number":354,"context_line":"        query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027_id\u0027: search_doc_id}},"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_a5a1a948","line":351,"updated":"2016-06-16 22:32:03.000000000","message":"Nit. Even though it doesn\u0027t matter which suffix to use (ADMIN vs USER), we need to be consistent with the suffix removal on line 385. Maybe a comment explaining this?","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        search_doc_id \u003d doc_id"},{"line_number":349,"context_line":"        if self.plugin.requires_role_separation:"},{"line_number":350,"context_line":"            # Just look for the admin document though it doesn\u0027t matter which"},{"line_number":351,"context_line":"            search_doc_id +\u003d ADMIN_ID_SUFFIX"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        # Necessary to request \u0027fields\u0027 for e-s 1.x, not for 2.x"},{"line_number":354,"context_line":"        query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027_id\u0027: search_doc_id}},"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_7026a569","line":351,"in_reply_to":"7aa08908_a5a1a948","updated":"2016-06-20 16:14:29.000000000","message":"Done","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        LOG.debug(\"Deleting %s id %s with parent %s routing %s\","},{"line_number":388,"context_line":"                  self.document_type, doc_id, parent, routing)"},{"line_number":389,"context_line":"        delete_info \u003d {\u0027_id\u0027: doc_id, \u0027_parent\u0027: parent}"},{"line_number":390,"context_line":"        if routing:"},{"line_number":391,"context_line":"            delete_info[\u0027_routing\u0027] \u003d routing"},{"line_number":392,"context_line":"        self.delete_document(delete_info)"},{"line_number":393,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_c543156b","line":390,"updated":"2016-06-16 22:32:03.000000000","message":"If _routing is not set, does this imply a document with a parent but not an explicit routing?","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        LOG.debug(\"Deleting %s id %s with parent %s routing %s\","},{"line_number":388,"context_line":"                  self.document_type, doc_id, parent, routing)"},{"line_number":389,"context_line":"        delete_info \u003d {\u0027_id\u0027: doc_id, \u0027_parent\u0027: parent}"},{"line_number":390,"context_line":"        if routing:"},{"line_number":391,"context_line":"            delete_info[\u0027_routing\u0027] \u003d routing"},{"line_number":392,"context_line":"        self.delete_document(delete_info)"},{"line_number":393,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_dd48525e","line":390,"in_reply_to":"7aa08908_c543156b","updated":"2016-06-20 16:14:29.000000000","message":"Yeah. It seems like _routing is always present when there\u0027s a parent (ES fills it in) in the versions I checked, but since it will assume the parent id is the routing if you don\u0027t specify routing yourself it\u0027s not impossible that there are occasions on which routing won\u0027t be present","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"}],"searchlight/elasticsearch/plugins/neutron/notification_handlers.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        LOG.debug(\"Deleting port information for %s; finding routing\", port_id)"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            self.index_helper.delete_document_unknown_parent(port_id,"},{"line_number":112,"context_line":"                                                             timestamp)"},{"line_number":113,"context_line":"        except Exception as exc:"},{"line_number":114,"context_line":"            LOG.error(_LE("},{"line_number":115,"context_line":"                \u0027Error deleting port %(port_id)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_406273d9","line":112,"range":{"start_line":112,"start_character":61,"end_line":112,"end_character":70},"updated":"2016-06-16 22:32:03.000000000","message":"Not needed, since the timestamp parameter is not used.","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        LOG.debug(\"Deleting port information for %s; finding routing\", port_id)"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            self.index_helper.delete_document_unknown_parent(port_id,"},{"line_number":112,"context_line":"                                                             timestamp)"},{"line_number":113,"context_line":"        except Exception as exc:"},{"line_number":114,"context_line":"            LOG.error(_LE("},{"line_number":115,"context_line":"                \u0027Error deleting port %(port_id)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_50e28904","line":112,"range":{"start_line":112,"start_character":61,"end_line":112,"end_character":70},"in_reply_to":"7aa08908_406273d9","updated":"2016-06-20 16:14:29.000000000","message":"Yeah, there\u0027s no versioning information available. I\u0027ll remove it.","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                  subnet_id)"},{"line_number":165,"context_line":"        try:"},{"line_number":166,"context_line":"            self.index_helper.delete_document_unknown_parent(subnet_id,"},{"line_number":167,"context_line":"                                                             timestamp)"},{"line_number":168,"context_line":"        except Exception as exc:"},{"line_number":169,"context_line":"            LOG.error(_LE("},{"line_number":170,"context_line":"                \u0027Error deleting subnet %(subnet_id)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_0096ab93","line":167,"range":{"start_line":167,"start_character":61,"end_line":167,"end_character":70},"updated":"2016-06-16 22:32:03.000000000","message":"Not needed.","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                  subnet_id)"},{"line_number":165,"context_line":"        try:"},{"line_number":166,"context_line":"            self.index_helper.delete_document_unknown_parent(subnet_id,"},{"line_number":167,"context_line":"                                                             timestamp)"},{"line_number":168,"context_line":"        except Exception as exc:"},{"line_number":169,"context_line":"            LOG.error(_LE("},{"line_number":170,"context_line":"                \u0027Error deleting subnet %(subnet_id)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_30ba5de2","line":167,"range":{"start_line":167,"start_character":61,"end_line":167,"end_character":70},"in_reply_to":"7aa08908_0096ab93","updated":"2016-06-20 16:14:29.000000000","message":"Done","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"}],"searchlight/elasticsearch/plugins/neutron/subnets.py":[{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"b2b05b8d839164e757c09188a9347bb2a51c3afe","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        \"\"\"Use project_id for routing since port/subnet notifications don\u0027t"},{"line_number":96,"context_line":"        # always include the parent network_id."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        return \"project_id\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @property"},{"line_number":101,"context_line":"    def requires_role_separation(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_c61b3f1a","line":98,"range":{"start_line":98,"start_character":26,"end_line":98,"end_character":27},"updated":"2016-06-06 19:55:31.000000000","message":"project_id for a subnet can be different from project_id of the parent network(for public/external neworks), which will index the parent network and subnet in different shards and makes the ES query fail.","commit_id":"d871e404fb233ca124f4b63d67344404227a04d6"}],"searchlight/tests/unit/test_indexing_helper.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"bdf0230576e5bbf9c0c944bc5f9ae79063cbd779","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    def test_strip_suffix(self):"},{"line_number":445,"context_line":"        _id \u003d \u0027aaaa-bbbb\u0027"},{"line_number":446,"context_line":"        admin_id \u003d \u0027aaaa-bbbb\u0027 + helper.ADMIN_ID_SUFFIX"},{"line_number":447,"context_line":"        user_id \u003d \u0027aaaa-bbbb\u0027 + helper.USER_ID_SUFFIX"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        # Test does nothing if there\u0027s nothing to do"},{"line_number":450,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_a09b5765","line":447,"updated":"2016-06-16 22:32:03.000000000","message":"Nit. Instead of duplicating \u0027aaaa-bbbb\u0027, maybe use _id in the initialization of admin_id/user-id.\n\nadmin_id \u003d _id + helper.ADMIN_ID_SUFFIX","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0793e807d01696a908b98557217f993b50b3a98f","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    def test_strip_suffix(self):"},{"line_number":445,"context_line":"        _id \u003d \u0027aaaa-bbbb\u0027"},{"line_number":446,"context_line":"        admin_id \u003d \u0027aaaa-bbbb\u0027 + helper.ADMIN_ID_SUFFIX"},{"line_number":447,"context_line":"        user_id \u003d \u0027aaaa-bbbb\u0027 + helper.USER_ID_SUFFIX"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        # Test does nothing if there\u0027s nothing to do"},{"line_number":450,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a9d85d2_10bf61d1","line":447,"in_reply_to":"7aa08908_a09b5765","updated":"2016-06-20 16:14:29.000000000","message":"Done","commit_id":"5ccd4940b7bc7c6ff88c848a37a76b37530705f7"}]}
