github.com/myafeier/fabric@v1.0.1-0.20170722181825-3a4b1f2bce86/examples/e2e_cli/network_setup.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 UP_DOWN="$1" 10 CH_NAME="$2" 11 CLI_TIMEOUT="$3" 12 IF_COUCHDB="$4" 13 14 : ${CLI_TIMEOUT:="10000"} 15 16 COMPOSE_FILE=docker-compose-cli.yaml 17 COMPOSE_FILE_COUCH=docker-compose-couch.yaml 18 #COMPOSE_FILE=docker-compose-e2e.yaml 19 20 function printHelp () { 21 echo "Usage: ./network_setup <up|down> <\$channel-name> <\$cli_timeout> <couchdb>.\nThe arguments must be in order." 22 } 23 24 function validateArgs () { 25 if [ -z "${UP_DOWN}" ]; then 26 echo "Option up / down / restart not mentioned" 27 printHelp 28 exit 1 29 fi 30 if [ -z "${CH_NAME}" ]; then 31 echo "setting to default channel 'mychannel'" 32 CH_NAME=mychannel 33 fi 34 } 35 36 function clearContainers () { 37 CONTAINER_IDS=$(docker ps -aq) 38 if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" = " " ]; then 39 echo "---- No containers available for deletion ----" 40 else 41 docker rm -f $CONTAINER_IDS 42 fi 43 } 44 45 function removeUnwantedImages() { 46 DOCKER_IMAGE_IDS=$(docker images | grep "dev\|none\|test-vp\|peer[0-9]-" | awk '{print $3}') 47 if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" = " " ]; then 48 echo "---- No images available for deletion ----" 49 else 50 docker rmi -f $DOCKER_IMAGE_IDS 51 fi 52 } 53 54 function networkUp () { 55 if [ -f "./crypto-config" ]; then 56 echo "crypto-config directory already exists." 57 else 58 #Generate all the artifacts that includes org certs, orderer genesis block, 59 # channel configuration transaction 60 source generateArtifacts.sh $CH_NAME 61 fi 62 63 if [ "${IF_COUCHDB}" == "couchdb" ]; then 64 CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1 65 else 66 CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 67 fi 68 if [ $? -ne 0 ]; then 69 echo "ERROR !!!! Unable to pull the images " 70 exit 1 71 fi 72 docker logs -f cli 73 } 74 75 function networkDown () { 76 docker-compose -f $COMPOSE_FILE down 77 78 #Cleanup the chaincode containers 79 clearContainers 80 81 #Cleanup images 82 removeUnwantedImages 83 84 # remove orderer block and other channel configuration transactions and certs 85 rm -rf channel-artifacts/*.block channel-artifacts/*.tx crypto-config 86 } 87 88 validateArgs 89 90 #Create the network using docker compose 91 if [ "${UP_DOWN}" == "up" ]; then 92 networkUp 93 elif [ "${UP_DOWN}" == "down" ]; then ## Clear the network 94 networkDown 95 elif [ "${UP_DOWN}" == "restart" ]; then ## Restart the network 96 networkDown 97 networkUp 98 else 99 printHelp 100 exit 1 101 fi