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