
    x[h              
           % S r SSKrSSKrSSKJrJrJ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  S	\/\S
/S.r\\S'   \R&                  " \5      r " S S5      rS\S\
S\S\SS4
S jrg)z&Salt Minion: Setup and run salt minion    N)safeyamlsubputil)Cloud)Config)
MetaSchema)ALL_DISTROS)PER_INSTANCEcc_salt_minionsalt_minion)iddistros	frequencyactivate_by_schema_keysmetac                       \ rS rSrSrS rSrg)SaltConstants   z6
defines default distribution specific salt variables
c                 x   [         R                  " 5       (       a  SU l        SU l        SU l        OSU l        SU l        SU l        [         R
                  " USU R                  5      U l        [         R
                  " USU R                  5      U l        [         R
                  " USU R                  5      U l        g )	Nzpy-saltr   z/usr/local/etc/saltzsalt-minionz	/etc/saltpkg_name
config_dirservice_name)r   
is_FreeBSDr   srv_nameconf_dirget_cfg_option_str)selfcfgs     A/usr/lib/python3/dist-packages/cloudinit/config/cc_salt_minion.py__init__SaltConstants.__init__#   s    ??%DM)DM1DM *DM)DM'DM //ZO//t}}
 //
    )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r    __static_attributes__ r"   r   r   r      s    
r"   r   namer   cloudargsreturnc                    SU;  a  [         R                  SU 5        g US   n[        US9nUR                  R	                  UR
                  /5        [        R                  " UR                  5        S nSU;   af  [        R                  R                  UR                  S5      nUR                  S5      n[        R                  " U[        R                  " U5      5        SU;   ae  [        R                  R                  UR                  S5      n[        R                  " UR                  S5      5      n	[        R                  " X5        SU;   Ga8  SU;   Ga1  [        R                  R                  UR                  S	5      n
[        R                  R!                  U
5      (       d*  [        R                  R                  UR                  S
5      n
UR                  SU
5      n[        R"                  " S5         [        R                  " U5        [        R                  R                  US5      n[        R                  R                  US5      n[        R                  " XS   5        [        R                  " XS   5        S S S 5        [%        U=(       a    UR                  S5      S:H  5      (       + nUR                  R'                  U(       a  SOSUR(                  5        UR                  R'                  U(       a  SOSUR(                  5        U(       d  [*        R*                  " / SQSS9  g g ! , (       d  f       N= f)Nr   z?Skipping module named %s, no 'salt_minion' key in configuration)r   confminiongrains
public_keyprivate_keyz
pki/minionpkipki_dir?   z
minion.pubz
minion.pemfile_clientlocalenabledisablerestartstop)z	salt-callz--localzstate.applyF)capture)LOGdebugr   distroinstall_packagesr   r   
ensure_dirr   ospathjoinget
write_filer   dumpsisdirumaskboolmanage_servicer   r   )r*   r   r+   r,   s_cfgconstminion_dataminion_configgrains_configgrains_datapki_dir_defaultr5   pub_namepem_nameminion_daemons                  r   handlerW   9   sH   C		M	
 	Ee$E 
LL!!5>>"23 	OOENN#K U^^X>ii'x~~k'BC5U^^X>nnUYYx%893 u%!7'',,u~~|Dww}}_-- ggll5>>5AO))I7ZZOOG$ww||G\:Hww||G\:HOOHL&9:OOHM&:;  A6'A M 
LL!y%.. 
LL"	  			95I	 % s   9B	L33
M)r'   loggingrC   	cloudinitr   r   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.distrosr	   cloudinit.settingsr
   r   __annotations__	getLoggerr#   r>   r   strlistrW   r)   r"   r   <module>rc      s   
 -  	 * * ! # . ) + } -	j  !
 
6>J >J6 >J% >Jt >J >Jr"   