Changeset 49ead18f7ad8b878bec1cde942370695b3b4106c

Show
Ignore:
Timestamp:
05/15/08 15:32:19 (6 years ago)
Author:
Mark Harrison <mark@omniti.com>
git-committer:
Mark Harrison <mark@omniti.com> 1210865539 +0000
git-parent:

[1533dda22b2e7854c9d23a7dc3df5b57e838e66f]

git-author:
Mark Harrison <mark@omniti.com> 1210865539 +0000
Message:

Adding a stylesheet to the xml output so the checks look all nice and pretty.

git-svn-id: https://labs.omniti.com/resmon/trunk@89 8c0face9-b7db-6ec6-c4b3-d5f7145c7d55

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lib/Resmon/Status.pm

    rc7fa83a r49ead18  
    100100  my $response = <<EOF 
    101101<?xml version="1.0" encoding="UTF-8"?> 
     102<?xml-stylesheet type="text/xsl" href="/resmon.xsl"?> 
    102103<ResmonResults> 
    103104EOF 
     
    105106  $response .= $self->dump_generic(\&xml_info); 
    106107  $response .= "</ResmonResults>\n"; 
     108  return $response; 
     109} 
     110sub get_xsl() { 
     111  my $response = <<EOF 
     112<?xml version="1.0" encoding="ISO-8859-1"?> 
     113<xsl:stylesheet version="1.0" 
     114    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     115<xsl:template match="ResmonResults"> 
     116<html> 
     117<head> 
     118    <title>Resmon Results</title> 
     119    <link rel="stylesheet" type="text/css" href="/resmon.css" /> 
     120</head> 
     121<body> 
     122    <xsl:for-each select="ResmonResult"> 
     123        <div class="item"> 
     124                <xsl:attribute name="class"> 
     125                    item <xsl:value-of select="state" /> 
     126                </xsl:attribute> 
     127            <h1> 
     128                <xsl:value-of select="\@module" /> - 
     129                <xsl:value-of select="\@service" /> 
     130            </h1> 
     131            <h2> 
     132                <xsl:value-of select="state"/>: 
     133                <xsl:value-of select="message" /> 
     134            </h2> 
     135            <ul> 
     136                <li>Time taken for last check: 
     137                    <xsl:value-of select="last_runtime_seconds" /></li> 
     138                <li>Last updated: 
     139                    <xsl:value-of select="last_update" /></li> 
     140            </ul> 
     141            <h2>Configuration</h2> 
     142            <table> 
     143                <tr> 
     144                    <th>Name</th> 
     145                    <th>Value</th> 
     146                </tr> 
     147                <xsl:for-each select="configuration/*"> 
     148                    <tr> 
     149                        <td><xsl:value-of select="name(.)" /></td> 
     150                        <td><xsl:value-of select="." /></td> 
     151                    </tr> 
     152                </xsl:for-each> 
     153            </table> 
     154        </div> 
     155    </xsl:for-each> 
     156</body> 
     157</html> 
     158</xsl:template> 
     159</xsl:stylesheet> 
     160EOF 
     161  ; 
     162  return $response; 
     163} 
     164sub get_css() { 
     165  my $response=<<EOF 
     166body { 
     167    font-family: Verdana, Arial, helvetica, sans-serif; 
     168} 
     169h1 { 
     170    margin: 0; 
     171    font-size: 120%; 
     172} 
     173 
     174h2 { 
     175    margin: 0; 
     176    font-sizE: 110%; 
     177} 
     178 
     179.item { 
     180    border: 1px solid black; 
     181    padding: 1em; 
     182    margin: 2em; 
     183    background-color: #eeeeee; 
     184} 
     185 
     186.OK { 
     187    background-color: #afa; 
     188} 
     189 
     190.WARNING { 
     191    background-color: #ffa; 
     192} 
     193 
     194.BAD { 
     195    background-color: #faa; 
     196} 
     197 
     198table { 
     199    border: 1px solid black; 
     200    background-color: #eeeeee; 
     201    border-collapse: collapse; 
     202    margin: 1em; 
     203    font-size: 80%; 
     204} 
     205 
     206th { 
     207    font-size: 100%; 
     208    font-weight: bold; 
     209    background-color: black; 
     210    color: white; 
     211} 
     212 
     213td { 
     214    padding-left: 1em; 
     215    padding-right: 1em; 
     216} 
     217EOF 
     218  ; 
    107219  return $response; 
    108220} 
     
    119231    my $response = $self->dump_oldstyle(); 
    120232    $client->print(http_header(200, length($response), 'text/plain', $snip)); 
     233    $client->print($response . "\r\n"); 
     234    return; 
     235  } elsif($req eq '/resmon.xsl') { 
     236    my $response = $self->get_xsl(); 
     237    $client->print(http_header(200, length($response), 'text/xml', $snip)); 
     238    $client->print($response . "\r\n"); 
     239    return; 
     240  } elsif($req eq '/resmon.css') { 
     241    my $response = $self->get_css(); 
     242    $client->print(http_header(200, length($response), 'text/css', $snip)); 
    121243    $client->print($response . "\r\n"); 
    122244    return;