o
    !dM                     @   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.
    NameZInstanceGroupTypeInstanceTypeInstanceCountInstanceRoleZBidPriceZOnDemandPriceMarketZEbsConfigurationZAutoScalingPolicyZConfigurationsZCustomAmiId)keysupperr   ZSPOT	ON_DEMANDappend)Zparsed_instance_groupsinstance_groupsZinstance_group	ig_configr	    r   Qusr/lib/python3.10/site-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   ZMASTER)r   r   r   ZCORE)r   Z"MissingRequiredInstanceGroupsErrorZInstanceGroupsValidationErrorr   r   r   int)r   r   r   Z	master_igZcore_igr   r   r   "validate_and_build_instance_groupsF   s.   


r   N)Zawscli.customizations.emrr   r   r   r   r   r   r   r   r   <module>   s
   )