3 ܓi@sVddlmZmZddlZddlmZddlmZmZddl m Z GdddeeZ dS)) NoOptionErrorNoSectionErrorN)remove)Plugin RedHatPlugin)sos_parse_versionc@sDeZdZdZdZdZdZdZdZd d Z d d Z d dZ ddZ dS)SubscriptionManagerz subscription-manager informationZsubscription_managersystempackagemanagersysmgmt/etc/rhsm/rhsm.confsubscription-managerZ rhsm_curl_cfgc Csd}|jdd}|rL|jdd}|jdd}|r8d|}d|d||}|jdd }|r|r|jdd }|r|jj|j|_t|jd d d }|jd|d|WdQRX|d|j7}n|d|7}|S)z4 return curl options --proxy[-user] per RHSM config serverproxy_hostname proxy_scheme proxy_port:z--proxy z:// proxy_userZproxy_passwordwzutf-8)encodingz --proxy-user Nz --config z --proxy-user )getarchiveZ dest_path curl_config_curl_cfg_fnameopenwrite) selfconfigproxyrrrrZ proxy_passZ_fr */usr/lib/python3.6/subscription_manager.pyget_proxy_strings&     z$SubscriptionManager.get_proxy_stringcCs`|jdddkrdnd}|jdd}t|dkr8d|}d |d |jdd ||jdd S) z- return URL per RHSM config for curl command rZinsecure1srportrrZhttpz://Zhostnameprefix)rlen)rrZsecurer%r r r!get_server_url4s   z"SubscriptionManager.get_server_urlc Cs|jddddg|jddd|jdd d|jd d d d ddgdd|jjjd}|dk rdj|d}t|tdkr|jdddgdd|jd|jtjd}|jdd|Dddd}d}d|_ ybdd l m }|}|j |}|j |} d!| d"|jd#d$d%|}|jd&d'} | r4d(| i}Wn<ttttfk rr} z|jd)| WYdd} ~ XnX|j||d*d+dS),Nz /etc/rhsm/z/var/lib/rhsm/z/var/log/rhsm/rhsm.logz/var/log/rhsm/rhsmcertd.logzsubscription-manager identityZsubscription_manager_id)Ztagsz%subscription-manager list --installedZsubscription_manager_installedz#subscription-manager release --showz#subscription-manager release --listzsyspurpose showz&subscription-manager syspurpose --showzsubscription-manager statuszsubscription-manager factsT)Z cmd_as_tagzsubscription-manager.versionz1.30.3-1z%subscription-manager list --availablez+subscription-manager list --all --availablez$subscription-manager list --consumedzFrhsm-debug system --sos --no-archive --no-subscriptions --destination z/etc/pki/product-default/*.pemcSsg|]}d|qS)z rct cat-cert r ).0Zcertr r r! `sz-SubscriptionManager.setup..Z*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 ZrhsmZ repo_ca_cert rno_proxyZNO_PROXYz*Error checking for RHSM cert/proxy issue: )envZtimeout)Z add_copy_specZadd_cmd_outputZpolicyZpackage_managerZ pkg_by_namejoinrZget_cmd_output_pathglobrZ rhsm.configr-r"r(rModuleNotFoundError ImportErrorrrZ _log_debug) rZsmpkgZ sm_versionZcertsZcurlcmdr1r-rrZ server_urlr/errr r r!setup>s\      "zSubscriptionManager.setupcCsVd}d}|jd||d}d}|jd|||jr s