
    x[h;              
           % S r SSKrSSKJr  SSKJ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
rSSSSSS.0rSS/\S/S.r\\S'   \R,                  " \5      rS\S\S\S\SS4
S jrS rg)z&install and configure landscape client    N)chain)	ConfigObj)subp
type_utilsutil)Cloud)Config)
MetaSchema)PER_INSTANCEz/etc/landscape/client.confclientinfoz.https://landscape.canonical.com/message-systemz#http://landscape.canonical.com/pingz/var/lib/landscape/client)	log_levelurlping_url	data_pathcc_landscapeubuntu	landscape)iddistros	frequencyactivate_by_schema_keysmetanamecfgcloudargsreturnc                     UR                  S0 5      n[        U[        5      (       d,  [        SR	                  [
        R                  " U5      S95      eU(       d  gUR                  R                  S/5        [        [        U/n[        [        [        [        U5      S   R                  5       5       VVs/ s H  u  pgSUR!                  SS	5       3U/PM     snn6 5      n ["        R"                  " / S
QS/S9  ["        R"                  " SS/U-   5        gs  snnf ! ["        R$                   a[  n	U	R&                  S:X  a  [(        R+                  S5         Sn	A	gSU	 3n
[,        R.                  " [(        U
5        [        U
5      U	eSn	A	ff = f)z
Basically turn a top level 'landscape' entry with a 'client' dict
and render it to ConfigObj format under '[client]' section in
/etc/landscape/client.conf
r   zR'landscape' key existed in config, but not a dictionary type, is a {_type} instead)_typeNzlandscape-clientr   z--_-)landscape-config--silentz--is-registered   )rcsr#   r$   r   z&Client already registered to LandscapezFailure registering client:
)get
isinstancedictRuntimeErrorformatr   obj_namedistroinstall_packagesLSC_BUILTIN_CFGLSC_CLIENT_CFG_FILElistr   sortedmerge_togetheritemsreplacer   ProcessExecutionError	exit_codeLOGwarningr   logexc)r   r   r   r   ls_cloudcfg
merge_datakv
cmd_paramsemsgs              ?/usr/lib/python3/dist-packages/cloudinit/config/cc_landscape.pyhandlerC   ,   sw    ''+r*KkD**$$*F ))+6 %+ %
 	
 	LL!!#5"67 	J  #":.x8>>@DA aiiS)*+Q/	
	J	+		EA3O		%z2Z?@ %% +;;!KK@AA1!5CKKS!s#*+s$   7#D$3D F2%F,FFc                     [        0 5      nU  HN  nU(       d  M  [        U[         5      (       a  UR                  U5        M4  UR                  [        U5      5        MP     U$ )zi
merge together ConfigObj objects or things that ConfigObj() will take in
later entries override earlier
)r   r(   merge)objsr   objs      rB   r3   r3   ]   sL    
 B-Cc9%%IIcNIIin%  J    )__doc__logging	itertoolsr   	configobjr   	cloudinitr   r   r   cloudinit.cloudr   cloudinit.configr	   cloudinit.config.schemar
   cloudinit.settingsr   r0   r/   r   __annotations__	getLogger__name__r8   strr1   rC   r3    rH   rB   <module>rW      s    -    , , ! # . +2  ?90	 z +}	j  !.+ .+6 .+% .+t .+ .+brH   