
    ~ g                     P    S SK JrJr  S SKrS SKJr  S SKJrJr   " S S\\5      r	g)    )NoOptionErrorNoSectionErrorN)remove)PluginRedHatPluginc                   D    \ rS rSrSrSrSrSrSrSr	S r
S	 rS
 rS rSrg)SubscriptionManager   z subscription-manager informationsubscription_manager)systempackagemanagersysmgmt)/etc/rhsm/rhsm.conf)zsubscription-managerrhsm_curl_cfgc                 :   SnUR                  SS5      nU(       a:  UR                  SS5      nUR                  SS5      nU(       a  SU-   nSU SU U 3nUR                  SS	5      nU(       a  U(       a  UR                  SS
5      nU(       as  U R                  R                  U R                  5      U l        [        U R                  SSS9 nUR                  SU SU 35        SSS5        USU R                   3-  nU$ USU 3-  nU$ ! , (       d  f       N,= f)z3return 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_string$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 G :d&:&:%;<<  >*66 GFs   D
Dc           	          UR                  SS5      S:w  a  SOSnUR                  SS5      n[        U5      S:  a  SU-   nS	U S
UR                  SS5       U UR                  SS5       3$ )z,return URL per RHSM config for curl command r   insecure1sr   portr   r   httpr   hostnameprefix)r   len)r$   r%   securer0   s       r)   get_server_url"SubscriptionManager.get_server_url3   sw    

8Z8C?Rzz(F+t9q=:Dvhc&**Xz"B!CD6::h124 	5    c                    U R                  / SQ5        U R                  SSS9  U R                  SSS9  U R                  SSS9  U R                  / S	QS
S9  U R                  SU R                  5        35        [        R                  " S5      nU R                  U Vs/ s H  nSU 3PM
     snSS9  SnS nS U l         SSKJn  U" 5       nU R                  U5      nU R                  U5      nSU SUR                  SS5       SU 3nUR                  SS5      n	U	(       a  SU	0nU R                  X4SS9  g s  snf ! [        [        [        [        4 a  n
U R                  SU
 35         S n
A
NIS n
A
ff = f)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*   r6   r   ModuleNotFoundErrorImportErrorr   r   
_log_debug)r$   certscertcurlcmdrG   r@   r%   r&   
server_urlrD   errs              r)   setup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, 	Gb9- G& $[-  	POOHNOO	Ps   D6>A'D; ;E3E..E3c                     SnSnU R                  SX5        SnSnU R                  SX25        U R                  (       a  [        U R                  5        g g )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)   postprocSubscriptionManager.postprocp   sV    9	4iF 1@&O4''(  r8   )r!   N)__name__
__module____qualname____firstlineno__
short_descplugin_nameprofilesfilespackagesr    r*   r6   rV   r]   __static_attributes__ r8   r)   r	   r	      s5    3J(K6H$E(H!K051:f)r8   r	   )
configparserr   r   rL   osr   sos.report.pluginsr   r   r	   ri   r8   r)   <module>rm      s#    7   3r)&, r)r8   