MINI MINI MANI MO
ó
©=[c           @   sW   d  d l  m Z d d l j Z d d l Z e j j ƒ  Z d e j	 f d „  ƒ  YZ	 d S(   i   (   t   baseiÿÿÿÿNt   Pluginc           B   s_   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   s:   
	Base class for plugins with device hotpluging support.
	c         O   s'   t  t |  ƒ j | | Ž  |  j ƒ  d  S(   N(   t   superR   t   __init__t   _hardware_events_init(   t   selft   argst   kwargs(    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyR      s    c         C   s!   t  t |  ƒ j ƒ  |  j ƒ  d  S(   N(   R   R   t   cleanupt   _hardware_events_cleanup(   R   (    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyR      s    c         C   s
   t  ƒ  ‚ d  S(   N(   t   NotImplementedError(   R   (    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyR      s    c         C   s
   t  ƒ  ‚ d  S(   N(   R
   (   R   (    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyR	      s    c         C   sd   | d k r0 t  j d | j ƒ |  j | ƒ n0 | d k r` t  j d | j ƒ |  j | ƒ n  d  S(   Nt   adds   device '%s' addedt   removes   device '%s' removed(   t   logt   infot   sys_namet   _add_devicet   _remove_device(   R   t   eventt   device(    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyt   _hardware_events_callback   s    c         C   s  | j  } | |  j |  j Bk r# d  Sxè t |  j j ƒ  ƒ D]° \ } } t |  j | | g ƒ ƒ d k r9 t j	 d | | f ƒ |  j j
 | ƒ | j j
 | ƒ |  j | | j
 d | g ƒ |  j | | ƒ |  j | | j d | g ƒ Pq9 q9 Wt j d | ƒ |  j j
 | ƒ d  S(   Ni   s!   instance %s: adding new device %st   applys   no instance wants %s(   R   t   _assigned_devicest
   _free_devicest   listt
   _instancest   itemst   lent   _get_matching_devicesR
   R   R   t   devicest   _call_device_scriptt
   script_pret   _added_device_apply_tuningt   script_postt   debug(   R   R   t   device_namet
   instance_namet   instance(    (    s9   /usr/lib/python2.7/site-packages/tuned/plugins/hotplug.pyR   "