github.com/tenywen/fabric@v1.0.0-beta.0.20170620030522-a5b1ed380643/examples/cluster/compose/report-env.sh (about) 1 #!/bin/bash 2 # 3 # Copyright Greg Haskins All Rights Reserved. 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 # 7 8 9 NODES=$1 10 CONFIG=$2 11 TLS=$3 12 13 getip() { 14 HOST=$1 15 16 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $HOST 17 } 18 19 url() { 20 TYPE=$1 21 NODE=$2 22 PORT=$3 23 24 if [ "$TLS" == "true" ]; then 25 TYPE="$1s" 26 fi 27 28 echo $TYPE://$(getip $NODE):$PORT 29 } 30 31 http() { 32 NODE=$1 33 PORT=$2 34 35 echo $(url "http" $NODE $PORT) 36 } 37 38 grpc() { 39 NODE=$1 40 PORT=$2 41 42 echo $(url "grpc" $NODE $PORT) 43 } 44 45 peerurls() { 46 for i in $(seq 1 4); do 47 echo "$(url grpc peer$i, 7051)" 48 done 49 } 50 51 generate_hosts() { 52 for NODE in $NODES; do 53 echo "$(getip $NODE) $NODE" 54 done 55 } 56 57 includefile() { 58 file=$1 59 prefix=$2 60 61 echo "|" 62 63 while IFS= read -r line; do 64 printf '%s%s\n' "$prefix" "$line" 65 done < "$file" 66 } 67 68 echo "========================================================================" 69 echo "Cluster ready!" 70 echo "========================================================================" 71 echo 72 generate_hosts | sort 73 74 cat <<EOF > $CONFIG 75 # 76 # Generated by fabric.git/examples/cluster. DO NOT EDIT! 77 # 78 ca: 79 url: $(http "ca" "7054") 80 certificate: $(includefile build/nodes/cli/tls/ca.crt " ") 81 82 orderer: 83 url: $(grpc "orderer" "7050") 84 hostname: orderer 85 ca: $(includefile build/nodes/orderer/tls/ca.crt " ") 86 87 peers: 88 $(for i in $(seq 1 4); do 89 echo " - api: $(grpc peer$i 7051)" 90 echo " events: $(grpc peer$i 7053)" 91 echo " hostname: peer$i" 92 done) 93 94 identity: 95 principal: Admin@org1.net 96 mspid: Org1MSP 97 privatekey: $(includefile build/nodes/cli/tls/server.key " ") 98 certificate: $(includefile build/nodes/cli/tls/server.crt " ") 99 EOF