o
    wÚ7eL  ã                
   @   sÒ   U d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ e e¡ZeZd	d
gZdZdZdddedƒeeg d¢dgdœZeed< eeƒZ dede	dededdf
dd„Zdd„ ZdS )z)Apt Pipelining: configure apt pipelining.é    N)Údedent)Úutil)ÚCloud)ÚConfig)Ú
MetaSchemaÚget_meta_doc)ÚPER_INSTANCEÚubuntuÚdebianz+/etc/apt/apt.conf.d/90cloud-init-pipeliningzQ//Written by cloud-init per 'apt_pipelining'
Acquire::http::Pipeline-Depth "%s";
Úcc_apt_pipeliningzApt PipeliningzConfigure apt pipelininga          This module configures apt's ``Acquite::http::Pipeline-Depth`` option,
        which controls how apt handles HTTP pipelining. It may be useful for
        pipelining to be disabled, because some web servers, such as S3 do not
        pipeline properly (LP: #948461).

        Value configuration options for this module are:

        * ``false`` (Default): disable pipelining altogether
        * ``none``, ``unchanged``, or ``os``: use distro default
        * ``<number>``: Manually specify pipeline depth. This is not recommended.)zapt_pipelining: falsezapt_pipelining: nonezapt_pipelining: unchangedzapt_pipelining: oszapt_pipelining: 3Úapt_pipelining)ÚidÚnameÚtitleÚdescriptionÚdistrosÚ	frequencyÚexamplesÚactivate_by_schema_keysÚmetar   ÚcfgÚcloudÚargsÚreturnc                 C   sx   |  dd¡}t|ƒ ¡  ¡ }|dkrtdttƒ d S |dv r d S |dd„ tdd	ƒD ƒv r4t|ttƒ d S t d
|¡ d S )Nr   ÚosÚfalseÚ0)ÚnoneÚ	unchangedr   c                 S   s   g | ]}t |ƒ‘qS © )Ústr)Ú.0Úbr   r   úD/usr/lib/python3/dist-packages/cloudinit/config/cc_apt_pipelining.pyÚ
<listcomp>H   s    zhandle.<locals>.<listcomp>r   é   z%Invalid option for apt_pipelining: %s)	Úgetr    ÚlowerÚstripÚwrite_apt_snippetÚLOGÚDEFAULT_FILEÚrangeÚwarning)r   r   r   r   Úapt_pipe_valueÚapt_pipe_value_sr   r   r#   Úhandle@   s   r0   c                 C   s&   t |  }t ||¡ | d|| ¡ dS )z0Writes f_name with apt pipeline depth 'setting'.z+Wrote %s with apt pipeline depth setting %sN)ÚAPT_PIPE_TPLr   Ú
write_fileÚdebug)ÚsettingÚlogÚf_nameÚfile_contentsr   r   r#   r)   N   s   r)   )Ú__doc__ÚloggingÚtextwrapr   Ú	cloudinitr   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   r   Úcloudinit.settingsr   Ú	getLoggerÚ__name__r*   r   r   r+   r1   r   Ú__annotations__r    Úlistr0   r)   r   r   r   r#   Ú<module>   s8   
ÿ
ÿæ