HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/awscli/customizations/emr/__pycache__/emrfsutils.cpython-310.pyc
o

.&�a�#�@s�ddlmZddlmZddlmZddlmZddgZdgZdd	gZej	ej
gZejej
gZd
ZdZdZd
Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Z d*d+�Z!d,S)-�)�	constants)�emrutils)�
exceptions)�OrderedDict�
RetryCount�RetryPeriod�KMSKeyId�CustomProviderLocation�CustomProviderClassz--emrfs Consistent=true/falsez--emrfs Encryption=ClientSidez.--emrfs Encryption=ClientSide,ProviderType=KMSz1--emrfs Encryption=ClientSide,ProviderType=Customc
Csxg}t|�t|d�r$|�tjtjtjtj|�	d�tj
tjtjgd��t
|�}|�tjtjtj|d�tj|d��|S)N�CUSTOMr	)�path�name�args)�
relative_path�region)�_verify_emrfs_args�_need_to_configure_cse�appendr�build_bootstrap_actionr�EMRFS_CSE_CUSTOM_S3_GET_BA_PATH�S3_GET_BA_NAME�
S3_GET_BA_SRC�get�S3_GET_BA_DEST�EMRFS_CUSTOM_DEST_PATH�S3_GET_BA_FORCE�_build_ba_args_to_setup_emrfs�
build_s3_link�CONFIG_HADOOP_PATH�
EMRFS_BA_NAME)r�
emrfs_args�bootstrap_actions�emrfs_setup_ba_args�r#�F/usr/lib/python3/dist-packages/awscli/customizations/emr/emrfsutils.py�build_bootstrap_action_configs s6
���
���r%cCs:t|�t|�}t|d�r|�d�|tj<tj|d�}|S)Nrr	)�Classification�
Properties)r�_build_emrfs_propertiesrrr�!EMRFS_CSE_CUSTOM_PROVIDER_URI_KEY�
EMRFS_SITE)r �emrfs_properties�emrfs_configurationr#r#r$�build_emrfs_confiuration=s
��r-cCs4d|vr|d��tvrtj|dd��d|vr'd|vr'tj|d|dd��d|vrp|d��tjkrpd|vr?tjtdd��|d��t	vrOtj
|dd��|d��dkr`t|��t
t�n|d��d	krpt|��tt�d
|vr|t|��tt�t|d�s�t|��t
t�t|d	�s�t|��tt�dSdS)N�
Encryption)�
encryption�SSE)�sser/�ProviderType��object_name�missing)�
provider_type�KMSr�
Consistent)�upper�ENCRYPTION_TYPESr�UnknownEncryptionTypeError�#BothSseAndEncryptionConfiguredErrorr�EMRFS_CLIENT_SIDE�MissingParametersError�CSE_OPTION_NAME�CSE_PROVIDER_TYPES�UnknownCseProviderTypeError�_verify_required_args�keys�CSE_KMS_REQUIRED_KEYS�CSE_KMS_OPTION_NAME�CSE_CUSTOM_REQUIRED_KEYS�CSE_CUSTOM_OPTION_NAME�_verify_child_args�CONSISTENT_OPTIONAL_KEYS�CONSISTENT_OPTION_NAMEr�r r#r#r$rLsP����
�
�
�

�

��rcsHt�fdd�|D��r"ttt|��t�����}tj|t�|�d��dS)Nc3s�|]}|�vVqdS�Nr#��.0�x��actual_keysr#r$�	<genexpr>x��z(_verify_required_args.<locals>.<genexpr>r3)	�any�list�sorted�set�
differencerr>r�join)rQ�
required_keysr4�missing_keysr#rPr$rBws�
��rBcsHt�fdd�|D��r"ttt|��t�����}tjt�|�|d��dS)Nc3s�|]}|�vVqdSrLr#rMrPr#r$rR�rSz%_verify_child_args.<locals>.<genexpr>)�invalid�parent_object_name)	rTrUrVrW�intersectionr�InvalidEmrFsArgumentsErrorrrY)rQ�
child_keysr]�invalid_keysr#rPr$rHs���rHcCst|�}t|�SrL)r(�_create_ba_args)r r+r#r#r$r�srcCs�t�}t|�rt||�t|�rt||�t|d�r t||d�t|d�r+t||d�d|vrB|�d�D]
}t�	|�\}}|||<q4|S)zR
    Assumption: emrfs_args is valid i.e. all required attributes are present
    r7r�Args)
r�"_need_to_configure_consistent_view�&_update_properties_for_consistent_view�_need_to_configure_sse�_update_properties_for_sser�_update_properties_for_cserr�split_to_key_value)r r+�	arg_value�key�valuer#r#r$r(�s




r(cCsd|vS)Nr8r#rKr#r#r$rd�srdcCs"d|vpd|vo|d��tjkS)Nr0r.)r9r�EMRFS_SERVER_SIDErKr#r#r$rf�s�rfcCs2d|vo|d��tjkod|vo|d��|kS)Nr.r2)r9rr=)r �cse_typer#r#r$r�s���rcCsRt|d���|tj<d|vrt|d�|tj<d|vr't|d�|tj<dSdS)Nr8rr)�str�lowerr�EMRFS_CONSISTENT_KEY�EMRFS_RETRY_COUNT_KEY�EMRFS_RETRY_PERIOD_KEY)r+r r#r#r$re�s�
�
��recCs*d|vr|dnd}t|���|tj<dS)Nr0T)rorpr�
EMRFS_SSE_KEY)r+r �	sse_valuer#r#r$rg�srgcCsNd|tj<|dkrtj|tj<|d|tj<dS|dkr%|d|tj<dSdS)N�truer7rrr
)r�
EMRFS_CSE_KEY�&EMRFS_CSE_KMS_PROVIDER_FULL_CLASS_NAME�+EMRFS_CSE_ENCRYPTION_MATERIALS_PROVIDER_KEY�EMRFS_CSE_KMS_KEY_ID_KEY)r+r rnr#r#r$rh�s
������rhcCs|�tj�|�|�dSrL)rr�EMRFS_BA_ARG_KEY)�ba_args�	key_valuer#r#r$�_update_emrfs_ba_args�sr~cCs8g}|��D]\}}|}|r|d|}t||�q|S)N�=)�itemsr~)r+r|rkrlr}r#r#r$rb�srbN)"�awscli.customizations.emrrrr�botocore.compatrrIrDrF�	EMRFS_KMS�EMRFS_CUSTOMr@r=rmr:rJr?rErGr%r-rrBrHrr(rdrfrrergrhr~rbr#r#r#r$�<module>s8
+