
    /I_
                         S SK r S SKJr   S SKJr  S SKJr  S SKJr  S SK	J
r
JrJr   " S S\
\5      rg! \\4 a    S SKJr  S SKJr  S SKJr  S SKJ
r
JrJr   N3f = f)	    N)OrderedDict)IO)Sysfs)IPRoute2)NetlinkCacheRequirementsc                   2    \ rS rSrSrS rS\4S jrS rSr	g)	Addon)   ze
Base class for ifupdown2 addon modules
Provides common infrastructure methods for all addon modules
c                    [         R                  " U 5        [        R                  " U 5        [        R                  " SU R
                  R                  -  5      U l        [        5       U l	        [        U l        [        5       U l        [        5       U l        0 U l        U R#                  5       R%                  S0 5      R'                  5        H,  u  pUR%                  S/ 5       H  nXR                   U'   M     M.     g )Nzifupdown2.addons.%sattrsaliases)r   __init__r   logging	getLogger	__class____name__loggerr   ior   sysfsr   iproute2r	   requirements_Addon__alias_to_attribute_Addon__get_modinfogetitems)selfattribute_nameattribute_objectaliass       !/usr/share/ifupdown2/lib/addon.pyr   Addon.__init__/   s    t''(=@W@W(WX$
 
(N$&!040B0B0D0H0HRT0U0[0[0],N)--i<3A))%0 = 1^    returnc                 @     U R                   $ ! [         a    0 s $ f = f)N)_modinfoAttributeError)r   s    r"   __get_modinfoAddon.__get_modinfo@   s%    	==  	I	s    c           	          U Ha  n[        UR                  R                  5        VVs/ s H(  u  p4X0R                  ;   a  U R                  U   U4OX44PM*     snn5      Ul        Mc     gs  snnf )zL
Replace attribute aliases from user configuration with real attribute name
N)r   configr   r   )r   	ifaceobjsifaceobj	user_attr
user_values        r"   	translateAddon.translateF   s{     "H)
 2:1F1F1H	 2I-	 !$=$== ..y9:F#01 2I	HO "s   /A))__alias_to_attributer   r   r   r   r   N)
r   
__module____qualname____firstlineno____doc__r   dictr   r1   __static_attributes__ r$   r"   r   r   )   s    
B"t r$   r   )r   collectionsr   ifupdown2.lib.ior   ifupdown2.lib.sysfsr   ifupdown2.lib.iproute2r   ifupdown2.lib.base_objectsr   r   r	   ImportErrorModuleNotFoundErrorlib.io	lib.sysfslib.iproute2lib.base_objectsr   r:   r$   r"   <module>rF      sU   2  #	>#)/GG)GU ) 	() >%==	>s   5 $AA