aboutsummaryrefslogtreecommitdiffstats
path: root/examples/add_header.py
blob: 3e0b5f1e3154b286016e82b62677c05f65301f57 (plain)
1
2
def response(flow):
    flow.response.headers["newheader"] = "foo"
iteral.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
from xen.xend.XendClient import server

from xen.sv.util import *
from xen.sv.GenTabbed import *

class NodeInfo( GenTabbed ):

    def __init__( self, urlWriter ):  
        GenTabbed.__init__( self, "Node Details", urlWriter, [ 'General', 'Dmesg', 'SXP' ], [ NodeGeneralTab, NodeDmesgTab, NodeSXPTab ] )
    
    def write_MENU( self, request ):
        request.write( "<p class='small'><a href='%s'>Node details</a></p>" % self.urlWriter( '' ) )

class NodeGeneralTab( CompositeTab ):
    def __init__( self, urlWriter ):
    	CompositeTab.__init__( self, [ NodeInfoTab, NodeActionTab ], urlWriter )        
        
class NodeInfoTab( GeneralTab ):
                        
    def __init__( self, urlWriter ):
         
    	nodeInfo = {}
        try:
            nodeInfo = sxp2hash( server.xend_node() )
   	except:
            nodeInfo[ 'system' ] = 'Error getting node info'
             
        dictTitles = {}
        dictTitles[ 'System' ] = 'system'
        dictTitles[ 'Hostname' ] = 'host' 
        dictTitles[ 'Release' ] = 'release' 
        dictTitles[ 'Version' ] ='version' 
        dictTitles[ 'Machine' ] = 'machine' 
        dictTitles[ 'Cores' ] = 'cores' 
        dictTitles[ 'Hyperthreading' ] = ( 'hyperthreads_per_core', hyperthreadFormatter )
        dictTitles[ 'CPU Speed' ] = ( 'cpu_mhz', cpuFormatter )
        dictTitles[ 'Memory' ] = ( 'memory', memoryFormatter )
        dictTitles[ 'Free Memory' ] = ( 'free_memory', memoryFormatter )
        
        GeneralTab.__init__( self, dict=nodeInfo, titles=dictTitles )

class NodeDmesgTab( PreTab ):

    def __init__( self, urlWriter ):
    	try:
            dmesg = server.xend_node_get_dmesg()
        except:
            dmesg = "Error getting node information: XenD not running?"
        PreTab.__init__( self, dmesg )
  
class NodeActionTab( ActionTab ):

    def __init__( self, urlWriter ):
        ActionTab.__init__( self, { "shutdown" : "shutdown",
        	"reboot" : "reboot" } )    
        
    def op_shutdown( self, request ):
        if debug: print ">NodeShutDown"
    	server.xend_node_shutdown()
    
    def op_reboot( self, request ):
        if debug: print ">NodeReboot"
        server.xend_node_reboot()

class NodeSXPTab( PreTab ):

    def __init__( self, urlWriter ):
        try:
            nodeSXP = sxp2string( server.xend_node() )
        except:
            nodeSXP = 'Error getting node sxp'

        PreTab.__init__( self, nodeSXP )