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

Side by Side Diff: third_party/buildbot_7_12/buildbot/clients/debug.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
2 from twisted.internet import gtk2reactor
3 gtk2reactor.install()
4 from twisted.internet import reactor
5 from twisted.python import util
6 from twisted.spread import pb
7 from twisted.cred import credentials
8 import gtk.glade
9 import sys, re
10
11 class DebugWidget:
12 def __init__(self, master="localhost:8007", passwd="debugpw"):
13 self.connected = 0
14 try:
15 host, port = re.search(r'(.+):(\d+)', master).groups()
16 except:
17 print "unparseable master location '%s'" % master
18 print " expecting something more like localhost:8007"
19 raise
20 self.host = host
21 self.port = int(port)
22 self.passwd = passwd
23 self.remote = None
24 xml = self.xml = gtk.glade.XML(util.sibpath(__file__, "debug.glade"))
25 g = xml.get_widget
26 self.buildname = g('buildname')
27 self.filename = g('filename')
28 self.connectbutton = g('connectbutton')
29 self.connectlabel = g('connectlabel')
30 g('window1').connect('destroy', lambda win: gtk.main_quit())
31 # put the master info in the window's titlebar
32 g('window1').set_title("Buildbot Debug Tool: %s" % master)
33 c = xml.signal_connect
34 c('do_connect', self.do_connect)
35 c('do_reload', self.do_reload)
36 c('do_rebuild', self.do_rebuild)
37 c('do_poke_irc', self.do_poke_irc)
38 c('do_build', self.do_build)
39 c('do_ping', self.do_ping)
40 c('do_commit', self.do_commit)
41 c('on_usebranch_toggled', self.usebranch_toggled)
42 self.usebranch_toggled(g('usebranch'))
43 c('on_userevision_toggled', self.userevision_toggled)
44 self.userevision_toggled(g('userevision'))
45 c('do_current_offline', self.do_current, "offline")
46 c('do_current_idle', self.do_current, "idle")
47 c('do_current_waiting', self.do_current, "waiting")
48 c('do_current_building', self.do_current, "building")
49
50 def do_connect(self, widget):
51 if self.connected:
52 self.connectlabel.set_text("Disconnecting...")
53 if self.remote:
54 self.remote.broker.transport.loseConnection()
55 else:
56 self.connectlabel.set_text("Connecting...")
57 f = pb.PBClientFactory()
58 creds = credentials.UsernamePassword("debug", self.passwd)
59 d = f.login(creds)
60 reactor.connectTCP(self.host, int(self.port), f)
61 d.addCallbacks(self.connect_complete, self.connect_failed)
62 def connect_complete(self, ref):
63 self.connectbutton.set_label("Disconnect")
64 self.connectlabel.set_text("Connected")
65 self.connected = 1
66 self.remote = ref
67 self.remote.callRemote("print", "hello cleveland")
68 self.remote.notifyOnDisconnect(self.disconnected)
69 def connect_failed(self, why):
70 self.connectlabel.set_text("Failed")
71 print why
72 def disconnected(self, ref):
73 self.connectbutton.set_label("Connect")
74 self.connectlabel.set_text("Disconnected")
75 self.connected = 0
76 self.remote = None
77
78 def do_reload(self, widget):
79 if not self.remote:
80 return
81 d = self.remote.callRemote("reload")
82 d.addErrback(self.err)
83 def do_rebuild(self, widget):
84 print "Not yet implemented"
85 return
86 def do_poke_irc(self, widget):
87 if not self.remote:
88 return
89 d = self.remote.callRemote("pokeIRC")
90 d.addErrback(self.err)
91
92 def do_build(self, widget):
93 if not self.remote:
94 return
95 name = self.buildname.get_text()
96 branch = None
97 if self.xml.get_widget("usebranch").get_active():
98 branch = self.xml.get_widget('branch').get_text()
99 if branch == '':
100 branch = None
101 revision = None
102 if self.xml.get_widget("userevision").get_active():
103 revision = self.xml.get_widget('revision').get_text()
104 if revision == '':
105 revision = None
106 reason = "debugclient 'Request Build' button pushed"
107 properties = {}
108 d = self.remote.callRemote("requestBuild",
109 name, reason, branch, revision, properties)
110 d.addErrback(self.err)
111
112 def do_ping(self, widget):
113 if not self.remote:
114 return
115 name = self.buildname.get_text()
116 d = self.remote.callRemote("pingBuilder", name)
117 d.addErrback(self.err)
118
119 def usebranch_toggled(self, widget):
120 rev = self.xml.get_widget('branch')
121 if widget.get_active():
122 rev.set_sensitive(True)
123 else:
124 rev.set_sensitive(False)
125
126 def userevision_toggled(self, widget):
127 rev = self.xml.get_widget('revision')
128 if widget.get_active():
129 rev.set_sensitive(True)
130 else:
131 rev.set_sensitive(False)
132
133 def do_commit(self, widget):
134 if not self.remote:
135 return
136 filename = self.filename.get_text()
137 who = self.xml.get_widget("who").get_text()
138
139 branch = None
140 if self.xml.get_widget("usebranch").get_active():
141 branch = self.xml.get_widget('branch').get_text()
142 if branch == '':
143 branch = None
144
145 revision = None
146 if self.xml.get_widget("userevision").get_active():
147 revision = self.xml.get_widget('revision').get_text()
148 try:
149 revision = int(revision)
150 except ValueError:
151 pass
152 if revision == '':
153 revision = None
154
155 kwargs = { 'revision': revision, 'who': who }
156 if branch:
157 kwargs['branch'] = branch
158 d = self.remote.callRemote("fakeChange", filename, **kwargs)
159 d.addErrback(self.err)
160
161 def do_current(self, widget, state):
162 if not self.remote:
163 return
164 name = self.buildname.get_text()
165 d = self.remote.callRemote("setCurrentState", name, state)
166 d.addErrback(self.err)
167 def err(self, failure):
168 print "received error:", failure
169
170 def run(self):
171 reactor.run()
172
173 if __name__ == '__main__':
174 master = "localhost:8007"
175 if len(sys.argv) > 1:
176 master = sys.argv[1]
177 passwd = "debugpw"
178 if len(sys.argv) > 2:
179 passwd = sys.argv[2]
180 d = DebugWidget(master, passwd)
181 d.run()
OLDNEW
« no previous file with comments | « third_party/buildbot_7_12/buildbot/clients/debug.glade ('k') | third_party/buildbot_7_12/buildbot/clients/gtkPanes.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698