46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved.
|
|
|
|
# this script returns:
|
|
# 0 - an UPGRADE IS NEEDED for Arkime indices
|
|
# 1 - an UPGRADE IS NOT NEEDED for Arkime indices
|
|
RETURN_CODE=1
|
|
|
|
set -e
|
|
|
|
# see Arkime's db.pl (https://github.com/arkime/arkime/blob/master/db/db.pl) near the bottom for this list
|
|
declare -A ARKIME_INDEX_CURRENT_VERSIONS=(
|
|
[dstats_v]=dstats_v4
|
|
[fields_v]=fields_v3
|
|
[files_v]=files_v6
|
|
[hunts_v]=hunts_v2
|
|
[lookups_v]=lookups_v1
|
|
[queries_v]=queries_v3
|
|
[sequence_v]=sequence_v3
|
|
[stats_v]=stats_v4
|
|
[users_v]=users_v7
|
|
)
|
|
|
|
# get a list of all current indices and loop over them
|
|
while read INDEX_NAME; do
|
|
|
|
# for each current index, check to see if it's one of the Arkime indices (prefixed by
|
|
# the key of ARKIME_INDEX_CURRENT_VERSIONS)
|
|
for INDEX_PREFIX in "${!ARKIME_INDEX_CURRENT_VERSIONS[@]}"; do
|
|
if [[ ${INDEX_NAME} = ${INDEX_PREFIX}* ]]; then
|
|
|
|
# if this is a Arkime index, make sure the version matches what we think it should
|
|
if [[ ${INDEX_NAME} != ${ARKIME_INDEX_CURRENT_VERSIONS[$INDEX_PREFIX]} ]]; then
|
|
RETURN_CODE=0
|
|
echo "${INDEX_NAME}:${ARKIME_INDEX_CURRENT_VERSIONS[$INDEX_PREFIX]}" 1>&2
|
|
break
|
|
fi # compare INDEX_NAME vs. full Arkime index name with version
|
|
|
|
fi # compare INDEX_NAME vs. INDEX_PREFIX
|
|
done # loop over ARKIME_INDEX_CURRENT_VERSIONS
|
|
|
|
done <<<$(curl -fsS -H"Content-Type: application/json" -XGET "http://$ES_HOST:$ES_PORT/_cat/indices?v" | tail -n +2 | awk '{print $3}')
|
|
|
|
exit $RETURN_CODE
|