Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-release > by-pkgid > 2eca861f24be6048290ed27335ec22aa > files > 543

flumotion-doc-0.6.1-1mdv2010.0.x86_64.rpm

<?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>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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&nbsp;flumotion ::
        <a href="flumotion.component-module.html">Package&nbsp;component</a> ::
        <a href="flumotion.component.bouncers-module.html">Package&nbsp;bouncers</a> ::
        <a href="flumotion.component.bouncers.bouncer-module.html">Module&nbsp;bouncer</a> ::
        Class&nbsp;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&nbsp;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&nbsp;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">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;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&nbsp;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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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&nbsp;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">&nbsp;</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">&nbsp;</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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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>