)]}'
{"searchlight/elasticsearch/plugins/designate/notification_handlers.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6e10294066d90e68d863f4cd743df4f7a9091952","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from searchlight.elasticsearch.plugins import base"},{"line_number":20,"context_line":"from searchlight.elasticsearch.plugins import designate"},{"line_number":21,"context_line":"from searchlight.elasticsearch.plugins.utils import VERSION_CONFLICT_MSG"},{"line_number":22,"context_line":"from searchlight import i18n"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_1e201c9b","line":21,"updated":"2016-02-25 19:33:08.000000000","message":"This import is not used. We should remove it. The versioning conflict is caught (and handled) in save_documents(). Besides, the PEP8 check complains...","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"7ecf6f645f3d34a564d91b63bab2699d003e5ccb","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from searchlight.elasticsearch.plugins import base"},{"line_number":20,"context_line":"from searchlight.elasticsearch.plugins import designate"},{"line_number":21,"context_line":"from searchlight.elasticsearch.plugins.utils import VERSION_CONFLICT_MSG"},{"line_number":22,"context_line":"from searchlight import i18n"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_dc099cdf","line":21,"in_reply_to":"9aed3d3a_1e201c9b","updated":"2016-02-25 20:12:35.000000000","message":"How embarrassing! Thanks, done","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6e10294066d90e68d863f4cd743df4f7a9091952","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                    # updated_at from each recordset (which empirically appears"},{"line_number":95,"context_line":"                    # to be the same for all initial recordsets)"},{"line_number":96,"context_line":"                    recordset_versions.append("},{"line_number":97,"context_line":"                        self.get_version(rs, metadata[\u0027timestamp\u0027]))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"                self.recordset_helper.save_documents("},{"line_number":100,"context_line":"                    serialized_recordsets, versions\u003drecordset_versions)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_be3010a0","line":97,"updated":"2016-02-25 19:33:08.000000000","message":"Should we be handling the exception from get_version (e.g. neither \"updated_at\" nor \"created_at\" are set in the record_set). Is that possible in a well-formed record set?","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"7ecf6f645f3d34a564d91b63bab2699d003e5ccb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                    # updated_at from each recordset (which empirically appears"},{"line_number":95,"context_line":"                    # to be the same for all initial recordsets)"},{"line_number":96,"context_line":"                    recordset_versions.append("},{"line_number":97,"context_line":"                        self.get_version(rs, metadata[\u0027timestamp\u0027]))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"                self.recordset_helper.save_documents("},{"line_number":100,"context_line":"                    serialized_recordsets, versions\u003drecordset_versions)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_9c00b4ac","line":97,"in_reply_to":"9aed3d3a_be3010a0","updated":"2016-02-25 20:12:35.000000000","message":"updated_at appears to always be set, at least with the current api version","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"b2a5863b3d518e20d49639b93bd15c19a6ec51a6","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def process(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":62,"context_line":"        if (event_type \u003d\u003d \u0027dns.domain.update\u0027 and"},{"line_number":63,"context_line":"                payload.get(\u0027status\u0027) \u003d\u003d \u0027DELETED\u0027):"},{"line_number":64,"context_line":"            LOG.debug(\"Ignoring DELETED status notification\")"},{"line_number":65,"context_line":"            return oslo_messaging.NotificationResult.HANDLED"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        handled \u003d super(DomainHandler, self).process("}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_8f8e1e2c","line":64,"range":{"start_line":64,"start_character":59,"end_line":64,"end_character":61},"updated":"2016-03-03 12:44:39.000000000","message":"Better to say that its ignoring deleted status on dns.domain.update event otherwise in the log it seems like its ignoring deleted status(or events) which is not the case.","commit_id":"e37e9801ad83b03e0cb738cdacdb71171d190777"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"bcb25e8e87d842760d009be5ab63976a718fbbca","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                        self.get_version(rs, metadata[\u0027timestamp\u0027]))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"                self.recordset_helper.save_documents("},{"line_number":97,"context_line":"                    serialized_recordsets, versions\u003drecordset_versions)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"            return oslo_messaging.NotificationResult.HANDLED"},{"line_number":100,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_5c017605","line":97,"range":{"start_line":97,"start_character":70,"end_line":97,"end_character":71},"updated":"2016-03-03 12:36:54.000000000","message":"Works fine when initial indexing has run atleast once but if you delete or haven\u0027t synced, zone gets created but recordsets fail without mapping\n\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers [-] TransportError(400, u\"ElasticsearchIllegalArgumentException[Can\u0027t specify parent if no parent field has been configured]\")\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers Traceback (most recent call last):\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers   File \"/opt/stack/searchlight/searchlight/elasticsearch/plugins/designate/notification_handlers.py\", line 97, in process\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers     serialized_recordsets, versions\u003drecordset_versions)\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers   File \"/opt/stack/searchlight/searchlight/elasticsearch/plugins/utils.py\", line 153, in save_documents\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers     actions\u003dself._apply_role_filtering(documents, versions))\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers   File \"/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers/__init__.py\", line 188, in bulk\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers     for ok, item in streaming_bulk(client, actions, **kwargs):\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers   File \"/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers/__init__.py\", line 160, in streaming_bulk\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers     for result in _process_bulk_chunk(client, bulk_actions, raise_on_exception, raise_on_error, **kwargs):\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers   File \"/usr/local/lib/python2.7/dist-packages/elasticsearch/helpers/__init__.py\", line 89, in _process_bulk_chunk\n2016-03-03 04:30:08.747 14894 ERROR searchlight.elasticsearch.plugins.designate.notification_handlers     raise e","commit_id":"e37e9801ad83b03e0cb738cdacdb71171d190777"}],"searchlight/elasticsearch/plugins/utils.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6e10294066d90e68d863f4cd743df4f7a9091952","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            # easier from a debugging and testing perspective not to meddle"},{"line_number":281,"context_line":"            # with the input, so make a copy"},{"line_number":282,"context_line":"            document \u003d copy.deepcopy(document)"},{"line_number":283,"context_line":"            version \u003d versions[index] if versions else None"},{"line_number":284,"context_line":"            if self.plugin.requires_role_separation:"},{"line_number":285,"context_line":"                LOG.debug(\"Applying role separation to %s id %s\" %"},{"line_number":286,"context_line":"                          (self.plugin.name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_de36b4b3","line":283,"updated":"2016-02-25 19:33:08.000000000","message":"I know this isn\u0027t part of this patchset, but this code is assuming that \"documents\" and \"versions\" are the same length (or that versions is larger). We should probably verify this assumption in the code.","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"7ecf6f645f3d34a564d91b63bab2699d003e5ccb","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            # easier from a debugging and testing perspective not to meddle"},{"line_number":281,"context_line":"            # with the input, so make a copy"},{"line_number":282,"context_line":"            document \u003d copy.deepcopy(document)"},{"line_number":283,"context_line":"            version \u003d versions[index] if versions else None"},{"line_number":284,"context_line":"            if self.plugin.requires_role_separation:"},{"line_number":285,"context_line":"                LOG.debug(\"Applying role separation to %s id %s\" %"},{"line_number":286,"context_line":"                          (self.plugin.name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_9c73944d","line":283,"in_reply_to":"9aed3d3a_de36b4b3","updated":"2016-02-25 20:12:35.000000000","message":"Agreed - I made a suggestion in the original patch to go back to putting _version n the document (same as we do with _parent) which removes this problem and neatens up the code a bit","commit_id":"9bc22faca5371e2c1cfbd7db87a98dadde5bfefb"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"9496f06fd1c8b10e633499607be686e6a0ff2f9b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            \u0027fields\u0027: [],"},{"line_number":201,"context_line":"            \u0027query\u0027: {"},{"line_number":202,"context_line":"                \u0027term\u0027: {"},{"line_number":203,"context_line":"                    \u0027_parent\u0027: full_parent_id"},{"line_number":204,"context_line":"                }"},{"line_number":205,"context_line":"            }"},{"line_number":206,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_5afef938","line":203,"updated":"2016-02-26 14:55:38.000000000","message":"Just curious, is this method faster than has_parent query?","commit_id":"a63e4ddddd4eb3d20daae0870d7d6a003969146d"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"0094331afb1f73fdcfb8deaa4ef26cab00bb3eaa","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            \u0027fields\u0027: [],"},{"line_number":201,"context_line":"            \u0027query\u0027: {"},{"line_number":202,"context_line":"                \u0027term\u0027: {"},{"line_number":203,"context_line":"                    \u0027_parent\u0027: full_parent_id"},{"line_number":204,"context_line":"                }"},{"line_number":205,"context_line":"            }"},{"line_number":206,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_abd7f9eb","line":203,"in_reply_to":"9aed3d3a_0089a426","updated":"2016-02-26 15:31:59.000000000","message":"has_parent has to run a query against parent docs; this is testing only this document type.\ndoc_values should be added as a separate patch\n\nI need to retest this with admin field separation; i think it may be necessary to modify this slightly.","commit_id":"a63e4ddddd4eb3d20daae0870d7d6a003969146d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0657ecd21ea0b148fdcd41853c2eaa21011c04e0","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            \u0027fields\u0027: [],"},{"line_number":201,"context_line":"            \u0027query\u0027: {"},{"line_number":202,"context_line":"                \u0027term\u0027: {"},{"line_number":203,"context_line":"                    \u0027_parent\u0027: full_parent_id"},{"line_number":204,"context_line":"                }"},{"line_number":205,"context_line":"            }"},{"line_number":206,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_7d21374d","line":203,"in_reply_to":"9aed3d3a_5afef938","updated":"2016-02-26 15:00:33.000000000","message":"Hi Lei,\n\nYes, when possible we want to use queries that use data in the current document.\n\nhttps://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child-performance.html\n\nThanks,\nTravis","commit_id":"a63e4ddddd4eb3d20daae0870d7d6a003969146d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"99d4bd24fc428e44238e19ea17ef7dd2129018e4","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            \u0027fields\u0027: [],"},{"line_number":201,"context_line":"            \u0027query\u0027: {"},{"line_number":202,"context_line":"                \u0027term\u0027: {"},{"line_number":203,"context_line":"                    \u0027_parent\u0027: full_parent_id"},{"line_number":204,"context_line":"                }"},{"line_number":205,"context_line":"            }"},{"line_number":206,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_0089a426","line":203,"in_reply_to":"9aed3d3a_7d21374d","updated":"2016-02-26 15:13:07.000000000","message":"Oh, one note.  That link mentions using doc values.  We do have a bug on using doc values.  https://bugs.launchpad.net/searchlight/+bug/1498995","commit_id":"a63e4ddddd4eb3d20daae0870d7d6a003969146d"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"8c9ce7c7dec1382f80d180ea3dde55c06438808a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            \u0027fields\u0027: [],"},{"line_number":201,"context_line":"            \u0027query\u0027: {"},{"line_number":202,"context_line":"                \u0027term\u0027: {"},{"line_number":203,"context_line":"                    \u0027_parent\u0027: full_parent_id"},{"line_number":204,"context_line":"                }"},{"line_number":205,"context_line":"            }"},{"line_number":206,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_cb07dd1a","line":203,"in_reply_to":"9aed3d3a_abd7f9eb","updated":"2016-02-26 15:37:22.000000000","message":"Steve, I definitely agree doc_values should be separate patch","commit_id":"a63e4ddddd4eb3d20daae0870d7d6a003969146d"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"01578b1c7254d2382b70407ded59ef06f4e8f1ad","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.delete_documents([{\"_id\": document_id}])"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def delete_documents(self, documents, override_role_separation\u003dFalse):"},{"line_number":168,"context_line":"        \"\"\"Each document should be a dict with at an _id, and if"},{"line_number":169,"context_line":"         applicable, a _parent. override_role_separation will treat the _ids"},{"line_number":170,"context_line":"         and _parents in the documents as their actual indexed values"},{"line_number":171,"context_line":"         rather than determining role separation"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_483d7cba","line":168,"updated":"2016-02-26 22:11:44.000000000","message":"Nit. Should be either \"with at least an _id\" or \"with an _id\".","commit_id":"abba4eac400d1c20e855312564ec90a688db676e"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"bcb25e8e87d842760d009be5ab63976a718fbbca","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"            parent_field \u003d self.plugin.get_parent_id_field()"},{"line_number":289,"context_line":"            if parent_field:"},{"line_number":290,"context_line":"                action[\u0027_parent\u0027] \u003d doc[parent_field] + id_suffix"},{"line_number":291,"context_line":"            return action"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        for index, document in enumerate(documents):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7af24918_6604a249","line":290,"range":{"start_line":290,"start_character":56,"end_line":290,"end_character":65},"updated":"2016-03-03 12:36:54.000000000","message":"This assumes that parent and child both have admin fields and thus _ADMIN  and _USER document id\u0027s, which is not true when the child doesn\u0027t have admin fields and parent has admin fields.\n\nAlso I would rather see this as a separate bug fix even though commit message mentions several fixes along with main change as designate. Or mention ALL the issues and fixes in the commit.","commit_id":"e37e9801ad83b03e0cb738cdacdb71171d190777"}]}
