[Checkins] SVN: zopetoolkit/doc/s Updated buildbots and code to generate status

Partick Gerken cvs-admin at zope.org
Thu Aug 30 16:03:56 UTC 2012


Log message for revision 127651:
  Updated buildbots and code to generate status

Changed:
  U   zopetoolkit/doc/source/process/buildbots.rst
  U   zopetoolkit/doc/src/ztksphinx.py

-=-
Modified: zopetoolkit/doc/source/process/buildbots.rst
===================================================================
--- zopetoolkit/doc/source/process/buildbots.rst	2012-08-30 15:56:00 UTC (rev 127650)
+++ zopetoolkit/doc/source/process/buildbots.rst	2012-08-30 16:03:51 UTC (rev 127651)
@@ -74,35 +74,35 @@
 
     * - `ZODB trunk <http://svn.zope.org/ZODB/trunk>`__
       - unsupported
-      - .. buildbotresult:: http://winbot.zope.org/builders/ZODB_dev%20py_254_win32 winbot
+      - unsupported
       - .. buildbotresult:: http://winbot.zope.org/builders/ZODB_dev%20py_265_win32 winbot
       - .. buildbotresult:: http://winbot.zope.org/builders/ZODB_dev%20py_270_win32 winbot
       - .. buildbotresult:: http://winbot.zope.org/builders/ZODB_dev%20py_265_win64 winbot
       - .. buildbotresult:: http://winbot.zope.org/builders/ZODB_dev%20py_270_win64 winbot
 
     * - `ZTK 1.0 <http://svn.zope.org/zopetoolkit/branches/1.0>`__
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_10%20py_244_win32 winbot
+      - 
       - .. buildbotresult:: http://winbot.zope.org/builders/ztk_10%20py_254_win32 winbot
       - .. buildbotresult:: http://winbot.zope.org/builders/ztk_10%20py_265_win32 winbot
       - unsupported
       - .. buildbotresult:: http://winbot.zope.org/builders/ztk_10%20py_265_win64 winbot
       - unsupported
 
-    * - `ZTK trunk <http://svn.zope.org/zopetoolkit/trunk>`__
+    * - `zc.buildout 1.6.x <https://github.com/buildout/buildout/tree/1.6.x>`__
       - unsupported
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_dev%20py_254_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_dev%20py_265_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_dev%20py_270_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_dev%20py_265_win64 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/ztk_dev%20py_270_win64 winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_254_win32%201.6.x winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win32%201.6.x winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win32%201.6.x winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win64%201.6.x winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win64%201.6.x winbot
 
-    * - `zc.buildout trunk <http://svn.zope.org/zc.buildout/trunk>`__
+    * - `zc.buildout master <https://github.com/buildout/buildout>`__
       - unsupported
-      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_254_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win32 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win64 winbot
-      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win64 winbot
+      - 
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win32%20master winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win32%20master winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_265_win64%20master winbot
+      - .. buildbotresult:: http://winbot.zope.org/builders/zc_buildout_dev%20py_270_win64%20master winbot
 
     * - `Bluebream <http://svn.zope.org/bluebream/trunk>`__
       - .. buildbotresult:: http://winbot.zope.org/builders/BlueBream_dev%20py_244_win32 winbot
@@ -129,9 +129,9 @@
 
     * - `Zope 2.10 <http://svn.zope.org/Zope/branches/2.10>`__
       -
+      - unsuported
+      - unsupported 
       - unsupported
-      - unsupported
-      - unsupported
       - EPY
       - unsupported
       - unsupported
@@ -150,33 +150,32 @@
     * - `Zope 2.12 <http://svn.zope.org/Zope/branches/2.12>`__
       - unsupported
       - unsupported
+      - 
       - unsupported
       - unsupported
       - unsupported
-      - unsupported
       - EPY
       - unsupported
 
     * - `Zope 3.4 KGS <http://svn.zope.org/zope.release/branches/3.4>`__
-      - .. buildbotresult:: http://zope3.pov.lt/buildbot/builders/py2.4-32bit-linux POV
-      - .. buildbotresult:: http://zope3.pov.lt/buildbot/builders/py2.5-32bit-linux POV
+      - 
+      - 
       - unsupported
       - unsupported
-      - * .. buildbotresult:: http://buildbot.afpy.org/kgs3.4/builders/Python2.4.6%2064bit%20linux AFPY
-        * .. buildbotresult:: http://zope3.pov.lt/buildbot/builders/py2.4-64bit-linux POV
-      - * .. buildbotresult:: http://buildbot.afpy.org/kgs3.4/builders/Python2.5.5%2064bit%20linux AFPY
+      - * .. buildbotresult:: http://zope3.pov.lt/buildbot/builders/py2.4-64bit-linux POV
+      - * .. buildbotresult:: http://buildbot.afpy.org/kgs3.4/builders/Python2.5.6%2064bit%20linux AFPY
         * .. buildbotresult:: http://zope3.pov.lt/buildbot/builders/py2.5-64bit-linux POV
       - unsupported
       - unsupported
 
     * - `ZTK 1.0 <http://svn.zope.org/zopetoolkit/branches/1.0>`__
+      - 
+      - 
+      - 
       - unsupported
-      - unsupported
-      - unsupported
-      - unsupported
       - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0/builders/Python2.4.6%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0/builders/Python2.5.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0/builders/Python2.6.5%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0/builders/Python2.5.6%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0/builders/Python2.6.7%20Linux%2064bit AFPY
       - unsupported
 
     * - `ZTK 1.0 <http://svn.zope.org/zopetoolkit/branches/1.0>`_ dev
@@ -185,39 +184,29 @@
       -
       - unsupported
       - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0dev/builders/Python2.4.6%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0dev/builders/Python2.5.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0dev/builders/Python2.6.5%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0dev/builders/Python2.5.6%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.0dev/builders/Python2.6.7%20Linux%2064bit AFPY
       - unsupported
 
     * - `ZTK 1.1 <http://svn.zope.org/zopetoolkit/branches/1.1>`__
       - unsupported
+      - 
+      -
+      - 
       - unsupported
-      - unsupported
-      - unsupported
-      - unsupported
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.5.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.6.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.7.2%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.5.6%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.6.7%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1/builders/Python2.7.3%20Linux%2064bit AFPY
 
     * - `ZTK trunk <http://svn.zope.org/zopetoolkit/trunk>`_
       - unsupported
-      - unsupported
-      - unsupported
-      - unsupported
-      - unsupported
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.5.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.6.5%20Linux%2064bit AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.7.2%20Linux%2064bit AFPY
-
-    * - `Bluebream <http://svn.zope.org/bluebream/trunk>`__
+      - 
       -
-      -
-      -
-      -
-      - .. buildbotresult:: http://buildbot.afpy.org/bluebream/builders/Python2.4.6%2064bit%20linux AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/bluebream/builders/Python2.5.5%2064bit%20linux AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/bluebream/builders/Python2.6.5%2064bit%20linux AFPY
-      - .. buildbotresult:: http://buildbot.afpy.org/bluebream/builders/Python2.7.2%2064bit%20linux AFPY
+      - 
+      - 
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.5.6%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.6.7%20Linux%2064bit AFPY
+      - .. buildbotresult:: http://buildbot.afpy.org/ztk1.1dev/builders/Python2.7.3%20Linux%2064bit AFPY
 
 The Buildbot Maintainers
 ~~~~~~~~~~~~~~~~~~~~~~~~

Modified: zopetoolkit/doc/src/ztksphinx.py
===================================================================
--- zopetoolkit/doc/src/ztksphinx.py	2012-08-30 15:56:00 UTC (rev 127650)
+++ zopetoolkit/doc/src/ztksphinx.py	2012-08-30 16:03:51 UTC (rev 127651)
@@ -1,6 +1,6 @@
 from docutils import nodes
 from sphinx.util.compat import Directive
-from xmlrpclib import ServerProxy
+import json
 
 import urllib
 import socket
@@ -40,19 +40,17 @@
         socket.setdefaulttimeout(min(socket_timeout, 5))
         by_url = {}
         for node in doctree.traverse(BuildbotColor):
-            url, builder = parse_builder_url(node.buildbot_url)
-            by_url.setdefault(url, []).append((node, builder))
+            url = parse_builder_url(node.buildbot_url)
+            by_url.setdefault(url, []).append(node)
         jobs = []
         for url, nodes in by_url.items():
-            pieces = [nodes[0::2], nodes[1::2]]
-            for n, nodes in enumerate(pieces):
-                if not nodes:
-                    continue
-                thread = threading.Thread(target=update_buildbot_nodes,
-                                          args=(url, nodes),
-                                          name='%s-%d' % (url, n+1))
-                thread.start()
-                jobs.append(thread)
+            if not nodes:
+                continue
+            thread = threading.Thread(target=update_buildbot_nodes,
+                                      args=(url, nodes),
+                                      name='%s' % (url,))
+            thread.start()
+            jobs.append(thread)
         for thread in jobs:
             thread.join()
     finally:
@@ -61,20 +59,20 @@
 
 def parse_builder_url(url):
     """Parse a builder URL into buildbot URL and builder name."""
-    url = url.rstrip('/') # make sure trailing slashes don't cause failures
-    xmlrpc_url = '/'.join(url.split('/')[:-2] + ['xmlrpc'])
-    builder = urllib.unquote(url.split('/')[-1])
-    return xmlrpc_url, builder
+    # make sure trailing slashes don't cause failures
+    url = url.rstrip('/').split('/')
+    cut_index = url.index('builders')
+    json_url = '/'.join(url[:cut_index] + ['json'] + url[cut_index:])
+    return json_url
 
 
-def update_buildbot_nodes(url, nodes_and_builders):
+def update_buildbot_nodes(url, nodes):
     """Get build status of a number of builders and update document nodes.
 
     ``nodes_and_builders`` is a list of tuples (node, builder_name).
     """
-    results = get_buildbot_results(url, [b for n, b in nodes_and_builders])
-    for node, builder in nodes_and_builders:
-        result = results[builder]
+    result = get_buildbot_result(url)
+    for node in nodes:
         if isinstance(result, Exception):
             node.css_class = 'tests_could_not_determine'
             node.title = '%s: %s' % (result.__class__.__name__, result)
@@ -84,7 +82,7 @@
             node.css_class = 'tests_not_passed'
 
 
-def get_buildbot_results(xmlrpc_url, builders):
+def get_buildbot_result(json_url):
     """Return build status of a number of builders.
 
     ``builders`` is a list of builder names.
@@ -93,57 +91,12 @@
     objects, in case of errors.
     """
     try:
-        xmlrpc = ServerProxy(xmlrpc_url)
+        data = json.load(urllib.urlopen(json_url + '/builds/-1'))
+        print data['text']
+        return u'successful' in data['text']
     except Exception, e:
-        return dict.fromkeys(builders, e)
-    results = {}
-    for builder in builders:
-        try:
-            results[builder] = (xmlrpc.getLastBuildResults(builder) == 'success')
-        except Exception, e:
-            # If the builder is currently running a build, you'll get an
-            # generic "Fault 8002: error".  The server's twistd.log contains
-            # something like:
-            #   2010-10-14 04:05:56+0300 [HTTPChannel,3237,127.0.0.1] Unhandled Error
-            #     Traceback (most recent call last):
-            #       File "/usr/lib/python2.6/dist-packages/twisted/web/server.py", line 132, in render
-            #         body = resrc.render(self)
-            #       File "/usr/lib/python2.6/dist-packages/buildbot/status/web/xmlrpc.py", line 16, in render
-            #         return xmlrpc.XMLRPC.render(self, req)
-            #       File "/usr/lib/python2.6/dist-packages/twisted/web/resource.py", line 210, in render
-            #         return m(request)
-            #       File "/usr/lib/python2.6/dist-packages/twisted/web/xmlrpc.py", line 123, in render_POST
-            #         d = defer.maybeDeferred(function, *args)
-            #     --- <exception caught here> ---
-            #       File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 117, in maybeDeferred
-            #         result = f(*args, **kw)
-            #       File "/usr/lib/python2.6/dist-packages/buildbot/status/web/xmlrpc.py", line 29, in xmlrpc_getLastBuildResults
-            #         return Results[lastbuild.getResults()]
-            #     exceptions.TypeError: list indices must be integers, not NoneType
-            # and the XML-RPC response returned to the client looks like
-            #   HTTP/1.1 200 OK
-            #   ...
-            #   <?xml version='1.0'?>
-            #   <methodResponse>
-            #   <fault>
-            #   <value><struct>
-            #   <member>
-            #   <name>faultCode</name>
-            #   <value><int>8002</int></value>
-            #   </member>
-            #   <member>
-            #   <name>faultString</name>
-            #   <value><string>error</string></value>
-            #   </member>
-            #   </struct></value>
-            #   </fault>
-            #   </methodResponse>
-            # Buildbot version 0.7.12-1ubuntu1
-            # Buildbot bug, I haven't had time to search for/file a ticket yet.
-            results[builder] = e
-    return results
+        return e
 
-
 class BuildbotColor(nodes.Inline, nodes.TextElement):
     pass
 



More information about the checkins mailing list