mkstandby.sh #16

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

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

export SDP_INSTANCE=$1
. /p4/common/bin/p4_vars $SDP_INSTANCE

export REPNAME=$2
export PASSWORD=$3
export MASTERPORT=$4
export REPMASTER=$5
export MANDATORY=${6:-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: ${REPMASTER}" | $P4BIN server -i
else
   $P4BIN server -o $REPNAME | sed "s/^Services:\tstandard/Services:\tforwarding-standby/" | sed "$ a ReplicatingFrom: ${REPMASTER}" | $P4BIN server -i
fi

$P4BIN configure set "${REPNAME}#P4TARGET=${MASTERPORT}"
$P4BIN configure set "${REPNAME}#serviceUser=svc_${REPNAME}"
$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 -u -i 1"
$P4BIN configure set "${REPNAME}#startup.4=pull -u -i 1"
$P4BIN configure set "${REPNAME}#startup.5=pull -u -i 1"
$P4BIN configure set "${REPNAME}#startup.6=pull -u -i 1"
$P4BIN configure set "${REPNAME}#startup.7=pull -u -i 1"

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 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.