Commit e4eee760 authored by Luca Cinquini's avatar Luca Cinquini
Browse files

Updating shard functionality

parent 1600e2c5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ RUN chown -R solr:solr ${SOLR_DATA_DIR}
COPY conf/supervisord.solr.conf /etc/supervisor/conf.d/supervisord.solr.conf
COPY conf/supervisord.solr_HOST_PORT.conf-TEMPLATE /usr/local/src/supervisord.solr_HOST_PORT.conf-TEMPLATE
COPY scripts/add_shard.sh /usr/local/bin/add_shard.sh
COPY scripts/remove_shard.sh /usr/local/bin/remove_shard.sh
RUN /usr/local/bin/add_shard.sh master 8984
RUN /usr/local/bin/add_shard.sh slave 8983

+8 −5
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ if [ ! -d "$SOLR_HOME/${shard}" ]; then
    cp -R /usr/local/src/solr-home/mycore $SOLR_HOME/${shard}/${core}
    sed -i 's/@mycore@/'${core}'/g' $SOLR_HOME/$shard/$core/core.properties && \
    sed -i 's/@solr_config_type@-@solr_server_port@/'${shard}'/g' $SOLR_HOME/${shard}/${core}/core.properties
    sed -i '/masterUrl/ s/localhost:8984/'${shard_name}':'${shard_port}'/' $SOLR_HOME/${shard}/${core}/conf/solrconfig.xml
  done
  chown -R solr:solr $SOLR_HOME/${shard}

@@ -62,9 +63,11 @@ if [ ! -f "${supervisord_config}" ]; then

fi

# add shard to list queried by ESGF search application
# add shard to list queried by ESGF search application (unless shard = 'master' or 'slave')
if ! [[ $shard_name == 'master' || $shard_name == 'slave' ]]; then
  shards_file="/esg/config/esgf_shards_static.xml"
  if ! grep -q ${shard_port} ${shards_file} ; then
    echo "Adding shard to ${shards_file}"
    sed -i 's/<\/shards>/    <value>localhost:'${shard_port}'\/solr<\/value>\n<\/shards>/g' ${shards_file}
  fi
fi

solr/scripts/remove_shard.sh

100644 → 100755
+30 −25
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@ shard_name=$1
shard_port=$2
shard="$1-$2"

# do not ever remove master or slave shards
if ! [[ $shard_name == 'master' || $shard_name == 'slave' ]]; then

  # delete index directory /esg/solr-index/<host>-<port>/
  if [ -d "/esg/solr-index/${shard}" ]; then
    echo "Deleting shard index directory: /esg/solr-index/${shard}"
@@ -42,3 +45,5 @@ if grep -q ${shard_port} ${shards_file} ; then
    echo "Removing shard from ${shards_file}"
    sed -i '/localhost:'${shard_port}'/d' ${shards_file}
  fi

fi