o
    f
                  
   @   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,   

"