HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/msazure.cpython-310.pyc
o

�N�gP�@s~dZddlZddlmZdZzddlZdZWn	eyYnwe�e�Z	ddd�Z
ddd	�Zdd
d�Zddd
�Z
dd�ZdS)zV
.. versionadded:: 2015.8.0

Utilities for accessing storage container blobs on Azure
�N)�SaltSystemExitFTcCs:|duri}|s|�dd�}|s|�dd�}tj�||�S)z^
    .. versionadded:: 2015.8.0

    Return a storage_conn object for the storage account
    N�storage_account�storage_key)�get�azureZstorageZBlobService)rr�opts�r�F/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/msazure.py�get_storage_connsr
c
Ks�|st|d�}d|vrtddd��|j|d|�dd�|�dd�|�d	d�|�d
d�|�dd�d�}i}|jD]	}t|�||j<q7|S)
zR
    .. versionadded:: 2015.8.0

    List blobs associated with the container
    �r�	container�*z:An storage container name must be specified as "container"��code�msg�prefixN�marker�
maxresults�include�	delimiter)�container_namerrrrr)r
r�
list_blobsrZblobs�object_to_dict�name)�storage_conn�kwargs�data�ret�itemrrr	r(s$
�




�	
rcKs|st|d�}d|vrtddd��d|vrtddd��d|vr)d	|vr)tdd
d��|d|d|�dd�|�d
d�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�d�}d|vrt|jdd|di|��Sd	|vr�|jdd|d	i|��SdS)z7
    .. versionadded:: 2015.8.0

    Upload a blob
    rrr
�8The blob container name must be specified as "container"rr�)The blob name must be specified as "name"Z	blob_pathZblob_contentziEither a path to a file needs to be passed in as "blob_path" or the contents of a blob as "blob_content."�
cache_controlN�content_language�content_md5Zblob_content_typeZblob_content_encodingZblob_content_languageZblob_content_md5Zblob_cache_controlZmeta_name_values�lease_id)r�	blob_namer!r"r#Zx_ms_blob_content_typeZx_ms_blob_content_encodingZx_ms_blob_content_languageZx_ms_blob_content_md5Zx_ms_blob_cache_controlZx_ms_meta_name_values�
x_ms_lease_id�	file_pathZblobr)r
rrZput_block_blob_from_pathZput_block_blob_from_bytes�rrZblob_kwargsrrr	�put_blobEsN
��	









������r)cKs�|st|d�}d|vrtddd��d|vrtddd��d|vr)d	|vr)tdd
d��|d|d|�dd�|�d
d�|�dd�|�dd�|�dd�|�dd�d�}d|vre|jd|d|�dd�d�|��Sd	|vrq|jdi|��SdS)z9
    .. versionadded:: 2015.8.0

    Download a blob
    rrr
rrrr Z
local_pathZreturn_contentzsEither a local path needs to be passed in as "local_path", or "return_content" to return the blob contents directly�snapshotNr$�progress_callback�max_connections��max_retries��
retry_wait)rr%r*r&r+r,r.r0�	open_mode�wb)r'r1r)r
rrZget_blob_to_pathZget_blob_to_bytesr(rrr	�get_blobws@
��	





�
���r3cCsxt|t�s
t|t�rg}|D]	}|�t|��q|St|d�r8i}|jD]}|�d�r,q$t|j|�||<q$|S|}|S)zK
    .. versionadded:: 2015.8.0

    Convert an object to a dictionary
    �__dict__�_)�
isinstance�list�tuple�appendr�hasattrr4�
startswith)�objrrrrr	r�s	
�

�r)NNN)N)�__doc__�loggingZsalt.exceptionsrZHAS_LIBSr�ImportError�	getLogger�__name__�logr
rr)r3rrrrr	�<module>s �




2/