Ë
    +¬fA/  ã                   óî  — d dl Z d dlZd dlZ ej                  ej                  j
                  «        ej                  dd«      Z ej                  dd«      Z ej                  dd«      Z	 ej                  dd	«      Z
 ej                  d
d«      Z ej                  dd«      dk(  Z ej                  dd«      ZdZdZdZddiZeddiz  Zeddiz  Zeddiz  Zeddiz  Z G d„ d«      Z G d„ de«      Zy) é    NÚCLOUDIAN_API_URLzhttps://200.57.183.158:19443ÚCLOUDIAN_USERÚsysadminÚCLOUDIAN_PASSzLFz0/mB5DPiOM8E5izv2m5yGIv8=ÚCLOUDIAN_REQUEST_LIMITéd   ÚCLOUDIAN_DEFAULT_RTz
Default-RPÚ
VERIFY_SSLÚFalseÚTrueÚCLOUDIAN_PROXY_STRINGÚ ÚerrorÚmsgÚdatai‘  zcredenciales incorrectasi™  zel grupo existe.zel usuario existe.i“  u+   nÃºmero maximo de credenciales s3 alcanzadozel grupo no esta vacio.c            	       óœ   — e Zd Zeeeefdedededefd„Z	dde
d	efd
„Zi dfdededefd„Zi dfdedede
fd„Zi fdedefd„Zi fdedefd„Zy)ÚConsumerÚurlÚusrÚpasswordÚrqc                 ó<   — || _         || _        || _        || _        y )N)r   r   r   Úrequest_limit)Úselfr   r   r   r   s        ú7/home/rufo913/Git/cloudian/cloudianConsumer/consumer.pyÚ__init__zConsumer.__init__&   s   € ØˆŒØˆŒØ ˆŒØˆÕó    Tr   Ú	verifySSLÚproxyStringc                 ó,  — i }| j                   }| j                  }| j                  }|rb|r`|r^t        j                  «       | _        ||f| j
                  _        || j
                  _        |r||dœ| j
                  _        d|t        <   |S d|t        <   |S )N)ÚhttpÚhttpszsesion inicializada.zno existen credenciales.)r   r   r   ÚrequestsÚSessionÚsessionÚauthÚverifyÚproxiesÚMSGÚERROR)r   r   r   Úresponser   r   r   s          r   ÚcreateSesionzConsumer.createSesion,   s‰   € ØˆØ�H‰HˆØ�H‰HˆØ—‘ˆÙ‘3™8Ü#×+Ñ+Ó-ˆDŒLØ!$ h ˆD�L‰LÔØ )ˆD�L‰LÔÙØ0;À[Ñ'Q�—‘Ô$Ø0ˆH”S‰Mð ˆð 7ˆH”U‰OØˆr   Úmethodr   ÚelementOfsetc                 ó   — i }	 | j                   }|r| j                  |d<   |j                  | j                  › d|› �|¬«      }g }|j                  dk7  r"d|› d�|t
        <   |j                  |t        <   |S t        |j                  «       «      | j                  k\  r„||j                  «       d | j                   z  }|r|j                  «       d   |   |d<   |j                  | j                  › d|› �|¬«      }t        |j                  «       «      | j                  k\  rŒ„||j                  «       z  }||t        <   d	|t        <   	 |S # t        j                  j                  $ r}d
|› d�|t
        <   Y d }~|S d }~ww xY w)NÚlimitú/©r   ÚparamséÈ   õ   error en la peticiÃ³n "ú".éÿÿÿÿÚoffsetÚokúserver inalcanzable ")r%   r   Úgetr   Ústatus_coder*   r)   ÚlenÚjsonÚDATAr#   Ú
exceptionsÚConnectionError)	r   r-   r   r.   Úresr%   r+   Úreturn_dataÚes	            r   r;   zConsumer.get<   sr  € Øˆð	<Ø—l‘lˆGÙ¨T×-?Ñ-?˜T '™]Ø—{‘{¨$¯(©(¨°1°V°HÐ'=ÀT�{ÓJˆHØˆKØ×#Ñ# sÒ*Ø6°v°h¸bÐA�”E‘
Ø#×/Ñ/�”C‘ð ˆ
ô ˜(Ÿ-™-›/Ó*¨d×.@Ñ.@Ò@Ø 8§=¡=£?Ð3F°D×4FÑ4FÐ#GÑG�KÙ#°h·m±m³oÀbÑ6IÈ,Ñ6W T¨(¡^Ø&Ÿ{™{°$·(±(°¸1¸V¸HÐ/EÈT˜{ÓR�Hô ˜(Ÿ-™-›/Ó*¨d×.@Ñ.@Ó@ð ˜xŸ}™}›Ñ.�Ø'�”D‘	Ø�”C’ð ˆ
øô ×"Ñ"×2Ñ2ò 	<Ø0°°¸Ð;ˆC”�JØˆ
ûð	<ús%   „A0E Á6B)E Ä %E ÅE=Å%E8Å8E=Ú	asPayloadc                 óä  — i }| j                   }ddi}	 |r#|j                  | j                  › d|› �||¬«      n!|j                  | j                  › d|› �|¬«      }|j                  dk7  r"d|› d�|t        <   |j                  |t
        <   |S d	|t
        <   |j                  r|j                  «       |t        <   |S # t        j                  j                  $ r}d
|› d�|t        <   Y d }~|S d }~ww xY w)NzContent-Typezapplication/jsonr1   )r   r>   Úheadersr2   r4   r5   r6   õ   peticiÃ³n realizada con exito.r:   )r%   Úputr   r<   r*   r)   Útextr>   r?   r#   r@   rA   )	r   r-   r   rE   rB   r%   rG   r+   rD   s	            r   rI   zConsumer.putR   s*  € ØˆØ—,‘,ˆØ!Ð#5Ð6ˆð		<Ù\e�w—{‘{¨$¯(©(¨°1°V°HÐ'=À4ÐPW�{ÔXÐkr×kvÑkvð  C÷  Gñ  Gð  ~Hð  HIð  JPð  IQð  |Rð  Z^Ðkvó  l_ˆHØ×#Ñ# sÒ*Ø6°v°h¸bÐA�”E‘
Ø#×/Ñ/�”C‘ð ˆ
ð	 <�”C‘Ø—=’=¨H¯M©M«O #¤d¡)ð ˆ
øô ×"Ñ"×2Ñ2ò 	<Ø0°°¸Ð;ˆC”�JØˆ
ûð	<ús   ”A6B: Â,B: Â:C/ÃC*Ã*C/c                 óN  — i }| j                   }	 |j                  | j                  › d|› �|¬«      }|j                  dk7  r"d|› d�|t        <   |j                  |t
        <   |S d|t
        <   	 |S # t        j                  j                  $ r}d|› d�|t        <   Y d }~|S d }~ww xY w©Nr1   r2   r4   r5   r6   rH   r:   )	r%   Údeleter   r<   r*   r)   r#   r@   rA   ©r   r-   r   rB   r%   r+   rD   s          r   rM   zConsumer.deleteb   s³   € ØˆØ—,‘,ˆð	<Ø—~‘~¨T¯X©X¨J°a¸°xÐ*@È�~ÓMˆHØ×#Ñ# sÒ*Ø6°v°h¸bÐA�”E‘
Ø#×/Ñ/�”C‘ð
 ˆ
ð <�”C’ð ˆ
øô ×"Ñ"×2Ñ2ò 	<Ø0°°¸Ð;ˆC”�JØˆ
ûð	<ús   �AA/ Á#	A/ Á/B$ÂBÂB$c                 ód  — i }| j                   }	 |j                  | j                  › d|› �|¬«      }|j                  dk7  r"d|› d�|t        <   |j                  |t
        <   |S d|t
        <   	 |S # t        j                  j                  $ r#}t        |«       d|› d�|t        <   Y d }~|S d }~ww xY wrL   )
r%   Úpostr   r<   r*   r)   r#   r@   rA   ÚprintrN   s          r   rP   zConsumer.postp   sº   € ØˆØ—,‘,ˆð		<Ø—|‘|¨4¯8©8¨*°A°f°XÐ(>Àd�|ÓKˆHØ×#Ñ# sÒ*Ø6°v°h¸bÐA�”E‘
Ø#×/Ñ/�”C‘ð ˆ
ð	 <�”C’ð ˆ
øô ×"Ñ"×2Ñ2ò 	<Ü�!ŒHØ0°°¸Ð;ˆC”�JØˆ
ûð	<ús   �AA/ Á#	A/ Á/B/ÂB*Â*B/N)Tr   )Ú__name__Ú
__module__Ú__qualname__ÚBASE_URLÚUSERÚPASSÚREQUEST_LIMITÚstrÚintr   Úboolr,   Údictr;   rI   rM   rP   © r   r   r   r   %   s²   „ Ø&°À4ÐP]ñ  ˜#ð  ¨Cð  ¸sð  ÈCó  ñ Dð ¸3ó ð  ')¸"ñ ˜ð  ð °có ð, ')¸ñ ˜ð  ð °4ó ð  *,ñ ˜3ð  Dó ð (*ñ ˜ð  $ô r   r   c            	       óÎ   — e Zd Zeeeefdedededefd„Z	e
fdededefd	„Zdded
ededefd„Zded
efd„Zddefd„Zddedefd„Zdded
edefd„Zded
efd„Zdefd„Zdefd„Zy)ÚCloudianConsumerr   r   r   r   c                 óZ   — t         j                  | ||¬«       | j                  ||¬«       y )N)r   r   )r   r   )r   r   r,   )r   r   r   r   r   s        r   r   zCloudianConsumer.__init__€   s*   € Ü×Ñ˜$ 3°ÐÔ9Ø×Ñ I¸;ÐÕGr   ÚgroupIdÚ	groupNameÚratingPlanIdc                 ó   — d||ddgdgdgdœ}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S | j                  d||d	œ¬«      }t        |v rP|t           t        v rd
t        |t              › �nd
|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        di«       |S )NÚtrueFÚALL)Úactivera   rb   ÚldapEnabledÚs3endpointshttpÚs3endpointshttpsÚs3websiteendpointsÚgroup©r-   r   zNo se pudo crear el grupo, zgroup/ratingPlanId)ra   rc   z$No fue posible asignar rating plan, u   creaciÃ³n de grupo ok.)rI   r*   r)   ÚGROUP_CUSTOM_CODESrY   rP   ÚCOMMON_CODESÚupdate)r   ra   rb   rc   Ú	groupDatarl   Úrps          r   ÚcreateGroupzCloudianConsumer.createGroup„   s%  € ð ØØ#Ø!Ø!& Ø"' Ø$) 7ñ
ˆ	ð —‘ ¨Y�Ó7ˆÜ�E‰>àœ‘:Ô!3Ñ3ð :Ô:LÈUÔSVÉZÑ:XÐ9YÑZØ;VÐW\Ô]bÑWcÐVdÐ9eð ”%‰Lä˜5¤™:“ˆE”#‰JØˆLð �Y‰YÐ2ÀGÐ[gÑ9hˆYÓiˆÜ�B‰;à”c‘7œlÑ*ð @ÄÈRÔPSÉWÑ@UÐ?VÑWØ2VÐWYÔZ_ÑW`ÐVaÐ0bð Œu‰Iä˜œ3™“LˆBŒs‰GØˆIØ
�	‰	”3Ð/Ð0Ô1Øˆ	r   ÚuserIdÚfullNameÚisGroupAdminc                 ó"  — d||||rdnddœ}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        di«       |S )	Nre   Ú
GroupAdminÚUser)rg   ra   rt   ru   ÚuserTypeÚuserrm   úNo se pudo crear el usuario, u   creaciÃ³n de usuario ok.)rI   r*   r)   ÚUSER_CUSTOM_CODESrY   rp   )r   ra   rt   ru   rv   ÚuserDatar{   s          r   Ú
createUserzCloudianConsumer.createUser¢   s¦   € ð ØØØ!Ù)5™¸6ñ
ˆð �x‰x˜v¨8ˆxÓ4ˆÜ�D‰=àœ‘9Ô 1Ñ1ð ;Ô;LÈTÔRUÉYÑ;WÐ:XÑYØ9VÐW[Ô\aÑWbÐVcÐ7dð ”‰Kä˜$œs™)“nˆD”‰IØˆKØ�‰”SÐ3Ð4Ô5Øˆr   c                 ó  — ||dœ}| j                  d|d¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        di«       |S )N©ra   rt   úuser/credentialsF)r-   r   rE   r|   u   creaciÃ³n del acceso s3 ok.)rI   r*   r)   ÚS3_CUSTOM_CODESrY   rp   )r   ra   rt   r~   Ús3Accesss        r   ÚcreateS3AccesszCloudianConsumer.createS3Access¶   sœ   € ð  Øñ
ˆð —8‘8Ð#5¸8Èe�8ÓTˆÜ�HÑàœC‘=¤OÑ3ð "?¼ÈxÔX[É}Ñ?]Ð>^Ñ_Ø;XÐYaÔbgÑYhÐXiÐ9jð ”U‰Oä˜h¤s™mÓ,ˆH”S‰MØˆOØ�‰œÐ:Ð;Ô<Øˆr   Úprefixc                 ó:  — d|i}| j                  d|d¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        t        |t           «      › d�i«       |S )Nr†   z
group/listra   ©r-   r   r.   zerror al listar los grupos, z grupos encontrados.©r;   r*   r)   ro   rY   rp   r=   r?   )r   r†   Ú
searchDataÚgroupss       r   Ú
listGroupszCloudianConsumer.listGroupsÇ   sª   € ð �vð
ˆ
ð
 —‘ °:ÈI�ÓVˆÜ�F‰?àœ#‘;¤,Ñ.ð  <¼LÈÔPSÉÑ<UÐ;VÑWØ6RÐSYÔZ_ÑS`ÐRaÐ4bð ”5‰Mä˜F¤3™KÓ(ˆF”3‰KØˆMØ�‰”sœc &¬¡,Ó/Ð0Ð0DÐEÐFÔGØˆr   ÚonlyActivesc                 óF  — d|rdnd|dœ}| j                  d|d¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        t        |t           «      › d�i«       |S )	NÚallrg   )rz   Ú
userStatusra   z	user/listrt   rˆ   zerror al listar los usuarios, z usuarios encontrados.r‰   )r   ra   r�   rŠ   Úuserss        r   ÚlistUserByGroupz CloudianConsumer.listUserByGroup×   s±   € ð Ù'2™8¸Øñ
ˆ
ð —‘ °È(�ÓSˆÜ�E‰>àœ‘:¤Ñ-ð =¼\È%ÔPSÉ*Ñ=UÐ<VÑWØ5SÐTYÔZ_ÑT`ÐSaÐ3bð ”%‰Lä˜5¤™:“ˆE”#‰JØˆLØ�‰”cœS ¤t¡Ó-Ð.Ð.DÐEÐFÔGØˆr   ÚisRootAccountOnlyc                 ó<  — |||dœ}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        t        |t           «      › d�i«       |S )N)ra   rt   r“   zuser/credentials/listrm   z error al listar los accesos s3, z accesos s3 encontrados.r‰   )r   ra   rt   r“   rŠ   r„   s         r   ÚlistS3AccessByUserGroupz(CloudianConsumer.listS3AccessByUserGroupé   s¯   € ð  ØØ"3ñ
ˆ
ð —8‘8Ð#:À
�8ÓKˆÜ�HÑàœC‘=¤LÑ0ð "BÄ,ÈxÔX[É}ÑB]ÐA^Ñ_Ø8XÐYaÔbgÑYhÐXiÐ6jð ”U‰Oä˜h¤s™mÓ,ˆH”S‰MØˆOØ�‰œ¤ H¬T¡NÓ 3Ð4Ð4LÐMÐNÔOØˆr   c                 ó"  — ||dœ}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        d|› d|› d�i«       |S )Nr�   r{   rm   zerror al borrar usuario, z	usuario "z" del grupo "ú
" borrado.)rM   r*   r)   ro   rY   rp   )r   ra   rt   Ú
deleteDatar+   s        r   Ú
deleteUserzCloudianConsumer.deleteUserû   s§   € ð  Øñ
ˆ
ð —;‘; f°*�;Ó=ˆÜ�HÑàœC‘=¤LÑ0ð ";¼<ÈÔQTÉÑ;VÐ:WÑXØ8QÐRZÔ[`ÑRaÐQbÐ6cð ”U‰Oä˜h¤s™mÓ,ˆH”S‰MØˆOØ�‰œ˜y¨¨°¸g¸YÀjÐQÐRÔSØˆr   c                 ó  — d|i}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        d|› d�i«       |S )Nra   rl   rm   zerror al borrar grupo, zgrupo "r—   ©rM   r*   r)   ÚDELETE_CODESrY   rp   )r   ra   r˜   r+   s       r   ÚdeleteGroupzCloudianConsumer.deleteGroup  sŸ   € ð ˜ð
ˆ
ð
 —;‘; g°:�;Ó>ˆÜ�HÑàœC‘=¤LÑ0ð "9¼ÀhÌsÁmÑ9TÐ8UÑVØ8OÐPXÔY^ÑP_ÐO`Ð6að ”U‰Oä˜h¤s™mÓ,ˆH”S‰MØˆOØ�‰œ˜w w i¨zÐ:Ð;Ô<Øˆr   Ú	accessKeyc                 ó  — d|i}| j                  d|¬«      }t        |v rP|t           t        v rdt        |t              › �nd|t           › �|t        <   t	        |t           «      |t        <   |S |j                  t        d|› d�i«       |S )Nrž   r‚   rm   zerror al borrar acceso s3, zacceso s3 "r—   r›   )r   rž   r˜   r+   s       r   ÚdeleteS3AccesszCloudianConsumer.deleteS3Access  s¡   € ð ˜)ð
ˆ
ð
 —;‘;Ð&8¸j�;ÓIˆÜ�HÑàœC‘=¤LÑ0ð "=¼\È(ÔSVÉ-Ñ=XÐ<YÑZØ8SÐT\Ô]bÑTcÐSdÐ6eð ”U‰Oä˜h¤s™mÓ,ˆH”S‰MØˆOØ�‰œ˜{¨9¨+°ZÐ@ÐAÔBØˆr   N)r   F)r   )T)F)rR   rS   rT   rV   rW   r
   ÚPROXY_STRINGrY   r[   r   ÚRATING_PLANrs   r   r…   rŒ   r’   r•   r™   r�   r    r]   r   r   r_   r_      sì   „ Ø"°ÀZÐamñ H˜#ð H¨Sð HÀð HÐ]`ó Hð GRñ  ð °ð À#ó ñ< ð ¨Cð ¸#ð Èdó ð( Cð °ó ñ"˜só ñ  Sð °Tó ñ$¨Sð ¸ð Èdó ð$ ð ¨3ó ð" ó ð" cô r   r_   )r#   Úurllib3ÚosÚdisable_warningsr@   ÚInsecureRequestWarningÚgetenvrU   rV   rW   rX   r¢   r
   r¡   r*   r)   r?   ro   rn   r}   rƒ   rœ   r   r_   r]   r   r   ú<module>r¨      sN  ðÛ Û Û 	Ø €× Ñ ˜×+Ñ+×BÑBÔ Cð ˆ2�9‰9Ð'Ð(FÓG€Ø€r‡y�y� Ó,€Ø€r‡y�y�Ð!?Ó@€Ø�—	‘	Ð2°3Ó7€Øˆb�i‰iÐ-¨lÓ;€ØˆR�Y‰Y�| WÓ-°Ñ7€
Øˆr�y‰yÐ0°Ó4€ð 	€Ø€Ø€ð Ð
$ð€ð "ØÐ
ð%ñ Ð ð !ØÐ
ð$ñ Ð ð ØÐ
7ð"ñ €ð ØÐ
#ðñ €÷Xñ Xôtl�xõ lr   