github.com/simranvc/fabric-ca@v0.0.0-20191030094829-acc364294dde/scripts/fvt/staging/delegation_test.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright IBM Corp. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  
     8  FABRIC_CA="$GOPATH/src/github.com/hyperledger/fabric-ca"
     9  SCRIPTDIR="$FABRIC_CA/scripts/fvt"
    10  TESTDATA="$FABRIC_CA/testdata"
    11  KEYSTORE="/tmp/keyStore"
    12  HTTP_PORT="3755"
    13  RC=0
    14  
    15  . $SCRIPTDIR/fabric-ca_utils
    16  
    17  function enrollUser() {
    18     local USERNAME=$1
    19     local USERTYPE=$2
    20     local ATTR=$3
    21     mkdir -p $KEYSTORE/$USERNAME
    22     export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR
    23     OUT=$($SCRIPTDIR/register.sh -u $USERNAME -t $USERTYPE -a "$ATTR" -x $FABRIC_CA_HOME)
    24     echo "$OUT"
    25     PASSWD="$(echo $OUT | tail -n1 | awk '{print $NF}')"
    26     echo "PASSWD: $PASSWD"
    27     export FABRIC_CA_HOME=$KEYSTORE/$USERNAME
    28     $SCRIPTDIR/enroll.sh -u $USERNAME -p $PASSWD -x $FABRIC_CA_HOME
    29  }
    30  
    31  function registerUser() {
    32     local USERNAME=$1
    33     local USERTYPE=$2
    34     local ATTR=$3
    35     mkdir -p $KEYSTORE/$USERNAME
    36     export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR
    37     $SCRIPTDIR/register.sh -u $USERNAME -t $USERTYPE -a "$ATTR" -x $FABRIC_CA_HOME 2>&1
    38     test $? -ne 0 && return 1
    39  }
    40  
    41  
    42  cd $TESTDATA
    43  python -m SimpleHTTPServer $HTTP_PORT &
    44  HTTP_PID=$!
    45  pollSimpleHttp
    46  echo $HTTP_PID
    47  trap "kill $HTTP_PID; CleanUp" INT
    48  
    49  REGISTRAR="admin"
    50  REGIRSTRARPWD="adminpw"
    51  export FABRIC_CA_DEBUG
    52  mkdir -p $KEYSTORE/$REGISTRAR
    53  export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR
    54  
    55  #for driver in sqlite3 postgres mysql; do
    56  for driver in sqlite3 ; do
    57     $SCRIPTDIR/fabric-ca_setup.sh -R -x $FABRIC_CA_HOME
    58     $SCRIPTDIR/fabric-ca_setup.sh -I -S -X -d $driver
    59     if test $? -ne 0; then ErrorMsg "server setup failed"; continue; fi
    60     $SCRIPTDIR/enroll.sh -u $REGISTRAR -p $REGIRSTRARPWD -x $FABRIC_CA_HOME
    61     if test $? -ne 0; then ErrorMsg  "Failed to enroll $REGISTRAR" continue; fi
    62  
    63  
    64     for DEL in client peer validator auditor; do
    65        # admin can enroll anybody
    66        REGISTRAR="admin"
    67        enrollUser A_$DEL $DEL "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${DEL}\"},{\"name\":\"hf.Registrar.DelegateRoles\", \"value\": \"${DEL}\"}]"
    68        if test $? -ne 0; then ErrorMsg "enroll A_$DEL failed"; continue; fi
    69        enrollUser Aleaker_$DEL $DEL "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${DEL}\"}]"
    70        if test $? -ne 0; then ErrorMsg "enroll Aleaker_$DEL failed"; continue; fi
    71  
    72        for REG in client peer validator auditor; do
    73           # A_$DEL can enroll and/or delegate $DEL
    74           REGISTRAR="Aleaker_$DEL"
    75           enrollUser Dleaker_$DEL$REG $REG  "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${REG}\"},{\"name\":\"hf.Registrar.DelegateRoles\", \"value\": \"${REG}\"}]"
    76           test $? -eq 0 && ErrorMsg "Aleaker_$DEL enrolled a delegate"
    77           REGISTRAR="A_$DEL"
    78           enrollUser D_$DEL$REG $REG  "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${REG}\"}]"
    79           rc=$?
    80           if test "$REG" == "$DEL" -a $rc -ne 0; then ErrorMsg "register D_$DEL$REG failed"
    81           elif test "$REG" != "$DEL" -a $rc -eq 0; then ErrorMsg "register D_$DEL$REG succeeded"
    82           elif test "$REG" != "$DEL" -a $rc -ne 0; then continue; fi
    83           for ENR in client peer validator auditor; do
    84              # D_$DEL$REG can enroll only $REG
    85              REGISTRAR="D_$DEL$REG"
    86              enrollUser E_$DEL$REG$ENR $ENR
    87              rc=$?
    88              if test "$REG" == "$ENR" -a $rc -ne 0; then ErrorMsg "register E_$DEL$REG$ENR failed"
    89              elif test "$REG" != "$ENR" -a $rc -eq 0; then ErrorMsg "register E_$DEL$REG$ENR succeeded"
    90              elif test "$REG" != "$ENR" -a $rc -ne 0; then continue; fi
    91              for XXX in client peer validator auditor; do
    92                 # E_$DEL$REG$ENR can't enroll anyone
    93                 REGISTRAR="E_$DEL$REG$ENR"
    94                 registerUser X_$DEL$REG$ENR$XXX $XXX "[{\"name\":\"type\",\"value\":\"value\"}]"
    95                 if test $? -eq 0; then ErrorMsg "X_$XXX registered a user"; continue; fi
    96              done
    97           done
    98        done
    99     done
   100     $SCRIPTDIR/fabric-ca_setup.sh -R -x $FABRIC_CA_HOME
   101  done
   102  kill $HTTP_PID
   103  wait $HTTP_PID
   104  CleanUp "$RC"
   105  exit $RC