FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Build System

 
 
LinkBack Thread Tools
 
Old 12-01-2011, 08:30 PM
Jon Chiappetta
 
Default Some Possibly Useful Koji Changes

Patch details:
- Mark any host that hasn't checked in the last 5 minutes as red
- Mark all other hosts as green
- Place all hosts on one page so one does not have to scroll thru and find any possibly downed hosts

--- ./koji-1.6.0/www/kojiweb/index.py*** 2010-12-16 16:13:17.000000000 -0500
+++ ./index.py.0*** 2011-12-01 13:53:54.169121521 -0500
@@ -1419,8 +1419,27 @@
******** host['last_update'] = lastUpdate
*
**** # Paginate after retrieving last update info so we can sort on it
-*** kojiweb.util.paginateList(values, hosts, start, 'hosts', 'host', order)
-
+*** #kojiweb.util.paginateList(values, hosts, start, 'hosts', 'host', order)
+**
+*** if (order != None):
+******* hosts.sort(kojiweb.util.sortByKeyFunc(order, False))
+*** for host in hosts:
+******* flag = 0
+******* try:
+*********** utct = time.localtime()
+*********** utcs = int(time.strftime("%s", utct))
+*********** chkt = time.strptime(host['last_update'][0:19], "%Y-%m-%d %H:%M:%S")
+*********** chks = int(time.strftime("%s", chkt))
+*********** if ((utcs - (5 * 60)) >= chks):
+*************** flag = 1
+******* except:
+*********** flag = 1
+******* if (flag == 1):
+*********** host['name'] = ("<font color='#C00'>" + host['name'] + "</font>")
+******* else:
+*********** host['name'] = ("<font color='#0C0'>" + host['name'] + "</font>")
+*** kojiweb.util._populateValues(values, 'hosts', 'host', hosts, len(hosts), 0, len(hosts), len(hosts) + 5, order)
+**
**** return _genHTML(req, 'hosts.chtml')
*
*def hostinfo(req, hostID=None, userID=None):

Patch details:
- Produce a list of the latest buildArch attempts made by a host on the "hostinfo" page (up to max 50)

--- ./koji-1.6.0/www/kojiweb/index.py*** 2010-12-16 16:13:17.000000000 -0500
+++ ./index.py.1*** 2011-12-01 13:54:22.748122221 -0500
@@ -1423,6 +1423,18 @@
*
**** return _genHTML(req, 'hosts.chtml')
*
+def saferemo(inptstri, begistri, endistri, remoflag=True):
+*** outpstri = inptstri
+*** begilist = inptstri.split(begistri, 1)
+*** if (len(begilist) > 1):
+******* endilist = begilist[1].split(endistri, 1)
+******* if (len(endilist) > 1):
+*********** if (remoflag):
+*************** outpstri = (begilist[0] + endilist[1])
+*********** else:
+*************** outpstri = (begistri + endilist[0] + endistri)
+*** return outpstri
+
*def hostinfo(req, hostID=None, userID=None):
**** values = _initValues(req, 'Host Info', 'hosts')
**** server = _getServer(req)
@@ -1461,7 +1473,16 @@
**** else:
******** values['perms'] = []
****
-*** return _genHTML(req, 'hostinfo.chtml')
+*** hout = _genHTML(req, 'hostinfo.chtml')
+*** hidn = hostID
+*** tout = tasks(req, state='all', method='buildArch', view='flat', hostID=hidn)
+*** tout = tout.replace(" ", "").replace("
", "").replace("
", "")
+*** tout = saferemo(tout, "<form action="" "</form>")
+*** tout = saferemo(tout, "<table class="data-list">", "</table>", remoflag=False)
+***
+*** hout = hout.replace("<p id="footer">", tout + "<p id="footer">")
+***
+*** return hout
*
*def hostedit(req, hostID):
**** server = _getServer(req)

Patch details:
- Grab the last 5 buildArch statuses from Koji for each builder using ajax
- It will place that short build history beside each builder (sort of like a little "life-line")

--- ./koji-1.6.0/www/kojiweb/includes/header.chtml*** 2010-12-16 16:13:17.000000000 -0500
+++ ./header.chtml*** 2011-12-01 14:03:44.414136005 -0500
@@ -37,8 +37,95 @@
**** <link rel="stylesheet" type="text/css" media="screen" title="Koji Style" href=""/>
**** <link rel="alternate stylesheet" type="text/css" media="screen" title="Debug" href=""/>
**** <link rel="alternate" type="application/rss+xml" title="Koji: recent builds" href=""/>
+*** <script>
+******* var hostxmld = null, hostlist = [];
+*** function hostresp()
+*** {
+*** *** if (hostxmld.readyState == 4)
+*** *** {
+*** ******* if (hostxmld.status == 200)
+*** *** {
+*** *** *** var x, machobjc, infostri = "", infolist = [];
+*** *** *** var regxfail = /^(<a href="" class="taskfailed" title=")failed(">)(.*)(</a>)$/;
+*** *** *** var regxpass = /^(<a href="" class="taskclosed" title=")closed(">)(.*)(</a>)$/;
+*** *** *** var taskdata = hostxmld.responseText.replace(/<a /g, "
<a ").replace(/</a>/g, "</a>
");
+*** *** *** var tasklist = taskdata.split("
");
+*** *** *** for (x = 0; x < tasklist.length; ++x)
+*** *** *** {
+*** *** ******* machobjc = regxfail.exec(tasklist[x]);
+*********************** if (machobjc != null)
+*********************** {
+*************************** infolist.push([machobjc[1], machobjc[3], machobjc[2], "F", machobjc[4]]);
+*********************** }
+*** *** *** machobjc = regxpass.exec(tasklist[x]);
+*** *** ******* if (machobjc != null)
+*** *** *** {
+*** *** *** *** infolist.push([machobjc[1], machobjc[3], machobjc[2], "C", machobjc[4]]);
+*** *** *** }
+*** *** *** }
+*** *** *** for (x = 0; (x < infolist.length) && (x < 5); ++x)
+*** *** *** {
+*********************** if (x != 0)
+*** *** *** {
+*** *** *** *** infostri += ".";
+*** *** *** }
+*** *** ******* infostri += (infolist[x][0] + infolist[x][1] + infolist[x][2] + infolist[x][3] + infolist[x][4]);
+*** *** *** }
+*** *** *** if (infostri != "")
+*** *** *** {
+*** *** ******* infostri = ("[ " + infostri + " ]");
+*** *** *** }
+*** *** *** hostlist[0][1].innerHTML = (hostlist[0][1].innerHTML + " " + infostri);
+*** *** }
+*** *** hostlist.shift();
+*** ******* hostxmld = null;
+*** *** }
+*** }
+*** function hostrequ(hostnumb)
+*** {
+*** *** if (hostxmld != null)
+*** *** {
+*** ******* return 0;
+*** *** }
+*** *** hostxmld = new XMLHttpRequest();
+*** *** hostxmld.>+*** *** hostxmld.open("GET", "tasks?method=buildArch&state=all&view=flat&or der=-id&hostID=" + hostnumb, true);
+*** *** hostxmld.send();
+*** *** return 1;
+*** }
+*** function hostloop()
+*** {
+*** *** if (hostlist.length > 0)
+*** *** {
+*** ******* var hostiden = hostlist[0][0].innerHTML.replace(/[^0-9]/g, "");
+*** *** hostrequ(hostiden);
+*** ******* setTimeout("hostloop();", 100);
+*********** }
+*** }
+******* function hostinfo()
+******* {
+*** *** if (location.href.match(/^.*/hosts$/) || location.href.match(/^.*/hosts?[^/]*$/))
+*** *** {
+*** ******* var x, y;
+*** ******* var tabllist = document.getElementsByClassName("data-list");
+*** *** for (x = 0; x < tabllist.length; ++x)
+*** *** {
+*** *** *** var rowslist = tabllist[x].getElementsByTagName("tr");
+*** *** *** for (y = 0; y < rowslist.length; ++y)
+*** *** *** {
+*** *** ******* if (rowslist[y].className.match(/^.*row-odd.*$/) || rowslist[y].className.match(/^.*row-even.*$/))
+*** *** *** {
+*** *** *** *** var colslist = rowslist[y].getElementsByTagName("td");
+*** *** *** *** hostlist.push(colslist);
+*** *** *** }
+*** *** *** }
+*** *** }
+*** *** }
+*** *** hostloop();
+*** }
+*** </script>
** </head>
-* <body id="$pageID">
+* <body id="$pageID" >
*
**** <div id="wrap">
****** <div id="innerwrap">
--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys
 

Thread Tools




All times are GMT. The time now is 08:21 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org