github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/bddtests/environments/orderer/docker-entrypoint.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  # This script will either start the Kafka server, or run the user
     4  # specified command.
     5  
     6  # exit immediately if a pipeline returns a non-zero status
     7  set -e
     8  
     9  ORDERER_EXE=orderer
    10  KAFKA_GENESIS_PROFILES=(SampleInsecureKafka)
    11  
    12  # handle starting the orderer with an option
    13  if [ "${1:0:1}" = '-' ]; then
    14    set -- ${ORDERER_EXE} "$@"
    15  fi
    16  
    17  # check if the Kafka-based orderer is invoked
    18  if [ "$1" = "${ORDERER_EXE}" ]; then
    19    for PROFILE in "${KAFKA_GENESIS_PROFILES[@]}"; do
    20      if [ "$ORDERER_GENERAL_GENESISPROFILE" == "$PROFILE" ] ; then
    21        # make sure at least one broker has started
    22        # get the broker list from ZooKeeper
    23        if [ -z "$CONFIGTX_ORDERER_KAFKA_BROKERS" ] ; then
    24          if [ -z "$ZOOKEEPER_CONNECT" ] ; then
    25            export ZOOKEEPER_CONNECT="zookeeper:2181"
    26          fi
    27          ZK_CLI_EXE="/usr/share/zookeeper/bin/zkCli.sh -server ${ZOOKEEPER_CONNECT}"
    28          until [ -n "$($ZK_CLI_EXE ls /brokers/ids | grep '^\[')" ] ; do
    29            echo "No Kafka brokers registered in ZooKeeper. Will try again in 1 second."
    30            sleep 1
    31          done
    32          CONFIGTX_ORDERER_KAFKA_BROKERS="["
    33          CONFIGTX_ORDERER_KAFKA_BROKERS_SEP=""
    34          for BROKER_ID in $($ZK_CLI_EXE ls /brokers/ids | grep '^\[' | sed 's/[][,]/ /g'); do
    35            CONFIGTX_ORDERER_KAFKA_BROKERS=${CONFIGTX_ORDERER_KAFKA_BROKERS}${ORDERER_KAFKA_BROKERS_SEP}$($ZK_CLI_EXE get /brokers/ids/$BROKER_ID 2>&1 | grep '^{' | jq -j '. | .host,":",.port')
    36            CONFIGTX_ORDERER_KAFKA_BROKERS_SEP=","
    37          done
    38          export CONFIGTX_ORDERER_KAFKA_BROKERS="${CONFIGTX_ORDERER_KAFKA_BROKERS}]"
    39        fi
    40      fi
    41    done
    42  fi
    43  
    44  exec "$@"