U
    d                     @   sB  d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ ddddddddddddddddd	d	d	d	d
Z	dZ
dZdZdddddgZddiZe	D ]Zeede < qded dded ddZe	D ]XZde ed d e  e	e dee< d e ed d!e   e	e deed" < qG d#d$ d$eZd%d& Zd'd( ZdS ))    )print_functionN)gettext)ShortcutExceptionZpreciseZtrustyZxenialZbionicZfocal)ZfolsomZgrizzlyZhavanaZicehouseZjunoZkiloZlibertyZmitakaZnewtonZocataZpikeZqueensZrockyZsteinZtrainZussuriZvictoriaZwallabyZxenaZyogaz0http://ubuntu-cloud.archive.canonical.com/ubuntuzUbuntu Cloud Archivez.https://wiki.ubuntu.com/OpenStack/CloudArchivezapt-getz--quietz--assume-yesinstallzubuntu-cloud-keyringztools-updatestoolsz
%s-updatesz %(codename)s-updates/cloud-toolsz  for cloud-tools (JuJu and MAAS))sldfmtdescriptionz!%(codename)s-proposed/cloud-toolsz+ for cloud-tools (JuJu and MAAS) [proposed])r   ztools-proposedz%(codename)s-updates/z for z
OpenStack )r   r   releasez%(codename)s-proposed/zOpenStack %s [proposed]z	-proposedc                   @   s8   e Zd Zdd Zdd ZdddZdd	 Zdd
dZdS )CloudArchiveShortcutHandlerc                 C   s   || _ d}||tt d}||s8ttd| |t|d  }t	||}|
d|i |tkrzttd| || _t|  | _t| jd< d S )Nzcloud-archive:)shortcutprefixZca_namesz7shortcut '%(shortcut)s' did not start with '%(prefix)s'Z
input_namezM'%(input_name)s': not a valid cloud-archive name.
Must be one of %(ca_names)sZweb_link)r   sortedMAPkeys
startswith
ValueError_lenALIASESgetupdater   canamecopy_infoWEB_LINK)selfr   r   ZsubsZname_inr    r   A/usr/lib/python3/dist-packages/softwareproperties/cloudarchive.py__init__T   s.    

z$CloudArchiveShortcutHandler.__init__c                 C   s   | j S N)r   r   r   r   r   infom   s    z CloudArchiveShortcutHandler.infoNc                 C   sz   |t | j d tjdfkrDttdt | j d | j d t | j d d|i }ddt	|d	f}|t
| jfS )
Nr	   ZCA_ALLOW_CODENAMEz?cloud-archive for %(os_release)s only supported on %(codename)s)codenameZ
os_releaser   r"    Zdebmain)r   r   osenvironr   r   r   
capitalizejoinMIRROR_fname_for_caname)r   r"   ZdistroZdistliner   r   r   expandp   s    
z"CloudArchiveShortcutHandler.expandc                 C   s   dS )NTr   r    r   r   r   should_confirm{   s    z*CloudArchiveShortcutHandler.should_confirmc                 C   sB   t j }d|d< ztjt|d W n tjk
r<   Y dS X dS )NZnoninteractiveZDEBIAN_FRONTEND)argsenvFT)r%   r&   r   
subprocessZ
check_callAPT_INSTALL_KEYZCalledProcessError)r   Z	keyserverr/   r   r   r   add_key~   s    
z#CloudArchiveShortcutHandler.add_key)N)N)__name__
__module____qualname__r   r!   r,   r-   r2   r   r   r   r   r
   S   s
   
r
   c                 C   s   t jtjdd|  S )NzDir::Etc::sourcepartszcloudarchive-%s.list)r%   pathr(   apt_pkgZconfigZfind_dir)r   r   r   r   r*      s    
r*   c                 C   s&   z
t | W S  tk
r    Y d S X d S r   )r
   r   )r   r   r   r   shortcut_handler   s    
r8   )Z
__future__r   r7   r%   r0   r   r   Zsoftwareproperties.shortcutsr   ZRELEASE_MAPr)   ZUCAr   r1   r   Z_rr   r'   objectr
   r*   r8   r   r   r   r   <module>   sl   	
5