def set_up_alias(old_index, index): alias = es_client().indices.get_aliases(index=old_index) if alias: logger.info('Removing old aliases to {}'.format(old_index)) es_client().indices.delete_alias(index=old_index, name='_all', ignore=404) logger.info('Creating new alias from {0} to {1}'.format(old_index, index)) es_client().indices.put_alias(old_index, index)
def set_up_alias(old_index, index): alias = es_client().indices.get_aliases(index=old_index) if alias: logger.info('Removing old aliases to {}'.format(old_index)) es_client().indices.delete_alias(index=old_index, name='_all', ignore=404) logger.info('Creating new alias from {0} to {1}'.format(old_index, index)) es_client().indices.put_alias(index=index, name=old_index)
def delete_old(index): old_version = int(index.split('_v')[1]) - 1 if old_version < 1: logger.info('No index before {} to delete'.format(index)) pass else: old_index = index.split('_v')[0] + '_v' + str(old_version) logger.info('Deleting {}'.format(old_index)) es_client().indices.delete(index=old_index, ignore=404)
def migrate_collected_metadata(index, delete): cgms = CollectionSubmission.objects.filter( collection__provider__isnull=False, collection__is_public=True, collection__deleted__isnull=True, collection__is_bookmark_collection=False) docs = helpers.scan( es_client(), query={'query': { 'match': { '_type': 'collectionSubmission' } }}, index=index) actions = ({ '_op_type': 'delete', '_index': index, '_id': doc['_source']['id'], '_type': 'collectionSubmission', 'doc': doc['_source'], 'doc_as_upsert': True, } for doc in list(docs)) bulk_update_cgm(None, actions=actions, op='delete', index=index) bulk_update_collected_metadata(cgms, index=index) logger.info('{} collection submissions migrated'.format(cgms.count()))
def migrate_collected_metadata(index, delete): cgms = CollectedGuidMetadata.objects.filter( collection__provider__isnull=False, collection__is_public=True, collection__deleted__isnull=True, collection__is_bookmark_collection=False) docs = helpers.scan(es_client(), query={ 'query': {'match': {'_type': 'collectionSubmission'}} }, index=index) actions = ({ '_op_type': 'delete', '_index': index, '_id': doc['_source']['id'], '_type': 'collectionSubmission', 'doc': doc['_source'], 'doc_as_upsert': True, } for doc in list(docs)) bulk_update_cgm(None, actions=actions, op='delete', index=index) bulk_update_collected_metadata(cgms, index=index) logger.info('{} collection submissions migrated'.format(cgms.count()))
def set_up_index(idx): alias = es_client().indices.get_aliases(index=idx) if not alias or not alias.keys() or idx in alias.keys(): # Deal with empty indices or the first migration index = '{}_v1'.format(idx) search.create_index(index=index) logger.info('Reindexing {0} to {1}_v1'.format(idx, idx)) helpers.reindex(es_client(), idx, index) logger.info('Deleting {} index'.format(idx)) es_client().indices.delete(index=idx) es_client().indices.put_alias(idx, index) else: # Increment version version = int(alias.keys()[0].split('_v')[1]) + 1 logger.info('Incrementing index version to {}'.format(version)) index = '{0}_v{1}'.format(idx, version) search.create_index(index=index) logger.info('{} index created'.format(index)) return index