Skip to content

Commit 9ede76a

Browse files
Merge pull request #251 from MikroElektronika/update/author-index
Fixed legacy es _type issue
2 parents d9fe680 + 49e1b51 commit 9ede76a

File tree

2 files changed

+27
-16
lines changed

2 files changed

+27
-16
lines changed

scripts/check_indexes.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,13 @@ def str2bool(v):
121121
# Assign correct URLs
122122
assign_urls(indexed_item, gh_instance, es_instance)
123123
print("%sOK: Asset \"%s\" download link is correct. - %s" % (es_instance.Colors.OKBLUE, indexed_item['source']['name'], indexed_item['source']['download_link']))
124+
125+
if 'ES_HOST_LEGACY' in os.environ and 'ES_USER_LEGACY' in os.environ and 'ES_PASSWORD_LEGACY':
126+
if indexed_item['source']['name'] in legacy_packages:
127+
es_instance_legacy.update('necto_package', indexed_item['doc']['id'], indexed_item['source'], legacy_es=True)
128+
print("%sOK: \"%s\" indexed for legacy NECTO." % (es_instance_legacy.Colors.OKGREEN, indexed_item['source']['name']))
124129
except Exception as e:
125130
print(f'{es_instance.Colors.FAIL}Error for {indexed_item['source']['name']}: {e}')
126131

127-
if 'ES_HOST_LEGACY' in os.environ and 'ES_USER_LEGACY' in os.environ and 'ES_PASSWORD_LEGACY':
128-
if indexed_item['source']['name'] in legacy_packages:
129-
es_instance_legacy.update('necto_package', indexed_item['doc']['id'], indexed_item['source'])
130-
print("%sOK: \"%s\" indexed for legacy NECTO." % (es_instance_legacy.Colors.OKGREEN, indexed_item['source']['name']))
131-
132132
if err and args.log_only:
133133
sys.exit(-1)

scripts/classes/class_es.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import re, time
1+
import re, time, copy
22
from elasticsearch import Elasticsearch
33
from enum import Enum
44

@@ -73,15 +73,26 @@ def find_item(items, check):
7373
return False
7474

7575
@staticmethod
76-
def api_index(es: Elasticsearch, doc_index, doc_type, doc_id, doc_body):
76+
def api_index(es: Elasticsearch, doc_index, doc_type, doc_id, doc_body, legacy_es=False):
7777
# Kibana v8 requires _type to be in body in order to have doc_type defined
78-
doc_body['_type'] = '_doc'
79-
return es.index(
80-
index=doc_index,
81-
doc_type=doc_type,
82-
id=doc_id,
83-
body=doc_body
84-
)
78+
# while Kibana v7 requires _type not to be in body
79+
if legacy_es:
80+
legacy_doc_body = copy.deepcopy(doc_body)
81+
del legacy_doc_body['_type']
82+
return es.index(
83+
index=doc_index,
84+
doc_type=doc_type,
85+
id=doc_id,
86+
body=legacy_doc_body
87+
)
88+
else:
89+
doc_body['_type'] = '_doc'
90+
return es.index(
91+
index=doc_index,
92+
doc_type=doc_type,
93+
id=doc_id,
94+
body=doc_body
95+
)
8596

8697
def __init__(self, es_host, es_user, es_password, index, token, retry=None):
8798
self.es_instance = self.init(es_host, es_user, es_password, retry)
@@ -120,8 +131,8 @@ def create(self, doc_type, doc_id, doc_body):
120131
else:
121132
print("%sINFO: Asset \"%s\" created. - %s" % (self.Colors.OKGREEN, doc_body['name'], doc_body['download_link']))
122133

123-
def update(self, doc_type, doc_id, doc_body):
124-
response = self.api_index(self.es_instance, self.index, doc_type, doc_id, doc_body)
134+
def update(self, doc_type, doc_id, doc_body, legacy_es=False):
135+
response = self.api_index(self.es_instance, self.index, doc_type, doc_id, doc_body, legacy_es)
125136
if doc_type:
126137
if response['created'] and 'created' == response['result']:
127138
print("%sWARNING: Asset \"%s\" created instead of updating. - %s" % (self.Colors.WARNING, doc_body['name'], doc_body['download_link']))

0 commit comments

Comments
 (0)