o
    *b=                     @   s>   d dl mZmZ d dlZd dlmZmZ G dd deeZdS )    )PluginRedHatPluginN)NoOptionErrorNoSectionErrorc                   @   s@   e Zd ZdZdZdZdZdZdd Zdd	 Z	d
d Z
dd ZdS )SubscriptionManagerz subscription-manager informationZsubscription_manager)systemZpackagemanagerZsysmgmt)/etc/rhsm/rhsm.conf)zsubscription-managerc                 C   s   d}| dd}|r#| dd}| dd}|rd| }d|||f }| dd}|rA|rA|d	| 7 }| dd
}|rA|d| 7 }|S )N serverproxy_hostnameproxy_scheme
proxy_port:z--proxy %s://%s%s
proxy_userz --proxy-user %sproxy_passwordz:%s)get)selfconfigproxyr   r   r   r   r    r   I/usr/lib/python3/dist-packages/sos/report/plugins/subscription_manager.pyget_proxy_string   s"   z$SubscriptionManager.get_proxy_stringc                 C   sX   | dddkr
dnd}| dd}t|dkrd| }d	|| dd
|| ddf S )Nr
   Zinsecure1sr	   portr   r   zhttp%s://%s%s%sZhostnameprefix)r   len)r   r   Zsecurer   r   r   r   get_server_url+   s   z"SubscriptionManager.get_server_urlc           	      C   s   |  g d | jg ddd | d|    td}| jdd |D d	d
 d}d }z,ddlm} | }| |}| |}d||dd|f }|dd}|rYd|i}W n t	t
ttfyg   Y nw | j||dd d S )N)z
/etc/rhsm/z/var/lib/rhsm/z/var/log/rhsm/rhsm.logz/var/log/rhsm/rhsmcertd.log)	z%subscription-manager list --installedz%subscription-manager list --availablez+subscription-manager list --all --availablez$subscription-manager list --consumedzsubscription-manager identityz#subscription-manager release --showz#subscription-manager release --listzsyspurpose showz&subscription-manager syspurpose --showT)Z
cmd_as_tagzHrhsm-debug system --sos --no-archive --no-subscriptions --destination %sz/etc/pki/product-default/*.pemc                 S   s   g | ]}d | qS )zrct cat-cert %sr   ).0Zcertr   r   r   
<listcomp>L   s    z-SubscriptionManager.setup.<locals>.<listcomp>Z*subscription_manager_installed_product_ids)Ztagszccurl -vv --cacert /etc/rhsm/ca/redhat-uep.pem https://subscription.rhsm.redhat.com:443/subscriptionr   )get_config_parserzcurl -vv %s --cacert %s %sZrhsmZrepo_ca_certr
   no_proxyZNO_PROXY   )envZtimeout)Zadd_copy_specZadd_cmd_outputZget_cmd_output_pathglobZrhsm.configr    r   r   r   ModuleNotFoundErrorImportErrorr   r   )	r   ZcertsZcurlcmdr#   r    r   r   Z
server_urlr!   r   r   r   setup5   sD   






zSubscriptionManager.setupc                 C   s   d}d}|  d|| d S )Nz"(proxy_password(\s)*=(\s)*)(\S+)\nz\1********\nr   )Zdo_path_regex_sub)r   Z	passwdregreplr   r   r   postproce   s   zSubscriptionManager.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesZpackagesr   r   r'   r)   r   r   r   r   r      s    
0r   )Zsos.report.pluginsr   r   r$   configparserr   r   r   r   r   r   r   <module>   s   