instance_vars.template #1

  • //
  • guest/
  • matt_peterson/
  • sdp/
  • Server/
  • Unix/
  • p4/
  • common/
  • config/
  • instance_vars.template
  • View
  • Commits
  • Open Download .zip Download (3 KB)
# Various scripts send email to $MAILTO.  This can contain comma-delimited list
# of email addresses (no spaces).
export MAILTO=REPL_MAILTO

# Specify the email adddress from which emails are sent in $MAILFROM.
# This must be exactly one email address.
export MAILFROM=REPL_MAILFROM

export P4USER=REPL_ADMINUSER
export P4SERVICEUSER=svc_${SERVERID}

# P4MASTER_ID is server.id of Master for this instance
export P4MASTER_ID=REPL_MASTER_ID

# The setting below should be ssl: if this instance uses ssl.
export SSL_PREFIX=REPL_SSLPREFIX

export P4PORTNUM=REPL_P4PORT
export P4PORT=${SSL_PREFIX}${P4PORTNUM}

# Set the value for P4BROKERPORT to Unset if the broker is not
# used.
export P4BROKERPORTNUM=REPL_P4BROKERPORT
export P4BROKERPORT=${SSL_PREFIX}${P4BROKERPORTNUM}

# These $P4D_FLAGS show when using 'ps' to scan the process table.
# Other settings affect p4d.
export P4D_FLAGS="-p $P4PORT -r $P4ROOT -J $P4JOURNAL -L $P4LOG -q -d --pid-file"

# SERVERID is defined in /p4/n/root/server.id. 
# Override P4TICKETS and P4TRUST for replicas.
if [[ -n "$SERVERID" && "$SERVERID" != "$P4MASTER_ID" ]]; then
   export P4REPLICA=TRUE

   if [[ -f $P4ROOT/db.domain ]]; then
      targetServerPort=$($P4DBIN -r $P4ROOT -cshow | egrep "^$SERVERID: P4TARGET = ")
      targetServerPort=${targetServerPort##* = }
      targetServerPort=$(echo $targetServerPort)
   else
      targetServerPort=$P4PORTNUM
   fi

   if [[ -n "$targetServerPort" ]]; then
      export P4MASTERPORT=$targetServerPort

      if [[ "$targetServerPort" == *":"* ]]; then
         # strip of any trailing ':.....' element (e.g., ':1666')
         export P4MASTER=${targetServerPort%:*}
         # if P4TARGET includes ssl, also need to strip off ssl: from front
         export P4MASTER=${P4MASTER#*:}
      else
         export P4MASTER=REPL_DNSNAME
      fi
   else
      export P4MASTER=REPL_DNSNAME
      export P4MASTERPORT=${SSL_PREFIX}${P4MASTER}:${P4PORTNUM}
   fi


   # Set SHAREDDATA=TRUE on replica servers that share their /hxdepots
   # volume with their P4TARGET server.
   if [[ -f $P4ROOT/db.domain ]]; then
      repStyle=$($P4DBIN -r $P4ROOT -cshow|$GREP "^$SERVERID: lbr.replication = ")
      repStyle=${repStyle##* = }
      repStyle=$(echo $repStyle)
   else
      repStyle=readonly
   fi

   if [[ $repStyle == "shared" ]]; then
      export SHAREDDATA=TRUE
   else
      export SHAREDDATA=FALSE
   fi
else
   export P4REPLICA=FALSE

   # This is the DNS name of the master server:
   export P4MASTER=REPL_DNSNAME
   export SHAREDDATA=FALSE
   export P4MASTERPORT=${SSL_PREFIX}${P4MASTER}:${P4PORTNUM}
fi

# Proxy settings
export PROXY_TARGET=${SSL_PREFIX}${P4MASTER}:${REPL_P4P_TARGET_PORT:-$P4PORTNUM}
export PROXY_PORT=$P4PORT

# P4DTG Settings:
export P4DTG_CFG=$P4SERVER

export SDP_ALWAYS_LOGIN=0

umask 0026
# Change User Description Committed
#1 23314 matt_peterson integrate sdp version 23041
//guest/perforce_software/sdp/main/Server/Unix/p4/common/config/instance_vars.template
#19 22950 akwan Provide an override for difference between proxy listening port and target port
#18 22685 Russell C. Jackson (Rusty) Update main with current changes from dev.
#17 22185 C. Thomas Tyler Released SDP 2017.2.22177 (2017/05/17).
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#16 20921 Russell C. Jackson (Rusty) Fix that Adrian shelved on Main for ssl: issue.
#15 20767 C. Thomas Tyler Released SDP 2016.2.20755 (2016/09/29).
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#14 20481 C. Thomas Tyler Released SDP 2016.1.20460.

          Copy Up using 'p4 copy -r -b perforce_software-sdp-dev',
          with selective removal of changes related to work-in-progress files.
#13 20390 C. Thomas Tyler Released SDP 2016.1.20387.
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev',
with selective removal of changes related to work-in-progress files.
#12 20353 C. Thomas Tyler Released SDP 2016.1.20348.
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev',
with selective removal of changes related to work-in-progress
changes.
#11 20050 C. Thomas Tyler Released: 2016.1.20028 (2016/08/03).
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#10 19414 C. Thomas Tyler Released SDP/MultiArch/2016.1/19410 (2016/05/17).
#9 18961 C. Thomas Tyler Released: SDP/MultiArch/2016.1/18958 (2016/04/08).
#8 16260 Russell C. Jackson (Rusty) Added P4DPORT to allow the server to start without using the HOSTIP.
P4PORT still includes
 the HOSTIP in order to avoid issues with rpl.forward.login not working with localhost.
#7 16259 Russell C. Jackson (Rusty) Created P4MASTERPORT in instance_vars to simplify logins to the master server in
 the other scripts.

 Changed other scripts to use P4MASTERPORT

 Added clean up of statejcopy and checkpoints.rep directory to weekly_sync_replica so that
 it properly resets a replica that is using journalcopy.

 Moved umask to instance_vars since it wasn't being picked up when running things via crontab

 Removed P4REPLICANAME from instance_vars since it wasn't being used anymore.

Added HOSTIP to mkdirs and to the P4PORT setting in instance vars so the server starts on
 a specific IP address rather than all on the server. This avoids a bug where rpl.forward.login
 doesn't work when logging in via localhost.
#6 14073 Russell C. Jackson (Rusty) Backed out changes that moved variables to p4_vars.
The variables are intended to be in instance vars
 to keep everything about a particular instance in one location. It was confusing for people to see
a setting in p4_vars and not understand that setting was being overridden in the instance vars.

 There shouldn't be any overlap between p4_vars and instance vars anymore.

Also, server.id is not optional. It must exist. It is how you control whether the instance is a master
 or a replica. It is not set by the scripts anymore because that was also confusing people. They would
 try to change the role of a server by changing server.id and we previously would just overwrite their
changes. Now, the SDP just reads the server.id so that the user has control over it. That doesn't
 confuse them since that is how our docs tells them to change a server's role.
#5 14045 Robert Cowham Move some stuff from instance_vars to p4_vars (or at least for defaults).
Clarify user messages.
#4 13908 C. Thomas Tyler Pushing SDP 2015.1.13906.
#3 12443 Russell C. Jackson (Rusty) Added missing proxy variables that were lost in the SDP rebuild.
#2 11919 Russell C. Jackson (Rusty) Added a SERVERID variable to p4_vars and updated backup_functions to use it.

 Changed the location and the names of the config files so that they could
 live in /p4/common/config (You're welcome Tom). The files names are:

 p4_$INSTANCE.vars
 p4_$INSTANCE.p4review.cfg

 p4_$INSTANCE.vars will now set P4REPLICA to FALSE if SERVERID matches
 MASTERNAME, otherwise it is TRUE.

 This change means that a user must change server.id now in order to change
 the role of the server rather than changing the instance vars file. This
 makes more sense to a user that is reading the admin guide about server.id
 rather than overwriting the file based on a setting that isn't in the admin guide.

 Change mkdirs to reflect all of the above changes.
#1 11524 Russell C. Jackson (Rusty) Released updated version of the SDP from Dev.
//guest/perforce_software/sdp/dev/Server/Unix/p4/common/config/instance_vars.template
#3 11523 Russell C. Jackson (Rusty) Modified P4BROKERPORTNUM to just be the port number and added P4BROKERPORT to instance_vars
 to be consistent with P4PORT. Also makes it easier to modify p4review.py to use P4BROKERPORT
 rather than P4PORT for the subject line when needed.
#2 11490 Russell C. Jackson (Rusty) Added SSL_PREFIX back and P4MASTERPORTNUM in order to support the sync_replica.sh
and weekly_sync_replica.sh scripts.
#1 11477 Russell C. Jackson (Rusty) Updated to use /usr/bin/env python

Added workshop header.

 Changed cfg to config.
//guest/perforce_software/sdp/dev/Server/Unix/p4/common/cfg/instance_vars.template
#1 11466 Russell C. Jackson (Rusty) Initial work to simplify p4_vars and remove cluster stuff.

 Testing of named instances surfaced some bugs that are in prod sdp,
 now fixed in dev.

 Added three triggers from RCJ SDP

 Moved p4review.cfg into the new /p4/common/cfg to go along with the
 instance_vars files. mkdirs.sh now generates an instance_p4review.cfg
 as well.

 Removed incremental p4verify to clean up a bit. It didn't support replicas
 and was really never used.

 All port settings now live in <instance>_vars file. You set what you want
 the ports to be in mkdirs.sh. There is no more fancy logic to try to guess
 what the port should be. You set it, and that is what it is.

 Remaining to do is to updated scripts to not need p4master_run. Saved
 that work for later since this is tested and works.