Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Side by Side Diff: third_party/buildbot_7_12/buildbot/changes/pb.py

Issue 12207158: Bye bye buildbot 0.7.12. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # -*- test-case-name: buildbot.test.test_changes -*-
2
3 from twisted.python import log
4
5 from buildbot.pbutil import NewCredPerspective
6 from buildbot.changes import base, changes
7
8 class ChangePerspective(NewCredPerspective):
9
10 def __init__(self, changemaster, prefix):
11 self.changemaster = changemaster
12 self.prefix = prefix
13
14 def attached(self, mind):
15 return self
16 def detached(self, mind):
17 pass
18
19 def perspective_addChange(self, changedict):
20 log.msg("perspective_addChange called")
21 pathnames = []
22 prefixpaths = None
23 for path in changedict['files']:
24 if self.prefix:
25 if not path.startswith(self.prefix):
26 # this file does not start with the prefix, so ignore it
27 continue
28 path = path[len(self.prefix):]
29 pathnames.append(path)
30
31 if pathnames:
32 change = changes.Change(changedict['who'],
33 pathnames,
34 changedict['comments'],
35 branch=changedict.get('branch'),
36 revision=changedict.get('revision'),
37 repository=changedict.get('repository'),
38 revlink=changedict.get('revlink', ''),
39 category=changedict.get('category'),
40 when=changedict.get('when'),
41 properties=changedict.get('properties', {})
42 )
43 self.changemaster.addChange(change)
44
45 class PBChangeSource(base.ChangeSource):
46 compare_attrs = ["user", "passwd", "port", "prefix"]
47
48 def __init__(self, user="change", passwd="changepw", port=None,
49 prefix=None, sep=None):
50 """I listen on a TCP port for Changes from 'buildbot sendchange'.
51
52 I am a ChangeSource which will accept Changes from a remote source. I
53 share a TCP listening port with the buildslaves.
54
55 The 'buildbot sendchange' command, the contrib/svn_buildbot.py tool,
56 and the contrib/bzr_buildbot.py tool know how to send changes to me.
57
58 @type prefix: string (or None)
59 @param prefix: if set, I will ignore any filenames that do not start
60 with this string. Moreover I will remove this string
61 from all filenames before creating the Change object
62 and delivering it to the Schedulers. This is useful
63 for changes coming from version control systems that
64 represent branches as parent directories within the
65 repository (like SVN and Perforce). Use a prefix of
66 'trunk/' or 'project/branches/foobranch/' to only
67 follow one branch and to get correct tree-relative
68 filenames.
69
70 @param sep: DEPRECATED (with an axe). sep= was removed in
71 buildbot-0.7.4 . Instead of using it, you should use
72 prefix= with a trailing directory separator. This
73 docstring (and the better-than-nothing error message
74 which occurs when you use it) will be removed in 0.7.5 .
75 """
76
77 # sep= was removed in 0.7.4 . This more-helpful-than-nothing error
78 # message will be removed in 0.7.5 .
79 assert sep is None, "prefix= is now a complete string, do not use sep="
80 # TODO: current limitations
81 assert user == "change"
82 assert passwd == "changepw"
83 assert port == None
84 self.user = user
85 self.passwd = passwd
86 self.port = port
87 self.prefix = prefix
88
89 def describe(self):
90 # TODO: when the dispatcher is fixed, report the specific port
91 #d = "PB listener on port %d" % self.port
92 d = "PBChangeSource listener on all-purpose slaveport"
93 if self.prefix is not None:
94 d += " (prefix '%s')" % self.prefix
95 return d
96
97 def startService(self):
98 base.ChangeSource.startService(self)
99 # our parent is the ChangeMaster object
100 # find the master's Dispatch object and register our username
101 # TODO: the passwd should be registered here too
102 master = self.parent.parent
103 master.dispatcher.register(self.user, self)
104
105 def stopService(self):
106 base.ChangeSource.stopService(self)
107 # unregister our username
108 master = self.parent.parent
109 master.dispatcher.unregister(self.user)
110
111 def getPerspective(self):
112 return ChangePerspective(self.parent, self.prefix)
OLDNEW
« no previous file with comments | « third_party/buildbot_7_12/buildbot/changes/p4poller.py ('k') | third_party/buildbot_7_12/buildbot/changes/svnpoller.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698