SGE qstat XML Stylesheet
qstat -xml
<?xml version="1.0"?>
<job_info xmlns:xsd="http://www.w3.org/2001/XMLScenehema">
<queue_info>
<Queue-List>
<name>all.q@l1</name>
<qtype>BIP</qtype>
<slots_used>1</slots_used>
<slots_total>2</slots_total>
<arch>lx24-amd64</arch>
<job_list state="running">
<JB_job_number>652</JB_job_number>
<JAT_prio>0.55500</JAT_prio>
<JB_name>Scene149_V01</JB_name>
<JB_owner>renderer</JB_owner>
<state>r</state>
<JAT_start_time>2008-04-29T22:21:41</JAT_start_time>
<slots>1</slots>
<tasks>38</tasks>
</job_list>
</Queue-List>
<Queue-List>
<name>all.q@l10</name>
<qtype>BIP</qtype>
<slots_used>1</slots_used>
<slots_total>2</slots_total>
<arch>lx24-amd64</arch>
<job_list state="running">
<JB_job_number>652</JB_job_number>
<JAT_prio>0.55500</JAT_prio>
<JB_name>Scene149_V01</JB_name>
<JB_owner>renderer</JB_owner>
<state>r</state>
<JAT_start_time>2008-04-29T22:21:56</JAT_start_time>
<slots>1</slots>
<tasks>45</tasks>
</job_list>
</Queue-List>
...
<job_info>
<job_list state="pending">
<JB_job_number>652</JB_job_number>
<JAT_prio>0.55500</JAT_prio>
<JB_name>Scene149_V01</JB_name>
<JB_owner>renderer</JB_owner>
<state>qw</state>
<JB_submission_time>2008-04-29T09:13:09</JB_submission_time>
<slots>1</slots>
<tasks>65-84:1</tasks>
</job_list>
<job_list state="pending">
<JB_job_number>653</JB_job_number>
<JAT_prio>0.55500</JAT_prio>
<JB_name>Scene150_V01</JB_name>
<JB_owner>renderer</JB_owner>
<state>qw</state>
<JB_submission_time>2008-04-29T09:13:11</JB_submission_time>
<slots>1</slots>
</job_list>
...
</job_info>
</job_info>
However, there is no corresponding XML stylesheet. It is trivial to wrap the qstat -xml with a
CGI program to include a customised stylesheet so that the output can be visulaised in a browser. A shell script with AWK will do the job.
#! /bin/sh
echo "Content-type: text/xml"
echo
SGE_ROOT=/gridware/sge /gridware/sge/bin/lx24-amd64/qstat -f -xml | \
awk '
{
print $0
if ( NR==1 ) {
printf("<?xml-stylesheet type="text/xsl" href="qstat.xsl"?>\n")
}
}'
Below is my XML stylesheet (qstat.xsl) and it's corresponding CSS (qstat.css)
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/job_info"> <html> <head> <title>SGE qstat</title> <link rel="stylesheet" href="qstat.css" type="text/css"/> </head> <body background="#000"> <table cellspacing="10" border="0"> <tr><td align="left" valign="top"> <!-- Running --> <h1>Running</h1> <table border="1" cellpadding="4" cellspacing="0"> <tr> <th>Queue Name</th> <th>Job ID</th> <th>Job Name</th> <th>Task ID</th> <th>State</th> <th>Start Time</th> </tr> <xsl:for-each select="queue_info/Queue-List"> <tr> <td class="value"><xsl:value-of select="name/text()" /></td> <td class="value"><xsl:value-of select="job_list/JB_job_number/text()" /></td> <td class="value"><xsl:value-of select="job_list/JB_name/text()" /></td> <td class="value"><xsl:value-of select="job_list/tasks/text()" /></td> <td class="value"><span class="running"><xsl:value-of select="job_list/@state" /></span></td> <td class="value"><xsl:value-of select="job_list/JAT_start_time/text()" /></td> </tr> </xsl:for-each> </table> </td> <td align="left" valign="top"> <!-- Pending --> <h1>Pending</h1> <table border="1" cellpadding="4" cellspacing="0"> <tr> <th>Job ID</th> <th>Job Name</th> <th>Task ID</th> <th>State</th> <th>Submission Time</th> </tr> <xsl:for-each select="job_info/job_list"> <tr> <td class="value"><xsl:value-of select="JB_job_number/text()" /></td> <td class="value"><xsl:value-of select="JB_name/text()" /></td> <td class="value"><xsl:value-of select="tasks/text()" /></td> <td class="value"><span class="pending"><xsl:value-of select="@state" /></span></td> <td class="value"><xsl:value-of select="JB_submission_time/text()" /></td> </tr> </xsl:for-each> </table> </td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet>
body {
background: #000;
color: #fff;
font-family: Arial;
font-size: 12px;
}
h1 {
color: #ff7800;
font-size: 32px;
font-family: Times;
font-weight: bold;
}
.value {
color: #aaa;
font-size: 12px;
font-family: Arial;
}
.running {
color: #0b0;
font-size: 12px;
font-family: Arial;
font-weight: bold;
}
.pending {
color: #b00;
font-size: 12px;
font-family: Arial;
font-weight: bold;
}



