o ckF[@s(GdddeZeZGdddeZdS)c@sBeZdZdZ            d ddZddZdd ZdS) BlockDeviceTypez3 Represents parameters for a block device. NFc CsL||_||_||_||_||_||_||_||_| |_| |_ | |_ | |_ dSN) connectionephemeral_name no_device volume_id snapshot_idstatus attach_timedelete_on_terminationsize volume_typeiops encrypted) selfrrrrrrr r r r r rr=/usr/lib/python3/dist-packages/boto/ec2/blockdevicemapping.py__init__s  zBlockDeviceType.__init__cCsdSrr)rnameattrsrrrr startElement8szBlockDeviceType.startElementcCs|}|dkr ||_dS|dkr||_dS|dkr!|dk|_dS|dkr*||_dS|dkr5t||_dS|dkr>||_dS|dkrG||_dS|d krR|dk|_ dS|d kr[||_ dS|d krft||_ dS|d krq|dk|_ dSt |||dS) NvolumeId virtualnamenodevicetrue snapshotid volumesizer attachtimedeleteontermination volumetyper r)lowerrrrrintr rr r r r rsetattrrrvaluerlnamerrr endElement;s0      zBlockDeviceType.endElement) NNFNNNNFNNNN)__name__ __module__ __qualname____doc__rrr%rrrrrs"  rc@sHeZdZdZdddZddZddZdd d Zdd d ZdddZ dS)BlockDeviceMappingaG 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, ...) NcCs t|||_d|_d|_dS)zs :type connection: :class:`boto.ec2.EC2Connection` :param connection: Optional connection. N)dictrr current_name current_value)rrrrrrfs  zBlockDeviceMapping.__init__cCs$|}|dvrt||_|jSdS)N)ebsr)rrr-)rrrrr$rrrrps  zBlockDeviceMapping.startElementcCs6|}|dvr ||_dS|dvr|j||j<dSdS)N)device devicename)itemmember)rr,r-r"rrrr%vs  zBlockDeviceMapping.endElementcCd|}|j||dS)Nz%sBlockDeviceMappingprefix_build_list_paramsrparamsr6prerrrec2_build_list_params}z(BlockDeviceMapping.ec2_build_list_paramscCr4)Nz%sBlockDeviceMappings.memberr5r7r9rrrautoscale_build_list_paramsr=z.BlockDeviceMapping.autoscale_build_list_paramscCsd}|D]z}d||f}||d|<||}|jr!|j|d|<nY|jr+d|d|<nO|jr5|j|d|<|jr?|j|d|<|jrId |d |<nd |d |<|jrY|j|d |<|jdure|j|d |<|jdurz|jrtd |d|<nd |d|<|d7}qdS)Nz%s.%dz %s.DeviceNamez%s.VirtualNamer3z %s.NoDevicez%s.Ebs.SnapshotIdz%s.Ebs.VolumeSizerz%s.Ebs.DeleteOnTerminationfalsez%s.Ebs.VolumeTypez %s.Ebs.Iopsz%s.Ebs.Encrypted)rrrr r r r r)rr:r6idev_namer; block_devrrrr8s4       z%BlockDeviceMapping._build_list_paramsr)r3) r&r'r(r)rrr%r<r>r8rrrrr*Zs    r*N)objectrEBSBlockDeviceTyper+r*rrrrs>