mkstandby.sh #8

  • //
  • guest/
  • russell_jackson/
  • sdp/
  • Server/
  • Unix/
  • p4/
  • common/
  • bin/
  • mkstandby.sh
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#!/bin/bash

if [ "$#" -lt 4 ]; then
   echo "Incorrect number of parameters."
   echo "Usage:"
   echo "$0 SDP_INSTANCE REPLICA_NAME SVCUSER_PASSWORD MASTERPORT <mandatory>"
   exit 1
fi

export SDP_INSTANCE=$1
export REPNAME=$2
export PASSWORD=$3
export P4MASTERPORT=$4
export MANDATORY=${5:-nomandatory}

. /p4/common/bin/p4_vars $SDP_INSTANCE

if [[ $MANDATORY == mandatory ]]; then
   $P4BIN server -o $REPNAME | sed "s/^Services:\tstandard/Services:\tforwarding-standby/" | sed "s/nomandatory/mandatory/" | sed "$ a ReplicatingFrom: ${P4MASTER_ID}" | $P4BIN server -i
else
   $P4BIN server -o $REPNAME | sed "s/^Services:\tstandard/Services:\tforwarding-standby/" | sed "$ a ReplicatingFrom: ${P4MASTER_ID}" | $P4BIN server -i
fi

$P4BIN configure set "${REPNAME}#P4TARGET=${P4MASTERPORT}"
$P4BIN configure set "${REPNAME}#serviceUser=svc_${REPNAME}"
$P4BIN configure set "${REPNAME}#journalPrefix=/p4/${SDP_INSTANCE}/journals.rep/p4_${SDP_INSTANCE}"
$P4BIN configure set "${REPNAME}#db.replication=readonly"
$P4BIN configure set "${REPNAME}#lbr.replication=readonly"
$P4BIN configure set "${REPNAME}#startup.1=journalcopy -i 0"
$P4BIN configure set "${REPNAME}#startup.2=pull -L -i 0"
$P4BIN configure set "${REPNAME}#startup.3=pull -i 1 -u"
$P4BIN configure set "${REPNAME}#startup.4=pull -i 1 -u"
$P4BIN configure set "${REPNAME}#startup.5=pull -i 1 -u"

if ! ($P4BIN user -o svc_${REPNAME} | grep "^Type:.*service" > /dev/null); then
   $P4BIN user -o svc_${REPNAME} | sed -e "s/^User:/Type: service\nUser:/g" -e "s/ldap/perforce/g" | $P4BIN user -f -i
   echo ${PASSWORD} > passwd.txt
   echo ${PASSWORD} >> passwd.txt
   $P4BIN passwd svc_${REPNAME} < passwd.txt
   rm passwd.txt
fi

#$P4BIN group -o p4-replicas|sed -e "s/^Users:/Users:\n\tsvc_${REPNAME}/g" -e "s/43200/unlimited/g" -e "s/unset/unlimited/g" | $P4BIN group -i
$P4BIN group -o service.g|sed -e "s/^Users:/Users:\n\tsvc_${REPNAME}/g" -e "s/43200/unlimited/g" -e "s/unset/unlimited/g" | $P4BIN group -i

if ! ($P4BIN protect -o|grep "super group service.g" > /dev/null); then
   $P4BIN protect -o| sed -e '$a\\tsuper group service.g * //...'| $P4BIN protect -i
fi

# Change User Description Committed
#16 31378 Russell C. Jackson (Rusty) Added pull threads.
#15 31271 Russell C. Jackson (Rusty) Updates to use service.g
#14 29764 Russell C. Jackson (Rusty) Changed order of pull configurables based on comments from support.
#13 29416 Russell C. Jackson (Rusty) Changed to require you to enter replicating from server name.
#12 28941 Russell C. Jackson (Rusty) Fixed the REPNAME substitution
#11 28920 Russell C. Jackson (Rusty) Modify to work out of the box in current setup.
#10 28602 Russell C. Jackson (Rusty) Fixed ordering problem where P4MASTERPORT was getting overwritten.
#9 24858 Russell C. Jackson (Rusty) Set rpl.journalcopy.location=1 and removed all journals.rep references since it won't be needed anymore.
#8 24854 Russell C. Jackson (Rusty) Made MASTERPORT required, and added settings for standby server set up on 2018.2+
#7 23481 Russell C. Jackson (Rusty) Changed pull -L -i 1 to -i 0
#6 22981 Russell C. Jackson (Rusty) Made files writeable so they are easier to update once on the server.
#5 22793 Russell C. Jackson (Rusty) Adjusted to allow for optional parameter 4.
#4 22756 Russell C. Jackson (Rusty) Added option to pass in the master:port as parameter 4.
#3 22755 Russell C. Jackson (Rusty) Added journalPrefix
#2 22754 Russell C. Jackson (Rusty) Update to set unlimited settings on the service.g group.
#1 22750 Russell C. Jackson (Rusty) Script to create a standby replica.