<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>flumotion.component.bouncers.bouncer.Bouncer</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> Package flumotion :: <a href="flumotion.component-module.html">Package component</a> :: <a href="flumotion.component.bouncers-module.html">Package bouncers</a> :: <a href="flumotion.component.bouncers.bouncer-module.html">Module bouncer</a> :: Class Bouncer </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class Bouncer</h1><p class="nomargin-top"><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer">source code</a></span></p> <pre class="base-tree"> object --+ | <a href="flumotion.common.common.InitMixin-class.html">common.common.InitMixin</a> --+ | <a href="flumotion.extern.log.log.Loggable-class.html">extern.log.log.Loggable</a> --+ | <a href="flumotion.component.component.BaseComponent-class.html">component.BaseComponent</a> --+ | <strong class="uidshort">Bouncer</strong> </pre> <dl><dt>Known Subclasses:</dt> <dd> <ul class="subclass-list"> <li class="private"><a href="flumotion.component.bouncers.bouncer.AuthSessionBouncer-class.html" onclick="show_private();">AuthSessionBouncer</a></li><li class="private">, <a href="flumotion.component.bouncers.bouncer.TrivialBouncer-class.html" onclick="show_private();">TrivialBouncer</a></li><li>, <a href="flumotion.component.bouncers.tokentestbouncer.TokenTestBouncer-class.html">tokentestbouncer.TokenTestBouncer</a></li><li>, <a href="flumotion.component.bouncers.icalbouncer.IcalBouncer-class.html">icalbouncer.IcalBouncer</a></li><li>, <a href="flumotion.component.bouncers.ipbouncer.IPBouncer-class.html">ipbouncer.IPBouncer</a></li> </ul> </dd></dl> <hr /> <p>I am the base class for all bouncers.</p> <!-- ==================== NESTED CLASSES ==================== --> <a name="section-NestedClasses"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Nested Classes</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-NestedClasses" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">child class of <a href="flumotion.component.component.BaseComponentMedium-class.html" class="link">BaseComponentMedium</a></span> </td><td class="summary"> <a href="flumotion.component.bouncers.bouncer.BouncerMedium-class.html" class="summary-name">componentMediumClass</a><br /> the medium class to use for this component </td> </tr> </table> <!-- ==================== INSTANCE METHODS ==================== --> <a name="section-InstanceMethods"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Instance Methods</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceMethods" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#init" class="summary-sig-name">init</a>(<span class="summary-sig-arg">self</span>)</span><br /> A subclass should do as little as possible in its init method.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.init">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="setDomain"></a><span class="summary-sig-name">setDomain</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">name</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.setDomain">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="getDomain"></a><span class="summary-sig-name">getDomain</span>(<span class="summary-sig-arg">self</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.getDomain">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="typeAllowed"></a><span class="summary-sig-name">typeAllowed</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Verify if the keycard is an instance of a Keycard class specified in the bouncer's keycardClasses variable.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.typeAllowed">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="setEnabled"></a><span class="summary-sig-name">setEnabled</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">enabled</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.setEnabled">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="getEnabled"></a><span class="summary-sig-name">getEnabled</span>(<span class="summary-sig-arg">self</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.getEnabled">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#do_stop" class="summary-sig-name">do_stop</a>(<span class="summary-sig-arg">self</span>)</span><br /> BaseComponent vmethod for stopping.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_stop">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="authenticate"></a><span class="summary-sig-name">authenticate</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.authenticate">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">bool</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#do_expireKeycards" class="summary-sig-name">do_expireKeycards</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">elapsed</span>)</span><br /> Override to expire keycards managed by sub-classes.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_expireKeycards">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">bool</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#do_validate" class="summary-sig-name">do_validate</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Override to check keycards before authentication steps.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_validate">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#do_authenticate" class="summary-sig-name">do_authenticate</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Must be overridden by subclasses.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_authenticate">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#on_keycardAdded" class="summary-sig-name">on_keycardAdded</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Override to update sub-class specific data related to keycards.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_keycardAdded">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#on_keycardRemoved" class="summary-sig-name">on_keycardRemoved</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Override to cleanup sub-class specific data related to keycards.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_keycardRemoved">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="on_enabled"></a><span class="summary-sig-name">on_enabled</span>(<span class="summary-sig-arg">self</span>)</span><br /> Override to initialize sub-class specific data when the bouncer is enabled.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_enabled">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="on_disabled"></a><span class="summary-sig-name">on_disabled</span>(<span class="summary-sig-arg">self</span>)</span><br /> Override to cleanup sub-class specific data when the bouncer is disabled.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_disabled">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="hasKeycard"></a><span class="summary-sig-name">hasKeycard</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.hasKeycard">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="generateKeycardId"></a><span class="summary-sig-name">generateKeycardId</span>(<span class="summary-sig-arg">self</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.generateKeycardId">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#addKeycard" class="summary-sig-name">addKeycard</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Adds a keycard to the bouncer.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.addKeycard">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="removeKeycard"></a><span class="summary-sig-name">removeKeycard</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.removeKeycard">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="removeKeycardId"></a><span class="summary-sig-name">removeKeycardId</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycardId</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.removeKeycardId">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="keepAlive"></a><span class="summary-sig-name">keepAlive</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">issuerName</span>, <span class="summary-sig-arg">ttl</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.keepAlive">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="expireAllKeycards"></a><span class="summary-sig-name">expireAllKeycards</span>(<span class="summary-sig-arg">self</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.expireAllKeycards">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="expireKeycardId"></a><span class="summary-sig-name">expireKeycardId</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycardId</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.expireKeycardId">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="expireKeycardIds"></a><span class="summary-sig-name">expireKeycardIds</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycardIds</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.expireKeycardIds">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="_expireNextKeycardBlock"></a><span class="summary-sig-name">_expireNextKeycardBlock</span>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">total</span>, <span class="summary-sig-arg">keycardIds</span>, <span class="summary-sig-arg">finished</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer._expireNextKeycardBlock">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="flumotion.component.bouncers.bouncer.Bouncer-class.html#_addKeycard" class="summary-sig-name" onclick="show_private();">_addKeycard</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">keycard</span>)</span><br /> Adds a keycard without checking.</td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer._addKeycard">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="_expire"></a><span class="summary-sig-name">_expire</span>(<span class="summary-sig-arg">self</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer._expire">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.component.component.BaseComponent-class.html">component.BaseComponent</a></code></b>: <code><a href="flumotion.component.component.BaseComponent-class.html#__init__">__init__</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#addMessage">addMessage</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#adminCallRemote">adminCallRemote</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#check_properties">check_properties</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#do_check">do_check</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#do_setup">do_setup</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#fixRenamedProperties">fixRenamedProperties</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#getMood">getMood</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#getName">getName</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#getWorkerName">getWorkerName</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setMedium">setMedium</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setMood">setMood</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setShutdownHook">setShutdownHook</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setWorkerName">setWorkerName</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setup">setup</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#setup_completed">setup_completed</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#stop">stop</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#waitForHappy">waitForHappy</a></code> </p> <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.component.component.BaseComponent-class.html">component.BaseComponent</a></code></b> (private): <code><a href="flumotion.component.component.BaseComponent-class.html#_pollCPU" onclick="show_private();">_pollCPU</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#_pollMemory" onclick="show_private();">_pollMemory</a></code> </p></div> <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: <code>__delattr__</code>, <code>__format__</code>, <code>__getattribute__</code>, <code>__hash__</code>, <code>__new__</code>, <code>__reduce__</code>, <code>__reduce_ex__</code>, <code>__repr__</code>, <code>__setattr__</code>, <code>__sizeof__</code>, <code>__str__</code>, <code>__subclasshook__</code> </p> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.extern.log.log.Loggable-class.html">extern.log.log.Loggable</a></code></b>: <code><a href="flumotion.extern.log.log.Loggable-class.html#debug">debug</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#doLog">doLog</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#error">error</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#info">info</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#log">log</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#logFunction">logFunction</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#logObjectName">logObjectName</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#warning">warning</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#warningFailure">warningFailure</a></code>, <code><a href="flumotion.extern.log.log.Loggable-class.html#writeMarker">writeMarker</a></code> </p> </td> </tr> </table> <!-- ==================== CLASS VARIABLES ==================== --> <a name="section-ClassVariables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Class Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-ClassVariables" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">tuple of <a href="flumotion.common.keycards.Keycard-class.html" class="link">flumotion.common.keycards.Keycard</a> class objects</span> </td><td class="summary"> <a name="keycardClasses"></a><span class="summary-name">keycardClasses</span> = <code title="()"><code class="variable-group">(</code><code class="variable-group">)</code></code><br /> tuple of all classes of keycards this bouncer can authenticate, in order of preference </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="logCategory"></a><span class="summary-name">logCategory</span> = <code title="'bouncer'"><code class="variable-quote">'</code><code class="variable-string">bouncer</code><code class="variable-quote">'</code></code><br /> Implementors can provide a category to log their messages under. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="KEYCARD_EXPIRE_INTERVAL"></a><span class="summary-name">KEYCARD_EXPIRE_INTERVAL</span> = <code title="120">120</code> </td> </tr> </table> <!-- ==================== INSTANCE VARIABLES ==================== --> <a name="section-InstanceVariables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Instance Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceVariables" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.component.component.BaseComponent-class.html">component.BaseComponent</a></code></b>: <code><a href="flumotion.component.component.BaseComponent-class.html#medium">medium</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#name">name</a></code>, <code><a href="flumotion.component.component.BaseComponent-class.html#uiState">uiState</a></code> </p> </td> </tr> </table> <!-- ==================== PROPERTIES ==================== --> <a name="section-Properties"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Properties</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Properties" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: <code>__class__</code> </p> </td> </tr> </table> <!-- ==================== METHOD DETAILS ==================== --> <a name="section-MethodDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Method Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-MethodDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="init"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">init</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.init">source code</a></span> </td> </tr></table> <p>A subclass should do as little as possible in its init method. In particular, it should not try to access resources.</p> <p>Failures during init are marshalled back to the manager through the worker's remote_create method, since there is no component state proxied to the manager yet at the time of init.</p> <dl class="fields"> <dt>Overrides: <a href="flumotion.component.component.BaseComponent-class.html#init">component.BaseComponent.init</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="do_stop"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">do_stop</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_stop">source code</a></span> </td> </tr></table> <p>BaseComponent vmethod for stopping. The component should do any cleanup it needs, but must not set the component's mood to sleeping.</p> <dl class="fields"> <dt>Returns:</dt> <dd><code class="link">twisted.internet.defer.Deferred</code></dd> <dt>Overrides: <a href="flumotion.component.component.BaseComponent-class.html#do_stop">component.BaseComponent.do_stop</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="do_expireKeycards"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">do_expireKeycards</span>(<span class="sig-arg">self</span>, <span class="sig-arg">elapsed</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_expireKeycards">source code</a></span> </td> </tr></table> <p>Override to expire keycards managed by sub-classes.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>elapsed</code></strong> (int) - time in second since the last expiration call.</li> </ul></dd> <dt>Returns: bool</dt> <dd>if there is more keycard to expire. If False is returned, the expirer poller MAY be stopped.</dd> </dl> </td></tr></table> </div> <a name="do_validate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">do_validate</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_validate">source code</a></span> </td> </tr></table> <p>Override to check keycards before authentication steps. Should return True if the keycard is valid, False otherwise. #FIXME: This belong to the base bouncer class</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>keycard</code></strong> (flumotion.common.keycards.Keycard) - the keycard that should be validated before authentication</li> </ul></dd> <dt>Returns: bool</dt> <dd>True if the keycard is accepted, False otherwise</dd> </dl> </td></tr></table> </div> <a name="do_authenticate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">do_authenticate</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.do_authenticate">source code</a></span> </td> </tr></table> <p>Must be overridden by subclasses.</p> <p>Authenticate the given keycard. Return the keycard with state AUTHENTICATED to authenticate, with state REQUESTING to continue the authentication process, or REFUSED to deny the keycard or a deferred which should have the same eventual value.</p> <p>FIXME: Currently, a return value of 'None' is treated as rejecting the keycard. This is unintuitive.</p> <p>FIXME: in fact, for authentication sessions like challenge/response, returning a keycard with state REFUSED instead of None will not work properly and may enter in an asynchronous infinit loop.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="on_keycardAdded"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">on_keycardAdded</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_keycardAdded">source code</a></span> </td> </tr></table> <p>Override to update sub-class specific data related to keycards. Called when the base bouncer accepts and references a new keycard.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="on_keycardRemoved"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">on_keycardRemoved</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.on_keycardRemoved">source code</a></span> </td> </tr></table> <p>Override to cleanup sub-class specific data related to keycards. Called when the base bouncer has cleanup his references to a keycard.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="addKeycard"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">addKeycard</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer.addKeycard">source code</a></span> </td> </tr></table> <p>Adds a keycard to the bouncer. Can be called with the same keycard more than one time. If the keycard has already been added successfully, adding it again will succeed and return True.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>keycard</code></strong> - the keycard to add.</li> </ul></dd> <dt>Returns:</dt> <dd>if the bouncer accepts the keycard.</dd> </dl> </td></tr></table> </div> <a name="_addKeycard"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_addKeycard</span>(<span class="sig-arg">self</span>, <span class="sig-arg">keycard</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="flumotion.component.bouncers.bouncer-pysrc.html#Bouncer._addKeycard">source code</a></span> </td> </tr></table> <p>Adds a keycard without checking. Used by sub-class knowing what they do.</p> <dl class="fields"> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Sun Sep 13 13:14:05 2009 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>