܍~c |dZddlZddlZddlmZddlmZddlmZeje Z dZ dZ dZ e e fZd Zd Zdd Zdd Zdd Ze dkrkddlZeZeejddZee eejdZerejedSdSdS)z-Run the dhclient hook to record network info.N) atomic_helper)log)stagesz dhclient-hookupdownctj}tj|jdS)Nzdhclient.hooks)rInitospathjoinpaths get_runpath)is 9/usr/lib/python3/dist-packages/cloudinit/dhclient_hook.py_get_hooks_dirrs2 A 7<<++--/? @ @@ci}|D]p\}}|ds|drA|dddd}|||<q|S)zrGiven info (os.environ), return a dictionary with lower case keys for each entry starting with DHCP4_ or new_.DHCP4_new_)items startswithreplacelower)infonew_infokvkeys r_filter_env_valsr sH 1 << ! ! Q\\&%9%9 99Xr**2262>>EEGGCHSM Orc|tvrtd|dt|t}| tj}tj||dz}|tkrrtj|stj |tj |t|td|dS|tkrPtj|r3tj|td|dSdSdS)NzUnexpected event 'z'. Expected one of: z.jsonzWrote dhclient options in %sz Removed dhclient options file %s)EVENTS ValueErrorrr environr r UPexistsmakedirsr write_jsonr LOGdebugDOWNremove) interfaceeventdata_denv hook_files rrun_hookr2$s+ Fj>) $ $ E Ii II8) D D D D D  E Erc| tjtt}|ddt |dd|ttf|S) N)prog descriptionr.zevent taken on the interface)helpchoicesr-z&the network interface being acted upon)r6)action)argparseArgumentParserNAME__doc__ add_argumentr" set_defaults handle_args)parsers r get_parserrA:s ~(dHHH 4f B k2333 Mrc:t|j|j|S)zXHandle the Namespace args. Takes 'name' as passed by cloud-init main. not used here.)r-r.r/)r2r-r.)nameargsr/s rr?r?Hs dnDJv N N NNr__main__)rD_CI_DHCP_HOOK_DATA_D)r/)NN)N)r<r9r cloudinitrrloggingr getLogger__name__r)r;r%r+r"rr r2rAr?sysr@ parse_argsargvrDr$get return_valueexitrrrSs43 ######$$$$$$g!!   dAAA EEEE,    OOOO  zJJJ Z\\F   #(122,  / /D; d2:>>*@AALr