HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/awscli/customizations/emr/__pycache__/emrfsutils.cpython-36.opt-1.pyc
3

�T_�#�@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�rH|jtjtjtjtj|j	d�tj
tjtjgd��t
|�}|jtjtjtj|d�tj|d��|S)N�CUSTOMr	)�path�name�args)Z
relative_path�region)�_verify_emrfs_args�_need_to_configure_cse�appendrZbuild_bootstrap_actionrZEMRFS_CSE_CUSTOM_S3_GET_BA_PATHZS3_GET_BA_NAMEZ
S3_GET_BA_SRC�getZS3_GET_BA_DESTZEMRFS_CUSTOM_DEST_PATHZS3_GET_BA_FORCE�_build_ba_args_to_setup_emrfsZ
build_s3_linkZCONFIG_HADOOP_PATHZ
EMRFS_BA_NAME)r�
emrfs_argsZbootstrap_actionsZemrfs_setup_ba_args�r� /usr/lib/python3.6/emrfsutils.py�build_bootstrap_action_configs s*

rcCs:t|�t|�}t|d�r*|jd�|tj<tj|d�}|S)Nrr	)ZClassificationZ
Properties)r�_build_emrfs_propertiesrrrZ!EMRFS_CSE_CUSTOM_PROVIDER_URI_KEYZ
EMRFS_SITE)r�emrfs_propertiesZemrfs_configurationrrr�build_emrfs_confiuration=s
rcCs8d|kr(|dj�tkr(tj|dd��d|krNd|krNtj|d|dd��d|kr�|dj�tjkr�d|kr�tjtdd��nd|dj�t	kr�tj
|dd��nB|dj�dkr�t|j�t
t�n |dj�d	kr�t|j�tt�d
|kr�t|j�tt�t|d��st|j�t
t�t|d	��s4t|j�tt�dS)N�
Encryption)�
encryption�SSE)Zsser�ProviderType)�object_name�missing)Z
provider_type�KMSr�
Consistent)�upper�ENCRYPTION_TYPESrZUnknownEncryptionTypeErrorZ#BothSseAndEncryptionConfiguredErrorr�EMRFS_CLIENT_SIDE�MissingParametersError�CSE_OPTION_NAME�CSE_PROVIDER_TYPESZUnknownCseProviderTypeError�_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)rrrrrLs<




rcsHt�fdd�|D��rDttt|�jt�����}tj|tj|�d��dS)Nc3s|]}|�kVqdS)Nr)�.0�x)�actual_keysrr�	<genexpr>xsz(_verify_required_args.<locals>.<genexpr>)r r!)	�any�list�sorted�set�
differencerr'r�join)r5Z
required_keysr Zmissing_keysr)r5rr*ws
r*csHt�fdd�|D��rDttt|�jt�����}tjtj|�|d��dS)Nc3s|]}|�kVqdS)Nr)r3r4)r5rrr6�sz%_verify_child_args.<locals>.<genexpr>)Zinvalid�parent_object_name)	r7r8r9r:�intersectionrZInvalidEmrFsArgumentsErrorrr<)r5Z
child_keysr=Zinvalid_keysr)r5rr0sr0cCst|�}t|�S)N)r�_create_ba_args)rrrrrr�srcCs�t�}t|�rt||�t|�r*t||�t|d�r@t||d�t|d�rVt||d�d|kr�x(|jd�D]}tj	|�\}}|||<qjW|S)zR
    Assumption: emrfs_args is valid i.e. all required attributes are present
    r"rZArgs)
r�"_need_to_configure_consistent_view�&_update_properties_for_consistent_view�_need_to_configure_sse�_update_properties_for_sser�_update_properties_for_cserrZsplit_to_key_value)rrZ	arg_value�key�valuerrrr�s



rcCsd|kS)Nr#r)rrrrr@�sr@cCs"d|kp d|ko |dj�tjkS)Nrr)r$r�EMRFS_SERVER_SIDE)rrrrrB�srBcCs2d|ko0|dj�tjko0d|ko0|dj�|kS)Nrr)r$rr&)r�cse_typerrrr�srcCsNt|d�j�|tj<d|kr0t|d�|tj<d|krJt|d�|tj<dS)Nr#rr)�str�lowerrZEMRFS_CONSISTENT_KEYZEMRFS_RETRY_COUNT_KEYZEMRFS_RETRY_PERIOD_KEY)rrrrrrA�s
rAcCs*d|kr|dnd}t|�j�|tj<dS)NrT)rIrJrZ
EMRFS_SSE_KEY)rrZ	sse_valuerrrrC�srCcCsHd|tj<|dkr.tj|tj<|d|tj<n|dkrD|d|tj<dS)N�truer"rrr
)rZ
EMRFS_CSE_KEYZ&EMRFS_CSE_KMS_PROVIDER_FULL_CLASS_NAMEZ+EMRFS_CSE_ENCRYPTION_MATERIALS_PROVIDER_KEYZEMRFS_CSE_KMS_KEY_ID_KEY)rrrHrrrrD�s
rDcCs|jtj�|j|�dS)N)rrZEMRFS_BA_ARG_KEY)�ba_args�	key_valuerrr�_update_emrfs_ba_args�srNcCs<g}x2|j�D]&\}}|}|r*|d|}t||�qW|S)N�=)�itemsrN)rrLrErFrMrrrr?�sr?N)"Zawscli.customizations.emrrrrZbotocore.compatrr1r,r.Z	EMRFS_KMSZEMRFS_CUSTOMr)r&rGr%r2r(r-r/rrrr*r0rrr@rBrrArCrDrNr?rrrr�<module>s6+