+
    iK5                        ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
 ^ RIHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ]P8                  ! ]4      tRt. ROt RR/t! ! R R]	4      t"R t#R t$R R lt% ! R R4      t&R# )    N)	signature)
ModuleType)DictList
NamedTupleOptional)configimporter	lifecycleperformance
type_utilsutil)ALL_DISTROS)ConfigMerger)ReportEventStack)FREQUENCIESInitcc_cc_ubuntu_advantagecc_ubuntu_proc                   ,   a  ] tR t^4t o V 3R ltRtV tR# )ModuleDetailsc                Z   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[S[,          ;R&   # )   modulename	frequencyrun_args)r   strr   )format__classdict__s   ":/usr/lib/python3/dist-packages/cloudinit/config/modules.py__annotate__ModuleDetails.__annotate__4   s7      
I  N  3i	      N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__r"   s   @r#   r   r   4   s      r&   r   c                     V P                  R R4      pVP                  4       P                  R4      '       d   V^ \        V4      ^,
           pVP	                  4       pV'       g   R# VP                  \        4      '       g   \        : V: 2pV# )-_z.pyN)replacelowerendswithlenstrip
startswith
MOD_PREFIX)r   
canon_names   & r#   form_module_namer;   ;   sv    c3'J""5))S_q%8:
!!#J  ,,):6
r&   c           	      ^   \        V R 4      '       d#   RV P                  9  g   RV P                  9  d   \        RV  RV R24      hV P                  R,          \        9  d'   \        RV  RV RV P                  R,           R24      h\        V R4      '       d   \        RV  RV R	24      hR
# )metar   distroszModule 'z' with name 'z4' MUST have a 'meta' attribute of type 'MetaSchema'.z' has an invalid frequency .schemazX' has a JSON 'schema' attribute defined. Please define schema in cloud-init-schema,json.N)hasattrr=   
ValueErrorr   )modr   s   &&r#   validate_modulerD   G   s    C  chh&CHH$se= /$ $
 	
 xxK/se=.Ixx$%Q(
 	
 sHse= /G G
 	
 r&   c                <    V ^8  d   QhR\         R\        R\        /# )r   module_detailscfgreturn)r   dictbool)r!   s   "r#   r$   r$   ]   s!      } 4 D r&   c                     \        V P                  P                  P                  R / 4      4      pV'       g   R# VP	                  VP                  4       4      '       g   R# R# )activate_by_schema_keysTF)	frozensetr   r=   getintersectionkeys)rF   rG   activate_by_schema_keys_keyss   && r#   
_is_activerR   ]   sO    #,""&&'@"E$  ('44SXXZ@@r&   c                      a  ] tR t^ht o RV 3R lR llt]V 3R lR l4       tV 3R lR ltV 3R lR	 ltV 3R
 lR lt	RR lt
R tRtV tR# )ModulesNc                    < V ^8  d   QhRS[ /# )r   initr   )r!   r"   s   "r#   r$   Modules.__annotate__i   s     ! !T !r&   c                \    Wn         W n        R V n        Vf   \        RRRR7      pW0n        R # )Nzmodule-reporterzmodule-descF)r   descriptionreporting_enabled)rV   	cfg_files_cached_cfgr   reporter)selfrV   r[   r]   s   &&&&r#   __init__Modules.__init__i   s4    	"48'&)"'H
 !r&   c                4   < V ^8  d   QhRS[ P                  /# r   rH   )r	   Config)r!   r"   s   "r#   r$   rW   w   s     / /V]] /r&   c                *   V P                   fg   \        V P                  P                  V P                  P                  V P
                  V P                  P                  R7      pVP                  V n         \        P                  ! V P                   4      # )N)paths
datasourceadditional_fnsbase_cfg)	r\   r   rV   re   rf   r[   rG   copydeepcopy)r^   mergers   & r#   rG   Modules.cfgv   sg     #!iioo99//#~~	F  &zzD}}T--..r&   c                0   < V ^8  d   QhRS[ S[,          /# rb   )r   r   )r!   r"   s   "r#   r$   rW      s     9 9T$Z 9r&   c           	        . pWP                   9  d   V# V P                   P                  V4      pV'       g   V# V EF  pV'       g   K  \        V\        4      '       d$   VP	                  RVP                  4       /4       KG  \        V\        4      '       d   / p\        V4      ^8  d   V^ ,          P                  4       VR&   \        V4      ^8  d   V^,          P                  4       VR&   \        V4      ^8  d   VR,          VR&   V'       d   VP	                  V4       K  K  \        V\        4      '       d   / pRpRV9   d   VR,          P                  4       VR&   RpRV9   d   VR,          P                  4       VR&   RV9   d   VR,          ;'       g    . VR&   V'       d    V'       d   VP	                  V4       EK  EK  EK  \        R	V: R
\        P                  ! V4      : 24      h	  V# )a  Read the modules from the config file given the specified name.

Returns a list of module definitions. E.g.,
[
    {
        "mod": "bootcmd",
        "freq": "always",
        "args": "some_arg",
    }
]

Note that in the default case, only "mod" will be set.
rC   freq:r   NNargsFr   Tr   zFailed to read 'z' item in config, unknown type )rG   rN   
isinstancer    appendr7   listr6   rI   	TypeErrorr   obj_name)r^   r   module_listcfg_modsitemcontentsvalids   &&     r#   _read_modulesModules._read_modules   s    #%xx88<<%D$$$""tzz|
 D4))t9>&*1gmmoHUOt9>'+Aw}}HV$t9>'+BxHV$&&x0 D4))T>&*6l&8&8&:HUO E$&'+K'8'>'>'@HV$T>'+F|'9'9rHV$&&x0 !&8  Z0068 C J r&   c                0   < V ^8  d   QhRS[ S[,          /# rb   r   r   )r!   r"   s   "r#   r$   rW      s     A A$}*= Ar&   c           
     X   . pV EF  pVR,          pVP                  R4      pVP                  R4      ;'       g    . p\        V4      pV'       g   KN  V'       d,   V\        9  d!   \        P                  ! RV RV 2RR7       RpV\
        9   d8   \        P                  ! R	V R
\
        V,           R2RR7       \
        V,          p\        P                  ! VR\        P                  ! \        4      .R.4      w  rV'       gD   V\        9   d   \        P                  RVR,          4       M\        P                  RVV	4       EKC  \        P                  ! V^ ,          4      p
\!        W4       Vf   V
P"                  R,          pVP%                  \'        V
VVVR7      4       EK  	  V# )zConvert list of returned from _read_modules() into new format.

Invalid modules and arguments are ignored.
Also ensures that the module has the required meta fields.
rC   ro   rp   zConfig specified module z has an unknown frequency z22.1
deprecateddeprecated_versionNzModule has been renamed from z to z/. Update any references in /etc/cloud/cloud.cfgz24.1 handlez\Module `%s` has been removed from cloud-init. It may be removed from `/etc/cloud/cloud.cfg`.:   NNz,Could not find module named %s (searched %s)r   )r   r   r   r   )rN   r;   r   r   	deprecateRENAMED_MODULESr
   find_moduler   ru   r	   REMOVED_MODULESLOGinfowarningimport_modulerD   r=   rr   r   )r^   raw_modsmostly_modsraw_modraw_namero   r   mod_namemod_locslooked_locsrC   s   &&         r#   _fixup_modulesModules._fixup_modules   s    Gu~H;;v&D{{6*00bH'1HK/##28* =&&*V- (. ?*##7z*845 6>> (. +84$,$8$82z226:;hZ%!H .HHI  KKF #
 ((!5CC*|xx,!"%	e  t r&   c                0   < V ^8  d   QhRS[ S[,          /# )r   r   r~   )r!   r"   s   "r#   r$   rW     s     5% 5%](; 5%r&   c                   V P                   P                  4       p. p. pV EFU  w  rVrx \        P                  R WeV4       VP	                  V4       RV 2p	RV	: RV: 2p
\        WV P                  R7      pRVRV P                  RVRV/pT;_uu_ 4        \        VP                  4      pVP                  p\        V4      ^8X  d0   \        P                  ! R	R
R7       VP                  R\        /4       \        P                   ! RRR7      ;_uu_ 4       pVP#                  WP                  WR7      w  ppRRR4       X'       d   V	 RXP$                  R R2Vn        MRV	,          Vn        RRR4       EKX  	  WC3#   + '       g   i     LO; i  + '       g   i     EK  ; i  \(         d<   p\*        P,                  ! \        RYe4       TP	                  TT34        Rp?EK  Rp?ii ; i)z(Running module %s (%s) with frequency %szconfig-zrunning z with frequency )r   rY   parentr   rG   cloudrp   z%Config modules with a `log` parameterz23.2r   logr   skip)log_mode)ro   Nz ran successfully and took z.3fz secondsz%s previously ranzRunning module %s (%s) failed)rV   cloudifyr   debugrr   r   r]   rG   r   r   
parametersr6   r   r   updater   Timedrundeltamessage	Exceptionr   logexc)r^   r   ccfailures	which_ranrC   r   ro   rp   run_namedescmyrep	func_argsfunc_signaturefunc_paramstimerran_res   &&                 r#   _run_modulesModules._run_modules  s   YY! 	%0!Ct-+		>4
   &$TF+9A4H(!DMM D488RD		 U%.szz%:N"0";";K;'1,!++'N/5 "((%6$**2??5"$&&$jj) #) #R @ 'j )$$)KK#4H> 
 )<h(F) U- &1^ $$ @? UU,  +C!@$Lq	**+sU   A,F&BF!E>7F'F.F&>F	FF#F&#F&&G,1/G''G,c                \    R VRVRV/pV.pV P                  V4      pV P                  V4      # )rC   rp   ro   )r   r   )r^   r   rp   ro   	mod_to_ber   r   s   &&&&   r#   
run_singleModules.run_single9  sD     8DD
	 ;))(3  --r&   c                X   V P                  V4      pV P                  V4      pV P                  P                  P                  p. p. pV P
                  P                  R. 4      p. p. p	V F  p
V
w  rrVf   K  VP                  R,          p\        WP
                  4      '       g   VP                  V4       KO  V'       d=   V\        .8w  d1   WO9  d+   W9  d   VP                  V4       K  VP                  V4       V	P                  WW.4       K  	  V'       d&   \        P                  RRP                  V4      4       V'       d'   \        P                  RRP                  V4      V4       V'       d&   \        P                  RRP                  V4      4       V P                  V	4      # )zRuns all modules in the given section.

section_name - One of the modules lists as defined in
  /etc/cloud/cloud.cfg. One of:
 - cloud_init_modules
 - cloud_config_modules
 - cloud_final_modules
unverified_modulesr>   z?Skipping modules '%s' because no applicable config is provided.,zSkipping modules '%s' because they are not verified on distro '%s'.  To run anyway, add them to 'unverified_modules' in config.z running unverified_modules: '%s'z, )r{   r   rV   distror   rG   rN   r=   rR   rr   r   r   r   joinr   )r^   section_namer   r   distro_nameskippedforced
overriddeninapplicable_modsactive_modsrF   rC   r   _freq_argsworked_distross   &&              r#   run_sectionModules.run_sectionE  sm    %%l3))(3ii&&++XX\\"6;
)N(6%S{ XXi0Nnhh77!((. .[M"A4-t, MM$'589' ** HH*+
 HH2 ! HH769JK  --r&   )r\   r[   rV   r]   )NN)r(   r)   r*   r+   r_   propertyrG   r{   r   r   r   r   r-   r.   r/   s   @r#   rT   rT   h   sU     ! ! / /9 9vA AF5% 5%n
.8. 8.r&   rT   )cc_emit_upstartzcc_refresh_rmc_and_interface.pycc_migratorcc_rightscale_userdata)'ri   logginginspectr   typesr   typingr   r   r   r   	cloudinitr	   r
   r   r   r   r   cloudinit.distrosr   cloudinit.helpersr   cloudinit.reporting.eventsr   cloudinit.settingsr   cloudinit.stagesr   	getLoggerr(   r   r9   r   r   r   r;   rD   rR   rT   r'   r&   r#   <module>r      s        3 3  * * 7 * !! 

 ?
J 	
,U. U.r&   