ó
ÍÿŠTc           @   sn   d  d l  Z  d  d l Z d  d l m Z m Z d  d l m Z d  d l m Z d Z d e f d „  ƒ  YZ	 d S(   iÿÿÿÿN(   t   ConfigParsert   NoOptionError(   t   DataWatcher(   t   Persists   /etc/keystone/keystone.conft   KeystoneTokenc           B   sV   e  Z d  Z d Z d Z d Z d Z e d „ Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s}   
    A plugin which pulls the admin_token from the keystone configuration file
    and sends it to the landscape server.
    s   keystone-tokent   datai<   i   t	   openstackc         C   s   | |  _  d  S(   N(   t   _keystone_config_file(   t   selft   keystone_config_file(    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyt   __init__   s    c         C   sr   t  t |  ƒ j | ƒ t j j |  j j j d ƒ |  _	 t
 d |  j	 ƒ |  _ |  j j j |  j j j |  j ƒ d  S(   Ns   keystone.bpicklet   filename(   t   superR   t   registert   ost   patht   joint   registryt   configt	   data_patht   _persist_filenameR   t   _persistt   reactort
   call_everyt   flush_intervalt   flush(   R   t   client(    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyR      s    c         C   s   |  j  j d ƒ d S(   s$   
        Reset the persist.
        R   N(   R   t   remove(   R   (    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyt   _reset!   s    c         C   s   |  j  j |  j ƒ d  S(   N(   R   t   saveR   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyR   '   s    c         C   su   t  j j |  j ƒ s d St ƒ  } | j |  j ƒ y | j d d ƒ } Wn& t k
 rp t	 j
 d |  j ƒ d SX| S(   s;   
        Return the Keystone administrative token.
        t   DEFAULTt   admin_tokens)   KeystoneToken: No admin_token found in %sN(   R   R   t   existsR   t   NoneR    t   readt   getR   t   loggingt   error(   R   R   R   (    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyt   get_data*   s    		i„  (   t   __name__t
   __module__t   __doc__t   message_typet   message_keyt   run_intervalt   scopet   KEYSTONE_CONFIG_FILER
   R   R   R   R&   (    (    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyR      s   			(
   R   R$   R    R   t   landscape.monitor.pluginR   t   landscape.lib.persistR   R.   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/landscape/manager/keystonetoken.pyt   <module>   s   