o
    x[h”
  ã                
   @   s¼   U d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dg d	¢ed
gdœZe	ed< e e¡Zg d¢ZdgZdZdd„ Zeddfdd„Zdededededdf
dd„ZdS )z*Spacewalk: Install and configure spacewalké    N)Úsubp)ÚCloud)ÚConfig)Ú
MetaSchema)ÚPER_INSTANCEÚcc_spacewalk)ÚrhelÚfedoraÚ	openeulerÚ	spacewalk)ÚidÚdistrosÚ	frequencyÚactivate_by_schema_keysÚmeta)Úredhatr	   r
   z	rhn-setupz'/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERTc               
   C   sV   d} zt j ddgdd� d} W | S  t jy* } z|jdkr‚ W Y d }~| S d }~ww )NFzrhn-profile-syncz	--verbose©ÚcaptureTé   )r   ÚProcessExecutionErrorÚ	exit_code)Úalready_registeredÚe© r   ú?/usr/lib/python3/dist-packages/cloudinit/config/cc_spacewalk.pyÚis_registered   s   ý

ÿ€ýr   c                 C   sŒ   t  d|| ¡ dg}| dd|  g¡ | dt|ƒg¡ |r'| dt|ƒg¡ |r2| dt|ƒg¡ |r=| dt|ƒg¡ tj|d	d
� d S )Nz;Registering using `rhnreg_ks` profile '%s' into server '%s'Ú	rhnreg_ksz--serverUrlzhttps://%s/XMLRPCz--profilenamez--proxyz--sslCACertz--activationkeyFr   )ÚLOGÚinfoÚextendÚstrr   )ÚserverÚprofile_nameÚca_cert_pathÚproxyÚactivation_keyÚcmdr   r   r   Údo_register(   s   ýr'   ÚnameÚcfgÚcloudÚargsÚreturnc                 C   s€   d|vrt  d| ¡ d S |d }| d¡}|r8|j t¡ tƒ s6t||jj	dd�j
| d¡| d¡d� d S d S t  d	| ¡ d S )
Nr   z=Skipping module named %s, no 'spacewalk' key in configurationr!   T)Úfqdnr$   r%   )r$   r%   zOSkipping module named %s, 'spacewalk/server' key was not found in configuration)r   ÚdebugÚgetÚdistroÚinstall_packagesÚrequired_packagesr   r'   Ú
datasourceÚget_hostnameÚhostname)r(   r)   r*   r+   Úspacewalk_serverr   r   r   Úhandle@   s,   þ

üÿýr7   )Ú__doc__ÚloggingÚ	cloudinitr   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.settingsr   r   Ú__annotations__Ú	getLoggerÚ__name__r   r   r2   Údef_ca_cert_pathr   r'   r    Úlistr7   r   r   r   r   Ú<module>   s,   ü

û"