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