[Buildbot-commits] buildbot/buildbot/changes p4poller.py,1.4,1.5

Brian Warner warner at users.sourceforge.net
Fri Apr 7 04:14:59 UTC 2006


Update of /cvsroot/buildbot/buildbot/buildbot/changes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30329/buildbot/changes

Modified Files:
	p4poller.py 
Log Message:
Revision: arch at buildbot.sf.net--2004/buildbot--dev--0--patch-483
Creator:  Brian Warner <warner at lothar.com>

SF#1219384: add arguments to p4poller/P4Sync

	* buildbot/changes/p4poller.py (P4Source): add new arguments:
	password, p4 binary, pollinterval, maximum history to check.
	Patch from an anonymous sf.net contributor, SF#1219384.
	* buildbot/process/step.py (P4Sync.__init__): add username,
	password, and client arguments.
	* buildbot/slave/commands.py (P4Sync): same


Index: p4poller.py
===================================================================
RCS file: /cvsroot/buildbot/buildbot/buildbot/changes/p4poller.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- p4poller.py	17 May 2005 10:14:09 -0000	1.4
+++ p4poller.py	7 Apr 2006 04:14:57 -0000	1.5
@@ -13,7 +13,7 @@
     """This source will poll a perforce repository for changes and submit
     them to the change master."""
 
-    compare_attrs = ["p4port", "p4user", "p4client", "p4base",
+    compare_attrs = ["p4port", "p4user", "p4passwd", "p4client", "p4base",
                      "p4bin", "pollinterval", "histmax"]
 
     parent = None # filled in when we're added
@@ -21,13 +21,16 @@
     loop = None
     volatile = ['loop']
 
-    def __init__(self, p4port, p4user, p4client, p4base,
-                 p4bin='p4', pollinterval=60 * 10, histmax=100):
+    def __init__(self, p4port, p4user, p4passwd=None, p4client=None,
+                 p4base='//...', p4bin='p4',
+                 pollinterval=60 * 10, histmax=100):
         """
         @type  p4port:       string
         @param p4port:       p4 port definition (host:portno)
         @type  p4user:       string
         @param p4user:       p4 user
+        @type  p4passwd:     string
+        @param p4passwd:     p4 passwd
         @type  p4client:     string
         @param p4client:     name of p4 client to poll
         @type  p4base:       string
@@ -43,6 +46,7 @@
 
         self.p4port = p4port
         self.p4user = p4user
+        self.p4passwd = p4passwd
         self.p4client = p4client
         self.p4base = p4base
         self.p4bin = p4bin
@@ -59,7 +63,7 @@
         return base.ChangeSource.stopService(self)
 
     def describe(self):
-        return "p4source %s:%s %s" % (self.p4port, self.p4client, self.p4base)
+        return "p4source %s-%s %s" % (self.p4port, self.p4client, self.p4base)
 
     def checkp4(self):
         d = self._get_changes()
@@ -67,10 +71,17 @@
         d.addCallback(self._handle_changes)
 
     def _get_changes(self):
-        args = ['changes', '-m', str(self.histmax), self.p4base]
-        env = {'P4PORT' : self.p4port,
-               'P4USER' : self.p4user,
-               'P4CLIENT' : self.p4client}
+        args = []
+        if self.p4port:
+            args.extend(['-p', self.p4port])
+        if self.p4user:
+            args.extend(['-u', self.p4user])
+        if self.p4passwd:
+            args.extend(['-P', self.p4passwd])
+        if self.p4client:
+            args.extend(['-c', self.p4client])
+        args.extend(['changes', '-m', str(self.histmax), self.p4base])
+        env = {}
         return getProcessOutput(self.p4bin, args, env)
 
     def _process_changes(self, result):
@@ -91,9 +102,17 @@
         return defer.DeferredList(ds)
 
     def _get_change(self, change):
-        args = ['describe', '-s', change['num']]
-        env = {'P4PORT' : self.p4port,
-               'P4CLIENT' : self.p4client}
+        args = []
+        if self.p4port:
+            args.extend(['-p', self.p4port])
+        if self.p4user:
+            args.extend(['-u', self.p4user])
+        if self.p4passwd:
+            args.extend(['-P', self.p4passwd])
+        if self.p4client:
+            args.extend(['-c', self.p4client])
+        args.extend(['describe', '-s', change['num']])
+        env = {}
         d = getProcessOutput(self.p4bin, args, env)
         d.addCallback(self._process_change, change)
         return d





More information about the Commits mailing list