o
    .&ßaM  ã                   @   s4   d dl mZ d dl mZ dd„ Zdd„ Zdd„ Zd	S )
é    )Ú	constants)Ú
exceptionsc                 C   sø   g }| D ]u}i }|  ¡ }d|v r|d |d< n|d |d< |d |d< |d |d< |d  ¡ |d< d|v rG|d dkrA|d |d< tj|d< ntj|d< d	|v rV|d	 |d	< d
|v r`|d
 |d
< d|v rj|d |d< d|v rt|d |d< | |¡ q|S )z±
    Helper method that converts --instance-groups option value in
    create-cluster and add-instance-groups to
    Amazon Elastic MapReduce InstanceGroupConfig data type.
    ÚNameÚInstanceGroupTypeÚInstanceTypeÚInstanceCountÚInstanceRoleÚBidPriceÚOnDemandPriceÚMarketÚEbsConfigurationÚAutoScalingPolicyÚConfigurationsÚCustomAmiId)ÚkeysÚupperr   ÚSPOTÚ	ON_DEMANDÚappend)Úparsed_instance_groupsÚinstance_groupsÚinstance_groupÚ	ig_configr   © r   úO/usr/lib/python3/dist-packages/awscli/customizations/emr/instancegroupsutils.pyÚbuild_instance_groups   s2   
r   c                 C   s:   i }| |d< ||d< |  ¡ |d< |d |d< tj|d< |S )Nr   r   r   r   r   )r   r   r   )Úinstance_typeÚinstance_countÚinstance_group_typer   r   r   r   Ú_build_instance_group;   s   
r   c                 C   s˜   | d u r|d u rt j‚| d ur|d us|d urt j‚| d ur"t| ƒS g } t|ddd�}|  |¡ |d urJt|ƒdkrJt|t|ƒd dd�}|  |¡ | S )Né   ÚMASTER)r   r   r   ÚCORE)r   Ú"MissingRequiredInstanceGroupsErrorÚInstanceGroupsValidationErrorr   r   r   Úint)r   r   r   Ú	master_igÚcore_igr   r   r   Ú"validate_and_build_instance_groupsF   s.   ý

ý
r(   N)Úawscli.customizations.emrr   r   r   r   r(   r   r   r   r   Ú<module>   s
   )