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: //opt/saltstack/salt/lib/python3.10/site-packages/libcloud/common/__pycache__/vultr.cpython-310.pyc
o

;j2�@s�ddlmZmZmZddlmZddlmZmZddl	m
Z
gd�ZdZdZ
Gdd	�d	e�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�d�ZGdd�de
�ZdS)�)�Any�Dict�Optional)�httplib)�JsonResponse�
ConnectionKey)�VolumeSnapshot)	�API_HOST�VultrConnection�VultrException�
VultrResponse�DEFAULT_API_VERSION�VultrResponseV2�VultrConnectionV2�VultrNetwork�VultrNodeSnapshotz
api.vultr.com�2csVeZdZdZiZdZddddddd�Z�fd	d
�Z�fdd�Zd
d�Z	dd�Z
�ZS)rNz7Invalid API location. Check the URL that you are using.z]Invalid or missing API key. Check that your API key is present and matches your assigned key.z_Invalid HTTP method. Check that the method (POST|GET) matches what the documentation indicates.zHRequest failed. Check the response body for a more detailed description.z1Internal server error. Try again at a later time.z\Rate limit hit. API requests are limited to an average of 1/s. Try your request again later.)i�i�i�i���i�csBg|_t�j||d�|��\|_|_|��s|�|jd��dS)N)�response�
connectionr)�errors�super�__init__�parse_body_and_errors�objects�success�
_make_excp)�selfrr��	__class__��I/opt/saltstack/salt/lib/python3.10/site-packages/libcloud/common/vultr.pyr8s�zVultrResponse.__init__csjg}g}|j|jvr|j|jd<|j|j|jd<|�|j�t���}t|t�r,|g}|�|�||fS)z5
        Returns JSON data in a python list.
        �	ERRORCODE�ERRORMESSAGE)�status�ERROR_CODE_MAP�
error_dict�appendr�
parse_body�
isinstance�dict)rZjson_objectsrZjsrr r!r?s


z#VultrResponse.parse_body_and_errorscCst|d|d�S)z@
        Convert API error to a VultrException instance
        r"r#)r)r�errorr r r!rSszVultrResponse._make_excpcCst|j�dkS)Nr)�lenr�rr r r!rZszVultrResponse.success)�__name__�
__module__�__qualname__rr&rr%rrrr�
__classcell__r r rr!r(s�rc@s0eZdZdZeZeZdd�Zdd�Z	dd�Z
dS)	r
z'
    A connection to the Vultr API
    cCs|j|d<|S)z�
        Returns default params such as api_key which is
        needed to perform an action.Returns a dictionary.
        Example:/v1/server/upgrade_plan?api_key=self.key
        Zapi_key��key�r�paramsr r r!�add_default_paramsfs
z"VultrConnection.add_default_paramscCsd|d<d|d<|S)z]
        Returns default headers such as content-type.
        Returns a dictionary.
        z!application/x-www-form-urlencoded�Content-Typez
text/plainZAcceptr �r�headersr r r!�add_default_headerspsz#VultrConnection.add_default_headerscCsd|_|jS)Nz/v/)�pathr-r r r!�set_pathzszVultrConnection.set_pathN)r.r/r0�__doc__r	�hostr�responseClsr6r:r<r r r r!r
^s

r
c@s0eZdZejejejejgZdd�Z	dd�Z
dS)rcCs&|j}|��}|�dd�}t||d��)zJ
        Parse the error body and raise the appropriate exception
        r+���code�message)r$r(�getr)rr$�dataZ	error_msgr r r!�parse_error�szVultrResponseV2.parse_errorcCs|j|jvS)zbCheck the response for success

        :return: ``bool`` indicating a successful request
        )r$�valid_response_codesr-r r r!r�szVultrResponseV2.successN)r.r/r0r�OK�CREATED�ACCEPTED�
NO_CONTENTrGrFrr r r r!rs�
rc@s(eZdZdZeZeZdd�Zdd�Z	dS)rz*
    A connection to the Vultr API v2
    cCsd|j|d<d|d<|S)Nz	Bearer %sZ
Authorizationzapplication/jsonr7r2r8r r r!r:�sz%VultrConnectionV2.add_default_headerscCsd|d<|S)NrZper_pager r4r r r!r6�sz$VultrConnectionV2.add_default_paramsN)
r.r/r0r=r	r>rr?r:r6r r r r!r�src@s(eZdZdZdd�Zdd�Zdd�ZdS)	rz.
    Error originating from the Vultr API
    cCs||_||_||f|_dS�N)rBrC�args)rrBrCr r r!r�szVultrException.__init__cC�d|j|jfS)Nz(%u) %srAr-r r r!�__str__��zVultrException.__str__cCrN)NzVultrException code %u '%s'rAr-r r r!�__repr__�rPzVultrException.__repr__N)r.r/r0r=rrOrQr r r r!r�s
rc@sFeZdZdZ	ddedededeeeefddf
dd	�Zd
d�Z	dS)
rz?
    Represents information about a Vultr private network.
    N�id�
cidr_block�location�extra�returncCs ||_||_||_|pi|_dSrL)rRrSrTrU)rrRrSrTrUr r r!r�szVultrNetwork.__init__cCsd�|j|j|j�S)Nz/<Vultrnetwork: id={} cidr_block={} location={}>)�formatrRrSrTr-r r r!rQ�s
�zVultrNetwork.__repr__rL)
r.r/r0r=�strrrrrrQr r r r!r�s	�����
�rc@seZdZdd�ZdS)rcCsd�|j|j|jj|j�S)Nz4<VultrNodeSnapshot id={} size={} driver={} state={}>)rWrR�sizeZdriver�name�stater-r r r!rQ�s�zVultrNodeSnapshot.__repr__N)r.r/r0rQr r r r!r�srN)�typingrrrZlibcloud.utils.py3rZlibcloud.common.baserrZlibcloud.compute.baser�__all__r	r
rr
rr�	Exceptionrrrr r r r!�<module>s
6!