
    -_g                     P    d dl mZmZ d dlZd dlmZ d dlmZmZ  G d dee      Z	y)    )NoOptionErrorNoSectionErrorN)remove)PluginRedHatPluginc                   <    e Zd ZdZdZdZdZdZdZd Z	d Z
d	 Zd
 Zy)SubscriptionManagerz subscription-manager informationsubscription_manager)systempackagemanagersysmgmt)/etc/rhsm/rhsm.conf)zsubscription-managerrhsm_curl_cfgc                    d}|j                  dd      }|r5|j                  dd      }|j                  dd      }|rd|z   }d| d| | }|j                  dd	      }|r|r|j                  dd
      }|rv| j                  j                  | j                        | _        t        | j                  dd      5 }|j                  d| d|        ddd       |d| j                   z  }|S |d| z  }|S # 1 sw Y   'xY w)z4 return curl options --proxy[-user] per RHSM config  serverproxy_hostnameproxy_scheme
proxy_port:z--proxy ://
proxy_userproxy_passwordwzutf-8)encodingz--proxy-user Nz
 --config z --proxy-user )getarchive	dest_pathcurl_config_curl_cfg_fnameopenwrite)	selfconfigproxyr   r   r   r   
proxy_pass_fs	            I/usr/lib/python3/dist-packages/sos/report/plugins/subscription_manager.pyget_proxy_stringz$SubscriptionManager.get_proxy_string   s#   H.>?!::h?LHl;J :-
|nC/?
|LEZZ,7
ZH.>?J'+||'='=d>N>N'O$$..gF "HH'
|1ZLA :d&:&:%;<<  >*66 s   8C66C?c           	          |j                  dd      dk7  rdnd}|j                  dd      }t        |      dkD  rd|z   }d	| d
|j                  dd       | |j                  dd       S )z- return URL per RHSM config for curl command r   insecure1sr   portr   r   httpr   hostnameprefix)r   len)r#   r$   securer.   s       r(   get_server_urlz"SubscriptionManager.get_server_url3   sw    

8Z8C?Rzz(F+t9q=:Dvhc&**Xz"B!CD6::h124 	5    c                    | j                  g d       | j                  dd       | j                  dd       | j                  dd       | j                  g d	d
       | j                  d| j                                 t        j                  d      }| j                  |D cg c]  }d| 	 c}d       d}d }d | _        	 ddlm}  |       }| j                  |      }| j                  |      }d| d|j                  dd       d| }|j                  dd      }	|	rd|	i}| j                  ||d       y c c}w # t        t        t        t        f$ r}
| j                  d|
        Y d }
~
Ld }
~
ww xY w)N)z
/etc/rhsm/z/var/lib/rhsm/z/var/log/rhsm/rhsm.logz/var/log/rhsm/rhsmcertd.logzsubscription-manager identitysubscription_manager_id)tagsz$subscription-manager list --consumed"subscription_manager_list_consumedz%subscription-manager list --installedsubscription_manager_installed)z%subscription-manager list --availablez+subscription-manager list --all --availablez#subscription-manager release --showz#subscription-manager release --listzsyspurpose showz&subscription-manager syspurpose --showzsubscription-manager statusT)
cmd_as_tagzFrhsm-debug system --sos --no-archive --no-subscriptions --destination z/etc/pki/product-default/*.pemzrct cat-cert *subscription_manager_installed_product_idszccurl -vv --cacert /etc/rhsm/ca/redhat-uep.pem https://subscription.rhsm.redhat.com:443/subscriptionr   )get_config_parserz	curl -vv z
 --cacert rhsmrepo_ca_cert r   no_proxyNO_PROXYz*Error checking for RHSM cert/proxy issue:    )envtimeout)add_copy_specadd_cmd_outputget_cmd_output_pathglobr    rhsm.configr=   r)   r4   r   ModuleNotFoundErrorImportErrorr   r   
_log_debug)r#   certscertcurlcmdrD   r=   r$   r%   
server_urlrA   errs              r(   setupzSubscriptionManager.setup=   s    + 	,
 	;!: 	 	<B!E 	 	GC!A 	 	C 
  	 	 	 @#779:< 	= 		:;F}TF3F!M 	 	OJ#	P5&(F))&1E,,V4J":,j **V^<=QugGG zz(J7H!8, 	Gb9- G& $[-  	POOHNOO	Ps   (E 	A"E E<E77E<c                     d}d}| j                  d||       d}d}| j                  d||       | j                  rt        | j                         y y )Nz"(proxy_password(\s)*=(\s)*)(\S+)\nz\1********\nr   z(password(\s)*=(\s)*)(\S+)\nz/var/lib/rhsm/repo_server_val/*)do_path_regex_subr    r   )r#   	passwdregreplregexps       r(   postproczSubscriptionManager.postprocp   sZ    9	4iF 1@&$O4''(  r5   N)__name__
__module____qualname__
short_descplugin_nameprofilesfilespackagesr   r)   r4   rS   rY    r5   r(   r	   r	      s5    3J(K6H$E(H!K051:f)r5   r	   )
configparserr   r   rI   osr   sos.report.pluginsr   r   r	   rb   r5   r(   <module>rf      s#    7   3r)&, r)r5   