pld-builder.new: PLD_Builder/request.py - revert previous change - nonfatal...

glen glen at pld-linux.org
Tue Aug 31 21:40:10 CEST 2010


Author: glen                         Date: Tue Aug 31 19:40:10 2010 GMT
Module: pld-builder.new               Tag: HEAD
---- Log message:
- revert previous change
- nonfatal buildtime hacks

---- Files affected:
pld-builder.new/PLD_Builder:
   request.py (1.83 -> 1.84) 

---- Diffs:

================================================================
Index: pld-builder.new/PLD_Builder/request.py
diff -u pld-builder.new/PLD_Builder/request.py:1.83 pld-builder.new/PLD_Builder/request.py:1.84
--- pld-builder.new/PLD_Builder/request.py:1.83	Tue Aug 31 19:31:57 2010
+++ pld-builder.new/PLD_Builder/request.py	Tue Aug 31 21:40:05 2010
@@ -53,20 +53,19 @@
         for c in e.childNodes:
             if is_blank(c): continue
 
-            key = text(c)
             if c.nodeType != Element.ELEMENT_NODE:
                 log.panic("xml: evil group child %d" % c.nodeType)
             if c.nodeName == "batch":
                 self.batches.append(Batch(c))
             elif c.nodeName == "requester":
-                self.requester = key
+                self.requester = text(c)
                 self.requester_email = attr(c, "email", "")
             elif c.nodeName == "priority":
-                self.priority = int(key)
+                self.priority = int(text(c))
             elif c.nodeName == "time":
-                self.time = int(key)
+                self.time = int(text(c))
             elif c.nodeName == "maxjobs":
-                self.max_jobs = int(key)
+                self.max_jobs = int(text(c))
             else:
                 log.panic("xml: evil group child (%s)" % c.nodeName)
         # note that we also check that group is sorted WRT deps
@@ -141,6 +140,7 @@
         self.builders = []
         self.builders_status = {}
         self.builders_status_time = {}
+        self.builders_status_buildtime = {}
         self.kernel = ""
         self.target = []
         self.branch = ""
@@ -156,37 +156,39 @@
         self.upgraded = True
         for c in e.childNodes:
             if is_blank(c): continue
-            key = text(c)
+
             if c.nodeType != Element.ELEMENT_NODE:
                 log.panic("xml: evil batch child %d" % c.nodeType)
             if c.nodeName == "src-rpm":
-                self.src_rpm = key
+                self.src_rpm = text(c)
             elif c.nodeName == "spec":
                 # normalize specname, specname is used as buildlog and we don't
                 # want to be exposed to directory traversal attacks
-                self.spec = key.split('/')[-1]
+                self.spec = text(c).split('/')[-1]
             elif c.nodeName == "command":
                 self.spec = "COMMAND"
-                self.command = key.strip()
+                self.command = text(c).strip()
                 self.command_flags = string.split(attr(c, "flags", ""))
             elif c.nodeName == "info":
-                self.info = key
+                self.info = text(c)
             elif c.nodeName == "kernel":
-                self.kernel = key
+                self.kernel = text(c)
             elif c.nodeName == "target":
-                self.target.append(key)
+                self.target.append(text(c))
             elif c.nodeName == "skip":
-                self.skip.append(key)
+                self.skip.append(text(c))
             elif c.nodeName == "branch":
-                self.branch = key
+                self.branch = text(c)
             elif c.nodeName == "builder":
+                key = text(c)
                 self.builders.append(key)
                 self.builders_status[key] = attr(c, "status", "?")
                 self.builders_status_time[key] = attr(c, "time", "0")
+                self.builders_status_buildtime[key] = "0" #attr(c, "buildtime", "0")
             elif c.nodeName == "with":
-                self.bconds_with.append(key)
+                self.bconds_with.append(text(c))
             elif c.nodeName == "without":
-                self.bconds_without.append(key)
+                self.bconds_without.append(text(c))
             else:
                 log.panic("xml: evil batch child (%s)" % c.nodeName)
 
@@ -260,9 +262,17 @@
                 link_pre = "<a href=\"http://buildlogs.pld-linux.org/index.php?dist=%s&arch=%s&ok=%d&name=%s&id=%s&action=tail\">" \
                      % (urllib.quote(bld[0]), urllib.quote(bld[1]), is_ok, urllib.quote(bl_name), urllib.quote(rid))
                 link_post = "</a>"
-            tooltip = "last update: %(time)s\nbuild time: %(buildtime)s\n" % {
-                'time' : time.asctime(time.localtime(float(self.builders_status_time[b]))),
-                'buildtime': 'n/a',
+
+            def ftime(s):
+                t = float(s)
+                if t > 0:
+                    return time.asctime(time.localtime(t))
+                else:
+                    return 'N/A'
+
+            tooltip = "last update: %(time)s\nbuild time: %(buildtime)s" % {
+                'time' : ftime(self.builders_status_time[b]),
+                'buildtime' : ftime(self.builders_status_buildtime[b]),
             }
             builders.append(link_pre +
                 "<font color='%(color)s'><b title=\"%(tooltip)s\">%(builder)s:%(status)s</b></font>" % {
@@ -318,8 +328,12 @@
         for b in self.bconds_without:
             f.write("           <without>%s</without>\n" % escape(b))
         for b in self.builders:
-            f.write("           <builder status='%s' time='%s'>%s</builder>\n" % \
-                    (escape(self.builders_status[b]), self.builders_status_time[b], escape(b)))
+            if self.builders_status_buildtime.has_key(b):
+                t = self.builders_status_buildtime[b]
+            else:
+                t = "0"
+            f.write("           <builder status='%s' time='%s' buildtime='%s'>%s</builder>\n" % \
+                    (escape(self.builders_status[b]), self.builders_status_time[b], t, escape(b)))
         f.write("         </batch>\n")
 
     def log_line(self, l):
@@ -347,6 +361,7 @@
         self.group_id = attr(e, "group-id")
         self.builder = attr(e, "builder")
         self.batches = {}
+        self.batches_buildtime = {}
         for c in e.childNodes:
             if is_blank(c): continue
             if c.nodeType != Element.ELEMENT_NODE:
@@ -354,9 +369,11 @@
             if c.nodeName == "batch":
                 id = attr(c, "id")
                 status = attr(c, "status")
+                buildtime = attr(c, "buildtime", "0")
                 if not status.startswith("OK") and not status.startswith("SKIP") and not status.startswith("UNSUPP") and not status.startswith("FAIL"):
                     log.panic("xml notification: bad status: %s" % status)
                 self.batches[id] = status
+                self.batches_buildtime[id] = buildtime
             else:
                 log.panic("xml: evil notification child (%s)" % c.nodeName)
 
@@ -367,6 +384,7 @@
                     if self.batches.has_key(b.b_id):
                         b.builders_status[self.builder] = self.batches[b.b_id]
                         b.builders_status_time[self.builder] = time.time()
+                        b.builders_status_buildtime[self.builder] = "0" #self.batches_buildtime[b.b_id]
 
 def build_request(e):
     if e.nodeType != Element.ELEMENT_NODE:
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/request.py?r1=1.83&r2=1.84&f=u



More information about the pld-cvs-commit mailing list