github.com/tenywen/fabric@v1.0.0-beta.0.20170620030522-a5b1ed380643/bddtests/regression/go/ote/driver.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright IBM Corp. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  
     8  
     9  InvalidArgs=0
    10  
    11  #init var
    12  nBroker=0
    13  nPeer=1
    14  
    15  while getopts ":l:d:w:x:b:c:t:a:o:k:p:" opt; do
    16    case $opt in
    17      # peer environment options
    18      l)
    19        CORE_LOGGING_LEVEL=$OPTARG
    20        export CORE_LOGGING_LEVEL=$CORE_LOGGING_LEVEL
    21        echo "CORE_LOGGING_LEVEL: $CORE_LOGGING_LEVEL"
    22        ;;
    23      d)
    24        db=$OPTARG
    25        echo "ledger state database type: $db"
    26        ;;
    27      w)
    28        CORE_SECURITY_LEVEL=$OPTARG
    29        export CORE_SECURITY_LEVEL=$CORE_SECURITY_LEVEL
    30        echo "CORE_SECURITY_LEVEL: $CORE_SECURITY_LEVEL"
    31        ;;
    32      x)
    33        CORE_SECURITY_HASHALGORITHM=$OPTARG
    34        export CORE_SECURITY_HASHALGORITHM=$CORE_SECURITY_HASHALGORITHM
    35        echo "CORE_SECURITY_HASHALGORITHM: $CORE_SECURITY_HASHALGORITHM"
    36        ;;
    37  
    38      # orderer environment options
    39      b)
    40        CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT=$OPTARG
    41        export CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT=$CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT
    42        echo "CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT: $CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT"
    43        ;;
    44      c)
    45        CONFIGTX_ORDERER_BATCHTIMEOUT=$OPTARG
    46        export CONFIGTX_ORDERER_BATCHTIMEOUT=$CONFIGTX_ORDERER_BATCHTIMEOUT
    47        echo "CONFIGTX_ORDERER_BATCHTIMEOUT: $CONFIGTX_ORDERER_BATCHTIMEOUT"
    48        ;;
    49      t)
    50        CONFIGTX_ORDERER_ORDERERTYPE=$OPTARG
    51        export CONFIGTX_ORDERER_ORDERERTYPE=$CONFIGTX_ORDERER_ORDERERTYPE
    52        echo "CONFIGTX_ORDERER_ORDERERTYPE: $CONFIGTX_ORDERER_ORDERERTYPE"
    53        if [$nBroker == 0 ] && [ $CONFIGTX_ORDERER_ORDERERTYPE == 'kafka' ]; then
    54            nBroker=1   # must have at least 1
    55        fi
    56        ;;
    57  
    58      # network options
    59      a)
    60        Req=$OPTARG
    61        echo "action: $Req"
    62        ;;
    63      k)
    64        nBroker=$OPTARG
    65        echo "# of Broker: $nBroker"
    66        ;;
    67      p)
    68        nPeer=$OPTARG
    69        echo "# of peer: $nPeer"
    70        ;;
    71      o)
    72        nOrderer=$OPTARG
    73        echo "# of orderer: $nOrderer"
    74        ;;
    75  
    76      # else
    77      \?)
    78        echo "Invalid option: -$OPTARG" >&2
    79        InvalidArgs=1
    80        ;;
    81      :)
    82        echo "Option -$OPTARG requires an argument." >&2
    83        InvalidArgs=1
    84        ;;
    85    esac
    86  done
    87  
    88  
    89  if [ $InvalidArgs == 1 ]; then
    90     echo "Usage: "
    91     echo " ./driver.sh [opt] [value] "
    92     echo "    network variables"
    93     echo "    -a: action [create|add] "
    94     echo "    -p: number of peers "
    95     echo "    -o: number of orderers "
    96     echo "    -k: number of brokers "
    97     echo " "
    98     echo "    peer environment variables"
    99     echo "    -l: core logging level [(deafult = not set)|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG]"
   100     echo "    -w: core security level [256|384]"
   101     echo "    -x: core security hash algorithm [SHA2|SHA3]"
   102     echo "    -d: core ledger state DB [goleveldb|couchdb] "
   103     echo " "
   104     echo "    orderer environment variables"
   105     echo "    -b: batch size [10|msgs in batch/block]"
   106     echo "    -t: orderer type [solo|kafka] "
   107     echo "    -c: batch timeout [10s|max secs before send an unfilled batch] "
   108     echo " "
   109     exit
   110  fi
   111  
   112  if [ $nBroker -gt 0 ] && [ $CONFIGTX_ORDERER_ORDERERTYPE == 'solo' ]; then
   113      echo "reset Kafka Broker number to 0 due to the CONFIGTX_ORDERER_ORDERERTYPE=$CONFIGTX_ORDERER_ORDERERTYPE"
   114      nBroker=0
   115  fi
   116  
   117  #OS
   118  ##OSName=`uname`
   119  ##echo "Operating System: $OSName"
   120  
   121  
   122  dbType=`echo "$db" | awk '{print tolower($0)}'`
   123  echo "action=$Req nPeer=$nPeer nBroker=$nBroker nOrderer=$nOrderer dbType=$dbType"
   124  VP=`docker ps -a | grep 'peer node start' | wc -l`
   125  echo "existing peers: $VP"
   126  
   127  
   128  echo "remove old docker-composer.yml"
   129  rm -f docker-compose.yml
   130  
   131  # form json input file
   132  if [ $nBroker == 0 ]; then
   133      #jsonFILE="network_solo.json"
   134      jsonFILE="network.json"
   135  else
   136  #    jsonFILE="network_kafka.json"
   137      jsonFILE="network.json"
   138  fi
   139  echo "jsonFILE $jsonFILE"
   140  
   141  # create docker compose yml
   142  if [ $Req == "add" ]; then
   143      N1=$[nPeer+VP]
   144      N=$[N1]
   145      VPN="peer"$[N-1]
   146  else
   147      N1=$nPeer
   148      N=$[N1 - 1]
   149      VPN="peer"$N
   150  fi
   151  
   152  ## echo "N1=$N1 VP=$VP nPeer=$nPeer VPN=$VPN"
   153  
   154  node json2yml.js $jsonFILE $N1 $nOrderer $nBroker $dbType
   155  
   156  ## sed 's/-x86_64/TEST/g' docker-compose.yml > ss.yml
   157  ## cp ss.yml docker-compose.yml
   158  # create network
   159  if [ $Req == "create" ]; then
   160  
   161     #CHANGED FROM ORIG SCRIPT
   162     #docker-compose -f docker-compose.yml up -d --force-recreate $VPN cli
   163     docker-compose -f docker-compose.yml up -d --force-recreate $VPN
   164     for ((i=1; i<$nOrderer; i++))
   165     do
   166         tmpOrd="orderer"$i
   167         docker-compose -f docker-compose.yml up -d $tmpOrd
   168     done
   169  fi
   170  
   171  if [ $Req == "add" ]; then
   172     docker-compose -f docker-compose.yml up -d $VPN
   173  
   174  fi
   175  
   176  exit