예제 #1
0
 def test_forms_are_in_index(self):
     for form in self.forms:
         self.assertFalse(doc_exists(self.pillow, form.wrapped_form.form_id))
     self._ship_forms_to_es([None, None])
     self.assertEqual(2, len(self.forms))
     for form in self.forms:
         self.assertTrue(doc_exists(self.pillow, form.wrapped_form.form_id))
예제 #2
0
    def change_transport(self, doc_dict):
        """
        Save the document to ElasticSearch
        """
        try:
            if not self.bulk:
                doc_exists_val = doc_exists(self, doc_dict)

                if self.allow_updates:
                    can_put = True
                else:
                    can_put = not doc_exists_val

                if can_put and not self.bulk:
                    self.send_robust(doc_dict, update=doc_exists_val)
        except Exception, ex:
            tb = traceback.format_exc()
            pillow_logging.error(
                "PillowTop [%(pillow_name)s]: Aliased Elastic Pillow transport change data doc_id: %(doc_id)s to elasticsearch error: %(error)s\ntraceback: %(tb)s\n" %
                {
                    "pillow_name": self.get_name(),
                    "doc_id": doc_dict['_id'],
                    "error": ex,
                    "tb": tb
                }
            )
            return None
예제 #3
0
 def change_trigger(self, changes_dict):
     doc_dict = super(DomainPillow, self).change_trigger(changes_dict)
     if doc_dict and doc_dict['doc_type'] == 'Domain-DUPLICATE':
         if doc_exists(self, doc_dict):
             self.get_es_new().delete(self.es_index, self.es_type, doc_dict['_id'])
         return None
     else:
         return doc_dict
예제 #4
0
파일: case.py 프로젝트: bazuzi/commcare-hq
 def change_trigger(self, changes_dict):
     doc_dict, lock = lock_manager(super(CasePillow, self).change_trigger(changes_dict))
     if doc_dict and doc_dict["doc_type"] == "CommCareCase-Deleted":
         if doc_exists(self, doc_dict):
             self.get_es_new().delete(self.es_index, self.es_type, doc_dict["_id"])
         return None
     else:
         return LockManager(doc_dict, lock)
예제 #5
0
 def change_trigger(self, changes_dict):
     id = changes_dict['id']
     if changes_dict.get('deleted', False):
         try:
             if doc_exists(self, id):
                 self.get_es_new().delete(self.es_index, self.es_type, id)
         except Exception, ex:
             pillow_logging.error(
                 "ElasticPillow: error deleting route %s - ignoring: %s" % (
                     self.get_doc_path(changes_dict['id']),
                     ex,
                 )
             )
         return None