B
    `7                 @   s   d dl mZmZmZ eZd dlmZ yd dlm	Z
 W n ek
rL   dZ
Y nX dZyd dlZdZW n ek
rz   dZY nX ed	d	d
dddddddd
Zdd ZG dd deZdS )    )absolute_importdivisionprint_function)missing_required_lib)__version__unknownz20.9.0NTF   i   i   i   @l        l           l            l            l               )
bytesbkbmbgbtbZpbZebZzbZybc               C   s2   t t dddt ddddt dddt ddddS )NTstr)requiredtypeFbool)r   r   default)api_urlvalidate_certsapi_key
secret_key)dict r   r   i/home/dcms/DCMS/lib/python3.7/site-packages/ansible_collections/netapp/aws/plugins/module_utils/netapp.pyaws_cvs_host_argument_spec?   s
    

r   c               @   sb   e Zd ZdddZdd ZdddZdd	d
ZdddZdddZdddZ	dddZ
dd ZdS )AwsCvsRestAPI<   c             C   s`   || _ | j jd | _| j jd | _| j jd | _| j jd | _|| _d| j d | _|   d S )Nr   r   r   r   zhttps://z/v1/)	moduleparamsr   r   r   verifytimeouturlcheck_required_library)selfr   r!   r   r   r   __init__J   s    zAwsCvsRestAPI.__init__c             C   s   t s| jjtdd d S )Nrequests)msg)HAS_REQUESTSr   	fail_jsonr   )r$   r   r   r   r#   T   s    z$AwsCvsRestAPI.check_required_libraryNc          
   C   s(  |dk	r"| j jd|t|f d | j| }d}d}d}d| j| jdd}	dd }
y&tj|||	| j|d	}|
|\}}W n tj	j
k
r } z |
|\}}|dkrt|}W dd}~X Y nX tj	jk
r } zt|}W dd}~X Y n, tk
r } zt|}W dd}~X Y nX |dk	r |}||fS )
zC send http request and process reponse, including error conditions Nz-params is not implemented.  api=%s, params=%s)r'   zapplication/jsonzno-cache)zContent-typezapi-keyz
secret-keyzCache-Controlc             S   sN   y|   }W n tk
r    dS X dddg}| j|krB|d}nd}||fS )z, extract json, and error message if present )NN         messageN)json
ValueErrorstatus_codeget)responser.   Zsuccess_codeerrorr   r   r   get_jsong   s    

z,AwsCvsRestAPI.send_request.<locals>.get_json)headersr!   r.   )r   r)   reprr"   r   r   r&   requestr!   
exceptions	HTTPErrorr   ConnectionError	Exception)r$   methodapir   r.   r"   Z	json_dictZ
json_errorZerror_detailsr5   r4   r2   err__r   r   r   send_requestX   s2    

zAwsCvsRestAPI.send_requestc             C   s   d}|  |||S )NGET)r@   )r$   r=   r   r<   r   r   r   r1      s    zAwsCvsRestAPI.getc             C   s   d}| j ||||dS )NPOST)r.   )r@   )r$   r=   datar   r<   r   r   r   post   s    zAwsCvsRestAPI.postc             C   s   d}| j ||||dS )NPATCH)r.   )r@   )r$   r=   rC   r   r<   r   r   r   patch   s    zAwsCvsRestAPI.patchc             C   s   d}| j ||||dS )NPUT)r.   )r@   )r$   r=   rC   r   r<   r   r   r   put   s    zAwsCvsRestAPI.putc             C   s   d}| j ||||dS )NDELETE)r.   )r@   )r$   r=   rC   r   r<   r   r   r   delete   s    zAwsCvsRestAPI.deletec             C   s>   |  d| \}}x&t|d dkr8|  d| \}}qW dS )z$ Method to get the state of the job zJobs/%sstatedone)r1   r   )r$   Zjob_idr2   dummyr   r   r   	get_state   s    zAwsCvsRestAPI.get_state)r   )N)N)N)N)N)N)__name__
__module____qualname__r%   r#   r@   r1   rD   rF   rH   rJ   rN   r   r   r   r   r   I   s   


.




r   )
__future__r   r   r   r   __metaclass__Zansible.module_utils.basicr   Z$ansible.module_utils.ansible_releaser   Zansible_versionImportErrorZCOLLECTION_VERSIONr&   r(   r   ZPOW2_BYTE_MAPr   objectr   r   r   r   r   <module>   s2   


