def update(self): o = treemgr_objects.clsBranch() branch = o.read(self.branch_id) #Compute additional parameters before saving self.content_type_name = config.DICT_CONTENT_TYPE[self.content_type_id] self.source_doc_name = config.DICT_SOURCEDOCS[self.source_doc_id] self.branch_name = branch.name self.master_branch_name = utils.get_master_branch_name(self.branch_id) try: #Save to datastore if model_datastore.update(self): print("Updated in Datastore!") else: print("Updating in Datastore failed!") #Save to elasticsearch esobj = search_objects.clsElasticIndex() if esobj.create_update_leaf('content',self): print("Saved to Elastic!") return True else: print("Saving to Elastic failed!") return False except Exception as Ex: print("Exception: Saving to Elastic failed!") print(Ex) return False
def delete(self): if self.id: #Delete data in datastore model_datastore.delete(self) #Delete data in Elastic esobj = search_objects.clsElasticIndex() esobj.delete(TREE_INDEX_NAME, self.id) return else: raise Error( "*** clsBranch.delete: Error! No valid ID provided for branch deletion, aborting." )
def create(self): #Save object in Datastore entity = model_datastore.add(self) self.id = entity.id #Save object in elasticsearch esobj = search_objects.clsElasticIndex() if esobj.create_update_branch(TREE_INDEX_NAME, self): print("Saved branch to Elastic!") return True #self.add_to_index() return entity
def update(self): if self.id: #Update in datastore entity = model_datastore.update(self) #Update data in Elasticindex esobj = search_objects.clsElasticIndex() if esobj.create_update_branch(TREE_INDEX_NAME, self): print("Updated branch to Elastic!") return True return False else: raise Error( "*** clsBranch.update: Error! No valid ID provided for branch update, aborting." )
def delete(self, leaf_id): print("Deleting leaf ID:") print(leaf_id) #Delete from datastore model_datastore.delete(leaf_id) print("Deleted leaf from Datastore!") #Delete from Elasticsearch o = search_objects.clsElasticIndex() ''' query = { "query": { "match": { "_id": { "query": leaf_id, "type": "phrase" } } } } es = Elasticsearch( [keys.ELASTICSEARCH_CLUSTER_URL], http_auth=(keys.ELASTICSEARCH_USERNAME, keys.ELASTICSEARCH_PASSWORD), port=keys.ELASTICSEARCH_CLUSTER_PORT, use_ssl=True, verify_certs=True, ca_certs=certifi.where()) ''' #resp = es.delete(index=LEAF_INDEX_NAME, id=leaf_id) #print (resp) #query = Q("match": {"_id": {"query": leaf_id, "type": "phrase"}}) o.delete(LEAF_INDEX_NAME, leaf_id) print("Deleted leaf from ES!")
def create (self): o = treemgr_objects.clsBranch() branch = o.read(self.branch_id) #Compute additional parameters before saving self.content_type_name = config.DICT_CONTENT_TYPE[self.content_type_id] self.source_doc_name = config.DICT_SOURCEDOCS[self.source_doc_id] self.branch_name = branch.name self.master_branch_name = utils.get_master_branch_name(self.branch_id) try: #Save to datastore savedobj = model_datastore.create(self) if savedobj: #============================== # The following line is very important # We use the object ID from datastore for saving in ES # for future retrival #============================== self.leaf_id = savedobj.leaf_id print("Saved to Datastore!") else: print("Saving to Datastore failed!") #Save to elasticsearch esobj = search_objects.clsElasticIndex() if esobj.create_update_leaf('content',self): print("Saved to Elastic!") return True else: print("Saving to Elastic failed!") return False except Exception as Ex: print("Exception: Saving to Elastic failed!") print(Ex) return False
def es_query(): es = search_objects.clsElasticIndex() q = Q('match', title='world2') return es.execute_query('blog', q)