ó
½-'Nc           @   sb   d  d l  Z  d  d l m Z m Z d  d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t	   Interfacet	   SystemBus(   t   DBusExceptiont
   HALManagerc           B   s   e  Z d d  „ Z d „  Z RS(   c         C   sk   y+ | p t  ƒ  |  _ |  j j d d ƒ } Wn' t k
 rT t j d ƒ d  |  _ n Xt | d ƒ |  _ d  S(   Ns   org.freedesktop.Hals   /org/freedesktop/Hal/Managers#   Couldn't to connect to Hal via DBuss   org.freedesktop.Hal.Manager(	   R   t   _bust
   get_objectR   t   loggingt   errort   Nonet   _managerR    (   t   selft   bust   manager(    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyt   __init__	   s    c         C   sn   |  j  s g  Sg  } xT |  j  j ƒ  D]C } |  j j d | ƒ } t | d ƒ } t | ƒ } | j | ƒ q# W| S(   sä   Returns a list of HAL devices.

        @note: If it wasn't possible to connect to HAL over DBus, then an
            empty list will be returned. This can happen if the HAL or DBus
            services are not running.
        s   org.freedesktop.Hals   org.freedesktop.Hal.Device(   R	   t   GetAllDevicesR   R   R    t	   HALDevicet   append(   R
   t   devicest   udit   device(    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyt   get_devices   s    	N(   t   __name__t
   __module__R   R   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyR      s   R   c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s>   g  |  _  | |  _ | j ƒ  |  _ |  j d |  _ d  |  _ d  S(   Ns   info.udi(   t	   _childrent   _devicet   GetAllPropertiest
   propertiesR   R   t   parent(   R
   R   (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyR   (   s
    		c         C   s   |  j  j | ƒ |  | _ d  S(   N(   R   R   R   (   R
   R   (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyt	   add_child/   s    c         C   s   |  j  S(   N(   R   (   R
   (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyt   get_children3   s    (   R   R   R   R   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyR   &   s   		(	   R   t   dbusR    R   t   dbus.exceptionsR   t   objectR   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/landscape/hal.pyt   <module>   s   