a c8h @sddlmZddlmZz ddlZWney>ddlZYn0ddlZejdddZe edsheje_ ej Z dd idd idd idd idd idd idd idd id Z d d Z GdddejZdS))config) up2dateErrorsNzrhn-client-toolsT)fallbackugettextversionZ211) caneatCheesesupportsAutoUp2dateOptionregistration.finish_message xmlrpc.packages.extended_profileregistration.delta_packages registration.update_contact_info$registration.extended_update_supportregistration.smbiosc Csd}|d}g}|D]}zdd|ddD\}}WntyNYqYn0|dd\}}|ddkrttd |dd}||d }|||fq|S) N,cSsg|] }|qS)strip).0irr?/usr/lib/python3.9/site-packages/up2date_client/capabilities.py #zparseCap..=()z2something broke in parsing the capabilited headers)rvalue)split ValueErrorprintappend) Z capstringrZcapscapslistcapZ key_versionkeyrdatarrrparseCaps      r&c@sNeZdZddZddZddZddZd d Zd d Zd dZ dddZ dS) CapabilitiescCs&tj|i|_t|_t|_dSN)UserDict__init__ missingCaps neededCapsrZinitUp2dateConfigcfg)selfrrrr*:s zCapabilities.__init__cCsB|D]4\}}|dkrt|}|D]\}}||j|<q(qdS)Nzx-rhn-server-capability)itemslowerr&r%)r.Zheadersr$valr"r#r%rrrpopulateCs   zCapabilities.populatecCsx|d}|dkrF|d}|d}|d}tt|t|d}|S|d}t|dkrndd|D}|St|gS)N-rr:cSsg|] }t|qSr)int)rarrrrWrz0Capabilities.parseCapVersion..)findrranger5len)r.Z versionStringindexrngstartendZversionsZversrrrparseCapVersionKs    zCapabilities.parseCapVersioncCsZ||jvr"td|}d|j|<n4|j|}t|d||dvrV|j||j|<dS)NzXThis client requires the server to support %s, which the current server does not supportr)r%_r+r5r>r,)r.r#ZcapvalueZerrstrr%rrr validateCap\s   zCapabilities.validateCapcCs.|jD]}|||j|q |dSr()r,keysr@workaroundMissingCaps)r.r$rrrvalidatehszCapabilities.validatecCs,||jvrd|j|<|j|=n d|j|<dS)Nrr)tmpCapsr-)r.r$Z configItemrrr setConfigns   zCapabilities.setConfigc CsH|j|_d}||jvr |j|=ndddddddd }|D]}||||q)r.Z capabilityrr%rrr hasCapabilitys  zCapabilities.hasCapability)N) __name__ __module__ __qualname__r*r2r>r@rCrErBrJrrrrr'9s  s*