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 "$@"