ó
è?F[c           @   s6   d  e  f d „  ƒ  YZ e Z d e f d „  ƒ  YZ d S(   t   BlockDeviceTypec           B   sM   e  Z d  Z d d e d d d d e d d d d d „ Z d „  Z d „  Z RS(   s3   
    Represents parameters for a block device.
    c         C   sp   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ |
 |  _	 | |  _
 | |  _ d  S(   N(   t
   connectiont   ephemeral_namet	   no_devicet	   volume_idt   snapshot_idt   statust   attach_timet   delete_on_terminationt   sizet   volume_typet   iopst	   encrypted(   t   selfR   R   R   R   R   R   R   R   R	   R
   R   R   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt   __init__   s    											c         C   s   d  S(   N(    (   R   t   namet   attrsR   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt   startElement8   s    c         C   sF  | j  ƒ  } | d k r$ | |  _ n| d k r< | |  _ n| d k rZ | d k |  _ nè | d k rr | |  _ nÐ | d k r t | ƒ |  _ n² | d k r¨ | |  _ nš | d k rÀ | |  _ n‚ | d	 k rÞ | d k |  _	 nd | d
 k rö | |  _
 nL | d k rt | ƒ |  _ n. | d k r2| d k |  _ n t |  | | ƒ d  S(   Nt   volumeIdt   virtualnamet   nodevicet   truet
   snapshotidt
   volumesizeR   t
   attachtimet   deleteonterminationt
   volumetypeR   R   (   t   lowerR   R   R   R   t   intR	   R   R   R   R
   R   R   t   setattr(   R   R   t   valueR   t   lname(    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt
   endElement;   s0    N(   t   __name__t
   __module__t   __doc__t   Nonet   FalseR   R   R    (    (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR       s   	t   BlockDeviceMappingc           B   sP   e  Z d  Z d d „ Z d „  Z d „  Z d d „ Z d d „ Z d d „ Z	 RS(	   sG  
    Represents a collection of BlockDeviceTypes when creating ec2 instances.

    Example:
    dev_sda1 = BlockDeviceType()
    dev_sda1.size = 100   # change root volume to 100GB instead of default
    bdm = BlockDeviceMapping()
    bdm['/dev/sda1'] = dev_sda1
    reservation = image.run(..., block_device_map=bdm, ...)
    c         C   s,   t  j |  ƒ | |  _ d |  _ d |  _ d S(   ss   
        :type connection: :class:`boto.ec2.EC2Connection`
        :param connection: Optional connection.
        N(   t   dictR   R   R$   t   current_namet   current_value(   R   R   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR   f   s    		c         C   s2   | j  ƒ  } | d k r. t |  ƒ |  _ |  j Sd  S(   Nt   ebsR   (   R*   R   (   R   R    R)   (   R   R   R   R   R   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR   p   s    c         C   sG   | j  ƒ  } | d k r$ | |  _ n | d k rC |  j |  |  j <n  d  S(   Nt   devicet
   devicenamet   itemt   member(   R+   R,   (   R-   R.   (   R   R(   R)   (   R   R   R   R   R   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR    v   s
    t    c         C   s   d | } |  j  | d | ƒS(   Ns   %sBlockDeviceMappingt   prefix(   t   _build_list_params(   R   t   paramsR0   t   pre(    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt   ec2_build_list_params}   s    
c         C   s   d | } |  j  | d | ƒS(   Ns   %sBlockDeviceMappings.memberR0   (   R1   (   R   R2   R0   R3   (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt   autoscale_build_list_params   s    
c         C   s`  d } xS|  D]K} d | | f } | | d | <|  | } | j  rX | j  | d | <nö | j rr d | d | <nÜ | j r | j | d | <n  | j r¬ | j | d | <n  | j rÆ d	 | d
 | <n d | d
 | <| j rñ | j | d | <n  | j d  k	 r| j | d | <n  | j d  k	 rN| j r=d	 | d | <qNd | d | <n  | d 7} q Wd  S(   Ni   s   %s.%ds   %s.DeviceNames   %s.VirtualNameR/   s   %s.NoDevices   %s.Ebs.SnapshotIds   %s.Ebs.VolumeSizeR   s   %s.Ebs.DeleteOnTerminationt   falses   %s.Ebs.VolumeTypes   %s.Ebs.Iopss   %s.Ebs.Encrypted(	   R   R   R   R	   R   R
   R   R$   R   (   R   R2   R0   t   it   dev_nameR3   t	   block_dev(    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR1   …   s2    
							N(
   R!   R"   R#   R$   R   R   R    R4   R5   R1   (    (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyR&   Z   s   

		N(   t   objectR    t   EBSBlockDeviceTypeR'   R&   (    (    (    s:   lib/python2.7/site-packages/boto/ec2/blockdevicemapping.pyt   <module>   s   >