#!/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
. /p4/common/bin/p4_vars $SDP_INSTANCE
export REPNAME=$2
export PASSWORD=$3
export MASTERPORT=$4
export MANDATORY=${5:-nomandatory}
REPMASTER=$(echo $REPNAME | sed "s/-standby.*//")
. /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}#serverlog.file.1=/p4/${SDP_INSTANCE}/logs/audit.csv"
$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 | |
|---|---|---|---|---|---|
| #21 | 32644 | Russell C. Jackson (Rusty) | SDP Cheat Sheet for quick reference. | ||
| #20 | 32588 | Russell C. Jackson (Rusty) | Fixed ReplicationFrom typo | ||
| #19 | 32426 | Russell C. Jackson (Rusty) | Claude ai updates. | ||
| #18 | 32388 | Russell C. Jackson (Rusty) | Updates using Claude.ai to clean up the code, reduce duplication, enhanace security, and use current standards. | ||
| #17 | 32297 | Russell C. Jackson (Rusty) | Added --batch=20 to the pull threads, and increased threads to 10 | ||
| #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. |