update_limits.py #3

  • //
  • guest/
  • russell_jackson/
  • sdp/
  • Server/
  • Unix/
  • p4/
  • common/
  • bin/
  • update_limits.py
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#!/usr/bin/env python
#==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
#------------------------------------------------------------------------------

"""
This script makes sure that all Perforce users are in the limits group.
"""

import sys, os, string, re

instance=sys.argv[1]

os.system("/p4/common/bin/p4login %s" % instance)
os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s group -o limits > %s_limits.txt" % (instance, instance, instance, instance))
os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s -ztag -F %%User%% users > %s_users.txt" % (instance, instance, instance, instance))

users = ("%s_users.txt" % instance)
limits = ("%s_limits.txt" % instance)
output = open("%s_newlimits.txt" % instance, "w")

userlist = []

try:
  with open(users, 'r', errors='replace') as u:
    for user in u.readlines():
      user = user.strip()
      if user != "":
        userlist.append(user)
except:
  sys.exit(0)

u.close()

try:
  with open(limits, 'r', errors='replace') as l:
    for line in l.readlines():
      if line != "\n":
        output.write(line)
except:
  sys.exit(0)

l.close()

for user in userlist:
  output.write("\t%s\n" % user)

output.close()

os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s group -i < %s_newlimits.txt > /dev/null" % (instance, instance, instance, instance))

os.remove("%s_users.txt" % instance)
os.remove("%s_limits.txt" % instance)
os.remove("%s_newlimits.txt" % instance)

# Change User Description Committed
#3 29754 Russell C. Jackson (Rusty) Updated to work with python3 changes to string handling.
#2 22981 Russell C. Jackson (Rusty) Made files writeable so they are easier to update once on the server.
#1 22693 Russell C. Jackson (Rusty) Branched a Unix only version of the SDP.
Removed extra items to create a cleaner tree.
Moved a few items around to make more sense without Windows in the mix.
//guest/perforce_software/sdp/dev/Server/Unix/p4/common/bin/update_limits.py
#4 19768 UnstoppableDrew @tom_tyler @russell_jackson
Bug fix for running p4master_run as root, and some comment header cleanup. Job 000543

p4master_run: Preserve original arguments list and use this when exec'ing as $OSUSER.

backup_functions.sh: Add text about sourcing p4_vars yourself instead of using p4master_run.

update_limites.py: Run p4login directly without p4master_run since p4login calls p4_vars now.

everything else: Remove comment block about needing to run with p4master_run. Reword comment
  about SDP_INSTANCE since it is not always an integer value.
#3 16029 C. Thomas Tyler Routine merge to dev from main using:
p4 merge -b perforce_software-sdp-dev
#2 12169 Russell C. Jackson (Rusty) Updated copyright date to 2015

 Updated shell scripts to require an instance parameter to eliminate the need
 for calling p4master_run.    Python and Perl still need it since you have to set the
environment for them to run in.

 Incorporated comments from reviewers. Left the . instead of source as that seems
more common in the field and has the same functionality.
#1 10638 C. Thomas Tyler Populate perforce_software-sdp-dev.
//guest/perforce_software/sdp/main/Server/Unix/p4/common/bin/update_limits.py
#1 10148 C. Thomas Tyler Promoted the Perforce Server Deployment Package to The Workshop.