def handle_delete(request): index_to_delete = request.POST['delete_index'] # Rule 1: Has to start with the ES_INDEX_PREFIX. if not index_to_delete.startswith(settings.ES_INDEX_PREFIX): raise DeleteError('"%s" is not a valid index name.' % index_to_delete) # Rule 2: Must be an existing index. indexes = [name for name, count in get_indexes()] if index_to_delete not in indexes: raise DeleteError('"%s" does not exist.' % index_to_delete) # Rule 3: Don't delete the READ index. if index_to_delete == es_utils.READ_INDEX: raise DeleteError('"%s" is the read index.' % index_to_delete) delete_index(index_to_delete) return HttpResponseRedirect(request.path)
def handle_delete(request): """Deletes an index""" index_to_delete = request.POST['delete_index'] # Rule 1: Has to start with the ES_INDEX_PREFIX. if not index_to_delete.startswith(settings.ES_INDEX_PREFIX): raise DeleteError('"%s" is not a valid index name.' % index_to_delete) # Rule 2: Must be an existing index. indexes = [name for name, count in get_indexes()] if index_to_delete not in indexes: raise DeleteError('"%s" does not exist.' % index_to_delete) # Rule 3: Don't delete the READ index. if index_to_delete == es_utils.READ_INDEX: raise DeleteError('"%s" is the read index.' % index_to_delete) delete_index(index_to_delete) return HttpResponseRedirect(request.path)
stats = None write_stats = None indexes = [] try: stats = get_doctype_stats(es_utils.READ_INDEX) except ES_EXCEPTIONS: stats = None try: write_stats = get_doctype_stats(es_utils.WRITE_INDEX) except ES_EXCEPTIONS: write_stats = None try: indexes = get_indexes() indexes.sort(key=lambda m: m[0]) except ES_EXCEPTIONS as e: error_messages.append('Error: {0}'.format(repr(e))) try: client = redis_client('default') outstanding_chunks = int(client.get(OUTSTANDING_INDEX_CHUNKS)) except (RedisError, TypeError): outstanding_chunks = None recent_records = Record.uncached.order_by('-starttime')[:20] return render( request, 'admin/search_maintenance.html',
stats = None write_stats = None indexes = [] try: # This gets index stats, but also tells us whether ES is in # a bad state. try: stats = get_doctype_stats(es_utils.READ_INDEX) except ESIndexMissingException: stats = None try: write_stats = get_doctype_stats(es_utils.WRITE_INDEX) except ESIndexMissingException: write_stats = None indexes = get_indexes() indexes.sort(key=lambda m: m[0]) except ESMaxRetryError: error_messages.append('Error: Elastic Search is not set up on this ' 'machine or is not responding. (MaxRetryError)') except ESIndexMissingException: error_messages.append('Error: Index is missing. Press the reindex ' 'button below. (IndexMissingException)') except ESTimeoutError: error_messages.append('Error: Connection to Elastic Search timed out. ' '(TimeoutError)') try: client = redis_client('default') outstanding_chunks = int(client.get(OUTSTANDING_INDEX_CHUNKS)) except (RedisError, TypeError):