|fB ddlZddlZddlmZddlmZmZmZddlm Z ddl m Z ddl m Z iddd dd dd dd d dd dd dd ddddddddddddddddddddddddddZdZd Zd!Zd"d#gZd$d%gZedZd&ZGd'd(eZy))N)gettext)ShortcutHandlerShortcutExceptionInvalidShortcutException)SourcesListShortcutHandler)URIShortcutHandler)urlparsefolsomprecisegrizzlyhavanaicehousejunotrustykilolibertymitakanewtonxenialocatapikequeensrockybionicsteintrainussurivictoriafocaljammy)wallabyxenayogazedantelopebobcatcaracalzUbuntu Cloud Archivez.https://wiki.ubuntu.com/OpenStack/CloudArchivez0http://ubuntu-cloud.archive.canonical.com/ubuntuz cloud-archiveucaupdatesproposedzubuntu-cloud-keyringcheZdZfdZedZedZdZd fd ZdZ dZ dZ d Z xZ S) CloudArchiveShortcutHandlerc tt| |fi|d|_t |j ||j ||j|fstd|z}t||jj|_d|jz|_ |jj|_ |jtvr#td|jz}t||jtvr#td|jz}t|t|j}t!|t#j$dxs|f}|j&|vrAtd|jj)|j)fz}t|t*d|jj)|_|jdk(r|xj,d z c_|j.st|j&d |jd |j}d j1|j2xsd }|j4d t6d |d |}|j9|yy)Nz¬ a valid cloud-archive format: '%s'zcloudarchive-%sz¬ a valid cloud-archive pocket: '%s'znot a valid cloud-archive: '%s'CA_ALLOW_CODENAMEz)cloud-archive for %s only supported on %sz for OpenStack r*z [proposed]-/ main)superr,__init__canameany _match_uca _match_uri_match_sourceslist_rlower _filebasepocketUCA_VALID_POCKETSr RELEASE_MAPsetosgetenvcodename capitalizeUCA _description _source_entryjoin components binary_type UCA_ARCHIVE_set_source_entry) selfshortcutkwargsmsgrC validnamesdistcompsline __class__s A/usr/lib/python3/dist-packages/softwareproperties/cloudarchive.pyr4z$CloudArchiveShortcutHandler.__init__Is' )49(MfM DOOH-OOH-++H578=>IC*3/ /kk'') *T[[8kk'') {{//=>LC#C( ({{k)67$++EC#C( (t{{+(BII.A$B$NhOP == *@AKK**,h.A.A.CDEC#C( ("e?4;;3I3I3K2LM ;;* $    . !!mm_Adkk]!DKK=ADHHT__-7E&&'q QtfAeWED  " "4 ( "c|jSN)rFrMs rV descriptionz'CloudArchiveShortcutHandler.descriptionrs   rWctSrY)WEB_LINKrZs rVweb_linkz$CloudArchiveShortcutHandler.web_linkvsrWc\tjdtjdy)Nzapt-get install -y T)check) subprocessrunUCA_KEYRING_PACKAGEsplitrZs rVadd_keyz#CloudArchiveShortcutHandler.add_keyzs$,-@,ABHHJRVWrWc(tt| SrY)r3r,_encode_filebase)rMsuffixrUs rVrgz,CloudArchiveShortcutHandler._encode_filebase~s0$HJJrWc|jd\}}}|jtvry|jd\}}}|sy||_|xs|j xst |_y)N:Fr/T) rpartitionr; UCA_PREFIXES partitionr5r=UCA_DEFAULT_POCKET)rMrNprefixr:r(r5r=s rVr7z&CloudArchiveShortcutHandler._match_ucase#..s3C||~-!mmC0F A A/A rWcV |jt|S#t$rYywxYwNF)_match_handlerrrrMrNs rVr8z&CloudArchiveShortcutHandler._match_uris0 &&'9('CD D'    ((cV |jt|S#t$rYywxYwrq)rrrrrss rVr9z.CloudArchiveShortcutHandler._match_sourceslists0 &&'A('KL L'  rtct|jj}|jttjk7ry|jj j d\}}}|j d\}}}t||fsy||_|xs|jxst|_ |j|jjy)NFr0r/T) r SourceEntryurihostnamerKrRrmallr5r=rnrLrT)rMhandlerparsedrCr:r5r=s rVrrz*CloudArchiveShortcutHandler._match_handlers'--/334 ??h{3<< < ' 3 3 5 : : D DS I1f ( 2 23 71fHf%& A A/A  w22499:rWrY)__name__ __module__ __qualname__r4propertyr[r^rergr7r8r9rr __classcell__)rUs@rVr,r,HsQ')R!!XK   rWr,)rArarr:"softwareproperties.shortcuthandlerrrrsoftwareproperties.sourceslistrsoftwareproperties.urir urllib.parser r?rEr]rKrlr>rnrcr,rWrVrsU,  JJE5! i y i   H   H x h h X H h X X X  h!"#$   1 4 ;@ '  +&q),b/brW