
    ܍~c	                     |   d Z ddlZddlZddlmZ ddlmZ ddlmZ  ej        e	          Z
dZdZdZeefZd	 Zd
 ZddZddZddZe	dk    rkddlZ e            Ze                    ej        dd                   Z eeeej                            d                    Zer ej        e           dS dS dS )z-Run the dhclient hook to record network info.    N)atomic_helper)log)stageszdhclient-hookupdownc                      t          j                    } t          j                            | j                                        d          S )Nzdhclient.hooks)r   Initospathjoinpathsget_runpath)is    9/usr/lib/python3/dist-packages/cloudinit/dhclient_hook.py_get_hooks_dirr      s2    A7<<++--/?@@@    c                    i }|                                  D ]p\  }}|                    d          s|                    d          rA|                    dd                              dd                                          }|||<   q|S )zrGiven info (os.environ), return a dictionary with
    lower case keys for each entry starting with DHCP4_ or new_.DHCP4_new_ )items
startswithreplacelower)infonew_infokvkeys        r   _filter_env_valsr       s     H

  1<<!! 	Q\\&%9%9 	99Xr**2262>>EEGGCHSMOr   c                    |t           vrt          d|dt                     |t                      }|t          j        }t          j                            || dz             }|t          k    rrt          j                            |          st          j	        |           t          j        |t          |                     t                              d|           d S |t          k    rPt          j                            |          r3t          j        |           t                              d|           d S d S d S )NzUnexpected event 'z'. Expected one of: z.jsonzWrote dhclient options in %sz Removed dhclient options file %s)EVENTS
ValueErrorr   r
   environr   r   UPexistsmakedirsr   
write_jsonr    LOGdebugDOWNremove)	interfaceeventdata_denv	hook_files        r   run_hookr2   $   s+   Fj<AEE66J
 
 	
 ~!!
{jVY%899I{{w~~f%% 	 K ,<S,A,ABBB		0)<<<<<	$7>>)$$ 	EIi   II8)DDDDD 
	E 	Er   c                     |  t          j        t          t                    } |                     ddt
                     |                     dd           |                     t          t          f           | S )	N)progdescriptionr.   zevent taken on the interface)helpchoicesr-   z&the network interface being acted upon)r6   )action)argparseArgumentParserNAME__doc__add_argumentr"   set_defaultshandle_args)parsers    r   
get_parserrA   :   s    ~(dHHH
4f     B     k2333Mr   c                 :    t          |j        |j        |          S )zXHandle the Namespace args.
    Takes 'name' as passed by cloud-init main. not used here.)r-   r.   r/   )r2   r-   r.   )nameargsr/   s      r   r?   r?   H   s     dnDJvNNNNr   __main__   )rD   _CI_DHCP_HOOK_DATA_D)r/   )NN)N)r<   r9   r
   	cloudinitr   r   loggingr   	getLogger__name__r)   r;   r%   r+   r"   r   r    r2   rA   r?   sysr@   
parse_argsargvrD   r$   getreturn_valueexit r   r   <module>rS      s   4 3  				 # # # # # # $ $ $ $ $ $      g!!	
dA A A
  E E E E,   O O O O zJJJZ\\F#(122,//D;d2:>>*@AA  L    r   