§
    ¨ögeç  ã                   ó  — d dl Z d dlmZ d dlmZ d dlZd dlZd dlmZ d dlZd dl	m
Z
 d dlmZ d dlZd dlZd dlmZmZ d dlmZ d dlZ e
e¦  «        Z eedd	d
ii¬¦  «        Zej                             e¦  «        Zej                             ed¦  «        Zej                             e¦  «         ej                             ed¦  «        Zej                             e¦  «         d dlmZ d dl	m Z m!Z!m"Z" d dl#Z#d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z*m+Z+ ej,        d         Z-ej,        d         Z.ej,        d         Z/ej,        d         Z0ej,        d         Z1dZ2 G d„ de¦  «        Z3d„ Z4e 5                    ddg¬¦  «        e4d„ ¦   «         ¦   «         Z6e 5                    d dg¬¦  «        d!„ ¦   «         Z7e 5                    d"d#g¬¦  «        e4d$„ ¦   «         ¦   «         Z8e 5                    d%d#g¬¦  «        e4d&„ ¦   «         ¦   «         Z9e 5                    d'd#g¬¦  «        d(„ ¦   «         Z:e 5                    d)d#g¬¦  «        e4d*„ ¦   «         ¦   «         Z;e 5                    d+d#g¬¦  «        e4d,„ ¦   «         ¦   «         Z<e 5                    d-d#g¬¦  «        e4d.„ ¦   «         ¦   «         Z=e 5                    d/dg¬¦  «        e4d0„ ¦   «         ¦   «         Z>e 5                    d1d#g¬¦  «        e4d2„ ¦   «         ¦   «         Z?e 5                    d3d#g¬¦  «        d4„ ¦   «         Z@e 5                    d5dg¬¦  «        e4d6„ ¦   «         ¦   «         ZAe 5                    d7dg¬¦  «        e4d8„ ¦   «         ¦   «         ZBe 5                    d9g d:¢¬¦  «        e4d;„ ¦   «         ¦   «         ZCe 5                    d<d#g¬¦  «        e4d=„ ¦   «         ¦   «         ZDe 5                    d>d#g¬¦  «        e 5                    d?d#g¬¦  «        e4d@„ ¦   «         ¦   «         ¦   «         ZEe 5                    dAddBg¬¦  «        e4dC„ ¦   «         ¦   «         ZFe 5                    dDd#g¬¦  «        e4dE„ ¦   «         ¦   «         ZGe 5                    dFd#g¬¦  «        e4dG„ ¦   «         ¦   «         ZHdHe3fdI„ZIdJ„ ZJe 5                    dKd#g¬¦  «        e4dL„ ¦   «         ¦   «         ZKe 5                    dMdg¬¦  «        e4dN„ ¦   «         ¦   «         ZLe 5                    dOdg¬¦  «        e4dP„ ¦   «         ¦   «         ZMe 5                    dQg dR¢¬¦  «        e4dS„ ¦   «         ¦   «         ZNe 5                    dTdd#g¬¦  «        e4dU„ ¦   «         ¦   «         ZOd dVlPmQZQ  eQee-e.e4¦  «        ZRe S                    eRjT        dW¬X¦  «         dS )Yé    N)Údatetime)ÚEnum©Úwraps)ÚFlask)ÚclientÚconfig)ÚCORSz/*ÚoriginsÚ*)Ú	resourceszApp/mainz
App/protos)Úcheck_password_hash)ÚjsonifyÚrequestÚmake_response)ÚMessageToJson)ÚcloudServiceDAO_pb2ÚcloudServiceDAO_pb2_grpc)ÚCBCManager_pb2ÚCBCManager_pb2_grpcÚDAO_HOSTÚDAO_PORTÚCBC_HOSTÚCBC_PORTÚ	SECRET_NSz4ZGF2aWQuZXN0cmFkYUBTR01fU1RHOkEjZWw5NjFNMlZZMmZnazU=c                   ó*   — e Zd ZdZdZdZdZdZdZdZ	dS )	ÚSTATUSé   é   é   é   é   é   é   N)
Ú__name__Ú
__module__Ú__qualname__Ú	REQUESTEDÚSUCCESSÚSUPPLY_ERRORÚACTIVEÚINACTIVEÚSERVICE_ERRORÚDELETED© ó    ú./home/gothic/public_html/api_core_daas/main.pyr   r   R   s1   € € € € € à€IØ€GØ€LØ€FØ€HØ€MØ€G€G€Gr0   r   c                 ó<   ‡ — t          ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ó€  •— d }dt           j        v odt           j        v }dt           j        v }dt           j        v rt           j        d         }n<|rt           j        d         }n'|rt           j        d         }nt          dddœ¦  «        S t	          t
          dz   d	¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬
¦  «        }t          j
        t          j        t          › d�|¬¦  «        ¦  «        }|s|sŸ	 t          j        |t          j        |rdnd         dg¬¦  «        }	t#          j        |	d         ¬¦  «        }
|                     |
¦  «        }|st          dddœ¦  «        S �n©# t(          $ r}t          dd|› �dœ¦  «        cY d }~S d }~ww xY wt#          j        t-          t           j        d         ¦  «        ¬¦  «        }
|                     |
¦  «        }|j        st          dddœ¦  «        S t3          |j        ¦  «        dk    rt          ddi¦  «        S |j        d         }|j        }g }|�|                     ¦   «         dk    �r	 t9          j        |j        › d�dd|i¬¦  «        }|j        d k    r|                      ¦   «          d!| !                    ¦   «         v r€| !                    ¦   «         d!         d"k    rbtE          j#        d#| !                    ¦   «         d         ¦  «        }| $                    d¦  «         %                    d$¦  «        }d%„ |D ¦   «         }nt          dd&i¦  «        S n-#  t          dd'i¦  «        cY S xY w| &                    |¦  «         |D ]ª}	 t9          j        |j        › d�dd(|› �|d)œ¬¦  «        }|j        d k    rŒ4|                      ¦   «          d*| !                    ¦   «         vs| !                    ¦   «         d*         dk     rt          dd+i¦  «        c S  n#  t          dd,i¦  «        cY c S xY w ‰|g| ¢R i |¤ŽS )-NÚauthorizationÚorg_idztf-daas-tokenzx-daas-tokenÚERRORu(   No se encuentran datos de autenticaciÃ³n©ÚstatusÚmessageú/App/certs/csharp_dao/ca.pemÚrb©Úroot_certificatesz:8445©ÚcredentialsÚTF_SECRET_KEYÚ
SECRET_KEYÚHS256)Ú
algorithmsÚ	public_id)rD   u6   No se autenticÃ³ correctamente o el token es invÃ¡lidou   token invÃ¡lido: ©r5   õ4   No se encuentra registrada la organizaciÃ³n indicadar   r9   õÖ   Se encontraron mÃºltiples organizaciones con el identificador entregado al intentar validar usuario, Ã©sto no deberÃ­a de ser posible e impide reconocer el usuario al que desea hacer referencia. Reporte Ã©ste errorr   Ú z/cloudapi/1.0.0/orgséx   ÚAuthorization©ÚtimeoutÚheadersi–  ÚminorErrorCodeÚNOT_ACCEPTABLEz(?<=\[)(.*)(?=\])ú,c                 ó>   — g | ]}d |v¯|                      ¦   «         ‘ŒS )ÚD)Ústrip©Ú.0Úxs     r1   ú
<listcomp>z5token_required.<locals>.decorator.<locals>.<listcomp>À   s,   € ð (ð (ð (Ø*+¸sÈ!¸|¸|˜AŸGšG™IœI¸|¸|¸|r0   uQ   La validaciÃ³n de token fallÃ³, reporte Ã©ste error con su proveedor del serviciou*   No fue posible validar versiÃ³n de api VCDzapplication/*;version=)ÚAcceptrJ   ÚresultTotalu[   No fue posible validar vigencia de token, reporte Ã©ste error con su proveedor del serviciou   No se autenticÃ³)'r   rM   Úargsr   ÚopenÚPATH_APPÚreadÚgrpcÚssl_channel_credentialsr   ÚservicioDAOServiceStubÚsecure_channelr   ÚjwtÚdecodeÚappr	   r   ÚGetUserVCDRequestÚ
getUserVCDÚ	ExceptionÚGetOrgVCDRequestÚintÚ	getOrgVCDÚorgsÚlenÚapi_versionrS   ÚrequestsÚgetÚhostÚstatus_codeÚraise_for_statusÚjsonÚreÚsearchÚgroupÚsplitÚappend)rZ   ÚkwargsÚtokenÚ	vcd_tokenÚtf_tokenÚfpÚca_certÚcredsÚstubÚdataÚreqÚ
user_foundÚeÚorgrm   Úapi_versionsÚresÚrÚavÚfs                      €r1   Ú	decoratorz!token_required.<locals>.decorator^   s…  ø€ àˆØ#¥w¤Ð6ÐS¸8ÅwÄ|Ð;Sˆ	Ø"¥g¤oÐ5ˆà�Wœ_Ð,Ð,å”O NÔ3ˆEˆEØð 	å”O OÔ4ˆEˆEØð 		å”O OÔ4ˆEˆEåà%ØIðð ñô ð õ •(Ð;Ñ;¸TÑBÔBð 	 ÀbØ—g’g‘i”iˆGð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 õ Ô,¸wÐGÑGÔGˆÝ'Ô>ÝÔ¥8Ð 2Ð 2Ð 2ÀÐFÑFÔFñ
ô 
ˆð ð o	D˜9ð o	DðXå”zØÝ”J°(ÐL˜˜ÀÔMØ '˜yðñ ô �õ *Ô;ÀdÈ;ÔFWÐXÑXÔX�Ø!Ÿ_š_¨SÑ1Ô1�
à!ð Ý"à&-Ø'_ðð ñô ð ñøõ ð Xð Xð XÝ¨'Ð>UÐRSÐ>UÐ>UÐVÐVÑWÔWÐWÐWÐWÐWÐWÐWøøøøðXøøøõ &Ô6Ý�7œ<¨Ô1Ñ2Ô2ðñ ô ˆCð —.’. Ñ%Ô%ˆCà”8ð Ýà")Ø#Yðð ñô ð õ �3”8‰}Œ}˜qÒ Ð åà!ð  $}ðñô ð ð ”(˜1”+ˆCàœ/ˆKØˆLàÐ" k×&7Ò&7Ñ&9Ô&9¸RÒ&?Ñ&?ðÝ"œ,Øœ8Ð9Ð9Ð9Ø #à+¨Uð!ðñ ô �Cð ”¨#Ò-Ð-Ø×,Ò,Ñ.Ô.Ð.à(¨C¯HªH©J¬JÐ6Ð6ØŸHšH™JœJÐ'7Ô8Ð<LÒLÐLåœIÐ&:¸C¿HºH¹J¼JÀyÔ<QÑRÔR˜Ø'(§w¢w¨q¡z¤z×'7Ò'7¸Ñ'<Ô'<˜ð(ð (Ø/;ð(ñ (ô (˜˜õ  'à )Ð+~ðñ ô  ð ð	 %øðÝ"Ø"Ð$PÐQñô ð ð ð øøøð ×#Ò# KÑ0Ô0Ð0à"ð Dð D�ðDÝ"œ,Øœ8Ð9Ð9Ð9Ø #à&C¸rÐ&CÐ&CØ-2ð!ð !ðñ ô �Cð ”¨#Ò-Ð-Ø à×(Ò(Ñ*Ô*Ð*à(¨C¯HªH©J¬JÐ6Ð6¸#¿(º(¹*¼*À]Ô:SÐVWÒ:WÐ:WÝ&à )ð  ,Iðñ ô  ð ð ð ð ˜øðDÝ" IÐ/AÐ#BÑCÔCÐCÐCÐCÐCÐCøøøØˆq�Ð(˜Ð(Ð(Ð( Ð(Ð(Ð(sQ   Â#CÃCÃCÄA/F Æ
F4ÆF/Æ)F4Æ/F4É2C&M ÍM/Î0PÎ=APÐP1r   )rŠ   r‹   s   ` r1   Útoken_requiredrŒ   ]   s:   ø€ Ý
ˆ1�X„XðN)ð N)ð N)ð N)ñ „XðN)ð` Ðr0   z/session/terraformÚPOST)Úmethodsc            
      óÚ  — t          dd¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬¦  «        }t          j        t
          › dt          › �|¬¦  «        }t          j        |¦  «        }t          j
        t          j        d         ¬¦  «        }|                     |¦  «        }|st          dd	d
œ¦  «        S t          j        |j        j        t&          j                             ¦   «         t'          j        t-          t.          j        d         ¦  «        ¬¦  «        z   dœt0          j        d         d¦  «        }t          d|dœ¦  «        S )Núca.pemr;   r<   ú:r>   Úuser_id©r’   r6   u"   No se encontrÃ³ usuario registrador7   Úexpiration_time©Úminutes©rD   Úexpr@   rB   r)   )r8   rz   )r[   r]   r^   r_   ra   r   r   r   r`   r   re   r   Úformrf   r   rb   ÚencodeÚuserrD   r   ÚutcnowÚ	timedeltari   rn   rd   r	   )r}   r~   r   Úcore_channelr€   r‚   r‡   rz   s           r1   Úcreate_tfsessionrŸ   ò   s‘  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¸7ÐCÑCÔC€EÝÔ&­(Ð'?Ð'?µXÐ'?Ð'?ÈUÐSÑSÔS€LÝ#Ô:¸<ÑHÔH€Då
Ô
/½¼ÀYÔ8OÐ
PÑ
PÔ
P€CØ
�/Š/˜#Ñ
Ô
€Càð 
ÝØÐ+OÐPÐPñ
ô 
ð 	
õ ŒJàœÔ+ÝÔ$×+Ò+Ñ-Ô-ÝÔ ­­X¬]Ð;LÔ-MÑ)NÔ)NÐOÑOÔOñPð	
ð 	
õ
 	Œ
�?Ô#Øñô €Eõ ˜i°%Ð8Ð8Ñ9Ô9Ð9ó   ‘2²6¹6z/sessionc                  óö  — t           j        } | r| j        r| j        st	          ddddi¦  «        S t          j        d| j        ¦  «        }|st          ddi¦  «        S t          dd	¦  «        5 }| 	                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬
¦  «        }t          j        t          › dt          › �|¬¦  «        }t          j        |¦  «        }t#          j        |d         ¬¦  «        }|                     |¦  «        }|st          dd|d         › d�i¦  «        S t)          |j        ¦  «        dk    rt          dd|d         › d�i¦  «        S t#          j        |d         ¬¦  «        }|                     |¦  «        }	|	st          dd|d         › d�i¦  «        S |	j        D ]!}
|
j        |j        d         j        k    r|
}	 nŒ"t7          |	j        | j        ¦  «        rqt9          j        |	j        t>          j                              ¦   «         t?          j!        d¬¦  «        z   dœtD          j#        d         d¦  «        }t          d|i¦  «        S t	          ddddi¦  «        S )Nzcould not verifyi‘  ÚAuthenticationu%   Se requieren datos de autenticaciÃ³n"z	(.*)@(.*)r9   u=   Se espera formato 'usuario@organizaciÃ³n' para autenticaciÃ³nr�   r;   r<   r‘   r>   r   ©Únameu8   No se encuentra registrada la organizaciÃ³n con nombre 'ú'r   u5   Se encontraron mÃºltiples organizaciones con nombre 'u�   ' al intentar validar usuario, Ã©sto no deberÃ­a de ser posible e impide reconocer el usuario al que desea hacer referencia. Reporte Ã©ste error)Ú	user_namez0No se encuentra registro de usuario con nombre 'r   é   r•   r—   rA   rB   rz   u   No se autenticÃ³ correctamente)$r   r4   ÚusernameÚpasswordr   rt   Úmatchr   r[   r]   r^   r_   ra   r   r   r   r`   r   rh   rj   rl   rk   re   rf   Úusersr5   ÚOrgVcdIdr   rb   rš   rD   r   rœ   r�   rd   r	   )ÚauthÚfull_usernamer}   r~   r   rž   r€   r‚   r…   rƒ   Úufrz   s               r1   Úcreate_sessionr°     s2  € åÔ €Dàð 
�t”}ð 
¨D¬Mð 
ÝØØØÐFÐGñ
ô 
ð 	
õ ”HØ�T”]ñô €Mð ð 
ÝØÐWÐXñ
ô 
ð 	
õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åÔ(¸7ÐCÑCÔC€EÝÔ&­(Ð'?Ð'?µXÐ'?Ð'?ÈUÐSÑSÔS€LÝ#Ô:¸<ÑHÔH€DÝ
Ô
.°MÀ!Ô4DÐ
EÑ
EÔ
E€CØ
�.Š.˜Ñ
Ô
€Càð 
ÝàÐiÐVcÐdeÔVfÐiÐiÐiðñ
ô 
ð 	
õ
 
ˆSŒX‰Œ˜Ò	Ð	åàð  vÐS`ÐabÔScð  vð  vð  vðñ
ô 
ð 	
õ Ô
/Ø Ô"ðñ ô €Cð —’ Ñ%Ô%€Jàð 
ÝàÐaÈmÐ\]ÔN^ÐaÐaÐaðñ
ô 
ð 	
ð Ôð ð ˆØŒ9˜œ œÔ,Ò,Ð,ØˆJØˆEð -õ ˜:Ô.°´Ñ>Ô>ð 
)Ý”
à'Ô1ÝÔ(×/Ò/Ñ1Ô1µHÔ4FÈrÐ4RÑ4RÔ4RÑRðð õ ŒJ�|Ô$Øñ
ô 
ˆõ ˜ Ð'Ñ(Ô(Ð(åØØØ	Ð;Ð<ñô ð s   Á-BÂBÂBz/category_servicesÚGETc                 ó  — t          t          dz   d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j        ¦   «         }	 |                     |¦  «        }n,# t          $ r}t          d|› d�dœ¦  «        cY d }~S d }~ww xY wt          d	d
d„ |j        D ¦   «         dœ¦  «        S )Nr:   r;   r<   r‘   r>   r6   ú(. Fallo de servicios hacia base de datosr7   r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S ©T)Úincluding_default_value_fields©rs   Úloadsr   rT   s     r1   rW   z$get_product_type.<locals>.<listcomp>  ó?   € ð ð ð àõ ”
�=¨È4ÐPÑPÔPÑQÔQðð ð r0   ©r8   r9   r�   )r[   r\   r]   r^   r_   r   r`   ra   r   r   r   ÚGetProductTypeRequestÚgetProductTyperg   r   Úproducts©rŒ   r}   r~   r   r€   r‚   r‡   r„   s           r1   Úget_product_typer¿   d  s�  € õ 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¸7ÐCÑCÔC€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
3Ñ
5Ô
5€Cð
Ø×!Ò! #Ñ&Ô&ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØðð àœðñ ô ð	
ð 	
ñ	ô 	ð 	s+   ™:º>Á>Â%B; Â;
C$ÃCÃC$ÃC$z	/servicesc                 ój  — t          t          dz   d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j        t          t          j        d         ¦  «        ¬¦  «        }	 |                     |¦  «        }n,# t           $ r}t#          d|› d	�d
œ¦  «        cY d }~S d }~ww xY wt#          ddt%          j        |j        j        ¦  «        dœ¦  «        S )Nr:   r;   r<   r‘   r>   Úservice_type_id)ÚIdProductTyper6   r³   r7   r)   rH   rº   )r[   r\   r]   r^   r_   r   r`   ra   r   r   r   ÚGetServicesByProductTypeRequestri   r   r™   ÚgetServicesCatalogrg   r   rs   r¸   Úresponser¾   s           r1   Úget_servicesrÆ   ‡  s   € õ
 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¸7ÐCÑCÔC€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
=Ý�'œ,Ð'8Ô9Ñ:Ô:ðñ ô €Cð
Ø×%Ò% cÑ*Ô*ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØÝ”J˜sœ|Ô4Ñ5Ô5ð	
ð 	
ñô ð s+   ™:º>Á>ÃC Ã
DÃ$C>Ã8DÃ>Dz/plansc                 ó  — t          t          dz   d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }dt          j        v rdnd}|dk    rt          j        d         nt          t          j        d         ¦  «        }t          |¦  «         t          |¦  «         t          j        d|t!          |¦  «        ¬¦  «        }	 |                     |¦  «        }n,# t$          $ r}	t'          d	|	› d
�dœ¦  «        cY d }	~	S d }	~	ww xY wt'          ddt)          j        |j        j        ¦  «        gdœ¦  «        S )Nr:   r;   r‘   r>   r¤   Ú
service_idÚplans)Útab_nameÚwcol_name_filterÚw_paramr6   r³   r7   r)   rH   rº   )r[   r\   r]   r^   r_   r   r`   ra   r   r   r   r™   ri   Úprintr   ÚGetGenericInformationRequestÚstrÚgetGenericInformationrg   r   rs   r¸   rÅ   )
rŒ   r}   r~   r   r€   Úfilter_nameÚfilter_valuer‚   r‡   r„   s
             r1   Ú	get_plansrÓ   ª  s  € õ
 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dð #¥g¤lÐ2Ð2�&�&¸€Kð ˜&Ò Ð õ 	Œ�VÔÐå•”˜lÔ+Ñ,Ô,ð õ 
ˆ+ÑÔÐÝ	ˆ,ÑÔÐå
Ô
:Ø¨;ÅÀ\Ñ@SÔ@Sðñ ô €Cð
Ø×(Ò(¨Ñ-Ô-ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØÝ”Z ¤Ô 5Ñ6Ô6Ð7ð	
ð 	
ñô ð s+   ™:º>Á>ÄD2 Ä2
EÄ<EÅEÅEz/private/vcd/vdcsc                  óD  — t          dd¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        ddt          j        d         ¬¦  «        }	 |                     |¦  «        }n,# t          $ r}t          d|› d	�d
œ¦  «        cY d }~S d }~ww xY wt          ddt!          j        |j        j        ¦  «        gdœ¦  «        S )Nr�   r;   r‘   r>   Úvcd_vdcr¤   )rÊ   rÌ   rË   r6   r³   r7   r)   rH   rº   )r[   r]   r^   r_   r   r`   ra   r   r   r   rÎ   r   r™   rÐ   rg   r   rs   r¸   rÅ   ©r}   r~   r   r€   r‚   r‡   r„   s          r1   Úget_vdcsr×   Ø  s•  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
:Ø F½W¼\È&Ô=Qðñ ô €Cð
Ø×(Ò(¨Ñ-Ô-ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØÝ”Z ¤Ô 5Ñ6Ô6Ð7ð	
ð 	
ñô ð s*   ‘2²6¹6Â0C Ã
C/ÃC*Ã$C/Ã*C/z/private/vcd/orgsc                  ó$  — t          dd¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          j        d         ¬¦  «        }	 |                     |¦  «        }n,# t          $ r}t          d|› d�d	œ¦  «        cY d }~S d }~ww xY wt          d
dd„ |j        D ¦   «         dœ¦  «        S )Nr�   r;   r‘   r>   r¤   r£   r6   r³   r7   r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   zget_orgs.<locals>.<listcomp>  r¹   r0   rº   )r[   r]   r^   r_   r   r`   ra   r   r   r   rh   r   r™   rj   rg   r   rk   rÖ   s          r1   Úget_orgsrÚ   ù  s‘  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
.µG´LÀÔ4HÐ
IÑ
IÔ
I€Cð
Ø�nŠn˜SÑ!Ô!ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØðð àœðñ ô ð	
ð 	
ñ	ô 	ð 	s*   ‘2²6¹6Â.C Ã
C-ÃC(Ã"C-Ã(C-z/private/vcd/usersc                  ó`  — t          dd¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          j        d         t          t          j        d         ¦  «        ¬¦  «        }	 |                     |¦  «        }n,# t          $ r}t!          d|› d	�d
œ¦  «        cY d }~S d }~ww xY wt!          ddd„ |j        D ¦   «         dœ¦  «        S )Nr�   r;   r‘   r>   r¨   r5   )r¦   r5   r6   r³   r7   r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   zget_users.<locals>.<listcomp>7  r¹   r0   rº   )r[   r]   r^   r_   r   r`   ra   r   r   r   re   r   r™   ri   rf   rg   r   r«   rÖ   s          r1   Ú	get_usersrÝ     s©  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
/Ý”,˜zÔ*µ3µw´|ÀHÔ7MÑ3NÔ3Nðñ ô €Cð
Ø�oŠo˜cÑ"Ô"ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØðð àœðñ ô ð	
ð 	
ñ	ô 	ð 	s*   ‘2²6¹6ÃC" Ã"
DÃ,DÄ DÄDz/provisioningc                  ó|  — d} d }t          dd¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          j        d         ¬¦  «        }	 |                     |¦  «        }|}n# t          $ r}d} Y d }~nd }~ww xY w| �s+t          j        t!          t          j        d	         ¦  «        ¬
¦  «        }	 |                     |¦  «        }n,# t          $ r}t%          d|› d�dœ¦  «        cY d }~S d }~ww xY wt          j        t          j        d         t          j        d         t!          t          j        d         ¦  «        |j        d         j        d¬¦  «        }	 |                     |¦  «        }n,# t          $ r}t%          d|› d�dœ¦  «        cY d }~S d }~ww xY w|j        j        }n|j        d         j        }t          j        t!          t          j        d         ¦  «        t!          t          j        d	         ¦  «        |¬¦  «        }|                     |¦  «        }t%          ddt9          j        |j        j        ¦  «        d         dœ¦  «        S )NTr�   r;   r‘   r>   Úvdc_urn)Úurn_idFr’   r“   r6   r³   r7   Úvdc_nameÚsubscription_idr   )r¤   rà   râ   r5   ÚactiveÚplan_id©rä   r’   Ú
vdc_vcd_idr)   rH   rº   )r[   r]   r^   r_   r   r`   ra   r   r   r   ÚgetfieldsvdcRequestr   r™   Úgetfieldsvdcrg   re   ri   rf   r   ÚsetfieldsvdcRequestr«   r5   ÚsetfieldsvdcrÅ   ÚidÚfieldvdcÚSetContractedServicesRequestÚsetContractedServicesServicers   r¸   )	Úregistered_vdcræ   r}   r~   r   r€   r‚   r‡   r„   s	            r1   Úproviderð   ?  sN  € ð
 €NØ€JÝ	ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
1½¼ÀiÔ9PÐ
QÑ
QÔ
Q€CðØ×Ò Ñ$Ô$ˆØˆ
ˆ
øÝð ð ð Øˆˆˆˆˆˆøøøøðøøøð ñ  /Ý!Ô3Ý�œ YÔ/Ñ0Ô0ð
ñ 
ô 
ˆð	Ø—/’/ #Ñ&Ô&ˆCˆCøÝð 	ð 	ð 	Ýà%Ø"#ÐMÐMÐMðð ñô ð ð ð ð ð ð øøøøð	øøøõ "Ô5Ý”˜jÔ)Ý”< 	Ô*Ý¥¤Ð->Ô ?Ñ@Ô@Ø”9˜Q”<Ô&Øð
ñ 
ô 
ˆð	Ø×#Ò# CÑ(Ô(ˆCˆCøÝð 	ð 	ð 	Ýà%Ø"#ÐMÐMÐMðð ñô ð ð ð ð ð ð øøøøð	øøøð ”\”_ˆ
ˆ
àÔ(¨Ô+Ô.ˆ
å
Ô
:Ý•G”L Ô+Ñ,Ô,Ý•G”L Ô+Ñ,Ô,Øðñ ô €Cð
 ×
+Ò
+¨CÑ
0Ô
0€CåàØÝ”J˜sœ|Ô4Ñ5Ô5°aÔ8ð	
ð 	
ñô ð s`   •6¶:½:Â2C
 Ã

C ÃCÃC ÄD/ Ä/
EÄ9EÅEÅEÇG Ç
HÇ"G<Ç6HÇ<Hz/services_contractedc                  ó@  — t          dd¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          t          j        d         ¦  «        ¬¦  «        }	 |                     |¦  «        }n,# t          $ r}t!          d|› d	�d
œ¦  «        cY d }~S d }~ww xY wt!          ddd„ |j        D ¦   «         dœ¦  «        S )Nr�   r;   r<   r‘   r>   r’   )ÚidUserr6   r³   r7   r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   z"get_contracted.<locals>.<listcomp>¥  r¹   r0   rº   )r[   r]   r^   r_   r   r`   ra   r   r   r   ÚGetAllContractedServicesRequestri   r   r™   ÚgetServicesAllContractedrg   r   ÚcontractedServicerÖ   s          r1   Úget_contractedr÷   ‡  s¦  € õ
 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¸7ÐCÑCÔC€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
=Ý•7”< 	Ô*Ñ+Ô+ðñ ô €Cð
Ø×+Ò+¨CÑ0Ô0ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØðð àÔ.ðñ ô ð	
ð 	
ñ	ô 	ð 	s*   ‘2²6¹6Â<C Ã
C;ÃC6Ã0C;Ã6C;z/orgVDCsc                  ó4  — t          t          dz   d¦  «        5 } |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¬¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j        d¬¦  «        }t          |¦  «         	 |                     |¦  «        }n,# t          $ r}t          d|› d	�d
œ¦  «        cY d }~S d }~ww xY wt          ddd„ |j        D ¦   «         dœ¦  «        S )Nr:   r;   r<   r‘   r>   r#   )Ú	idservicer6   r³   r7   r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   zget_orgvdcs.<locals>.<listcomp>É  sA   € ð ð ð ð õ ”
�=¨È4ÐPÑPÔPÑQÔQðð ð r0   rº   )r[   r\   r]   r^   r_   r   r`   ra   r   r   r   ÚGetOrgVCD_ServiceRequestrÍ   ÚgetOrgVCD_Servicerg   r   rÅ   rÖ   s          r1   Úget_orgvdcsrý   ¬  s¢  € õ 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¸7ÐCÑCÔC€Eå#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ Ô
6ÀÐ
CÑ
CÔ
C€Cå	ˆ#�J„J€Jð
Ø×$Ò$ SÑ)Ô)ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøõ àØðð ð œðñ ô ð	
ð 	
ñ
ô 
ð 
s+   ™:º>Á>Â6C Ã
C5ÃC0Ã*C5Ã0C5z)/service/cbc/manage_subscription/<action>c                 ó˜
  — t          t          dz   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          t          dz   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }|dk    rt          dd	|› d
�dœ¦  «        S t          j        d         }t          j                             d¦  «        }	t          j        d         }
	 t%          j        t)          t          j        d         ¦  «        t)          t          j        d         ¦  «        t)          t          j        d         ¦  «        ¬¦  «        }	 |                     |¦  «        }n#  t          dddœ¦  «        fcY S xY wt-          j        |j        j        ¦  «        d         d         }t3          |	¦  «        }t5          d|
dz   ¦  «        D �]a}||k    }|st-          j        |	|         ¦  «        nd}t%          j        |› |› �t9          |¦  «        t9          dd|› d|
› �d|s|d         n||s|d         n||s|n||s|d         n||s|d         n|dddddddddœgdœ¦  «        ¬¦  «        }	 |                     |¦  «        }n&#  t          dd |› d!|
|z
  › d"�dœ¦  «        fcY c S xY wt<                               tA          j!        |t@          j"        j#        |d         |d#         t)          t-          j        |j        j        ¦  «        d         d         ¦  «        d¬$¦  «        ¦  «         �Œct%          j$        |d%tK          j&        ¦   «          '                    d&¦  «        d¬'¦  «        }	 | (                    |¦  «        }n#  t          dddœ¦  «        fcY S xY wt-          j        |j        j        ¦  «        d         d         }tA          j)        tA          j*        d(t@          j"        j+        t          j        d)         |t          j        d*         |
t          j        d+         |¬,¦  «        t<          ¬-¦  «        }	 | ,                    |¦  «        }n#  t          dd.dœ¦  «        fcY S xY w|j-        d/k    s&t          d|j.        › d0|dk    rd1nd2› d3�dœ¦  «        fS t          d/|dœ¦  «        S )4u  
    NextGen Antivirus - Carbon Black Cloud. ContrataciÃ³n y cancelaciÃ³n de servicio para Tenant/OrganizaciÃ³n especÃ­fica por toma-pedidos dirigido Ã¡rea de mesa de servicio.
    action: contracting, cancel
    mÃ©todos: POST
    retorno: json -> status, message
    ú+/App/certs/python_carbonblackmanager/ca.pemr;   Nr‘   r>   r:   Úcontractingr6   u   AcciÃ³n solicitada 'u   ' invÃ¡lidar7   Úorg_vdcz
licenses[]Únumber_licensesrä   r’   ræ   rå   un   No fue posible registrar contrataciÃ³n de servicio, solicite que se registre manualmente y reporte Ã©ste errorr   rë   r   rH   ú/r¤   Ú	ownerNameÚdateCreatedÚhref)ÚversionÚvm_nameÚvm_ownerNameÚ
vm_vdcNameÚvm_dateCreatedÚvm_hrefÚsensor_nameÚsensor_loginUserNameÚsensor_registeredTimeÚsensor_deviceTypeÚsensor_osVersionÚsensor_sensorVersionÚsensor_macAddressÚsensor_deviceId)Úapi_hostrz   Úlicense_countr�   )r¤   Úcontracted_services_idÚspecsu   FallÃ³ registro de licencia #uZ   . La peticiÃ³n para contrataciÃ³n se realizÃ³ exitosamente, sin embargo no se registraron un    licencia(s) en nuestra base de datos. Reporte Ã©ste error y solicite que se registren las licencias faltantesÚguestOs)ÚorgVdcÚmovementTypeÚhrefVMÚosÚ	licenseIdÚdeviceIdz~{"planid": "31","name_app_service": "","user_service": "","password_service": "","select_versions_srv": "","tags_service": ""}z%Y-%m-%d %H:%M:%S)r  Úresource_specsÚrequest_datetimeÚsupply_status_idzNext Gen AntivirusÚplanÚpayment_modelÚexpire_date)Úservicer  r#  r  ÚpaymentMethodÚlicensesÚ
expireDateÚrequestQueueId)Úservice_formr(  u2   No fue posible solicitar acciÃ³nn vÃ­a toma-pedidor)   z): No fue posible realizar solicitud para u   contrataciÃ³nu   cancelaciÃ³nu6    de servicio. Intente nuevamente o reporte Ã©ste error)/r[   r\   r]   r^   r_   r   ÚCBCManagerServiceStubra   r   r   r   r`   r   r   r   r   r™   Úgetlistr   rí   ri   rî   rs   r¸   rÅ   rl   ÚrangeÚSetLicensesRequestrÏ   ÚsetLicensesServiceÚlicense_formsrx   r   ÚLicenseFormÚMovementTypeÚINSTALLÚSetUpdateRequestQueueRequestr   ÚnowÚstrftimeÚsetUpdateRequestQueueÚServiceManagementRequestÚServiceFormÚCONTRACTINGÚServiceManager8   r9   )rŒ   Úactionr}   r~   r   Úcbc_stubÚ	creds_daoÚdao_stubr  r(  r  r‚   r‡   ÚcsidÚrequested_licensesrV   Úempty_licenseÚlicenseÚrequest_queue_ids                      r1   Úmanage_subscriptionrF  Ñ  sé  € õ 
�hÐFÑFÈÑ	MÔ	Mð ÐQSØ—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åÔ(¨Ñ1Ô1€Eå"Ô8ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Hõ 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô,¨WÑ5Ô5€Iå'Ô>ÝÔ�xÐ4Ð4­(Ð4Ð4À)ÐLÑLÔLñô €Hð �ÒÐÝØÐ+UÀ&Ð+UÐ+UÐ+UÐVÐVñ
ô 
ð 	
õ Œl˜9Ô%€GåŒ|×#Ò# LÑ1Ô1€HÝ”lÐ#4Ô5€Oð |Ý
Ô
:Ý•G”L Ô+Ñ,Ô,Ý•G”L Ô+Ñ,Ô,Ý•w”| LÔ1Ñ2Ô2ðñ ô €Cð


Ø×3Ò3°CÑ8Ô8ˆˆøð
åà%ð  Pðð ñô ð
ð 	
ð 	
ð 	
øøøõ Œ:�c”lÔ+Ñ,Ô,¨QÔ/°Ô5€DÝ˜X™œÐå�1�o¨Ñ)Ñ*Ô*ð ?
ñ ?
ˆàÐ.Ò.ˆØ1>ÐF•$”*˜X aœ[Ñ)Ô)Ð)ÀBˆÝ!Ô4Ø�˜Q��Ý#& t¡9¤9Ýà "ØØ()Ð%=Ð%=¨OÐ%=Ð%=ð ()à7DÐ Q ¨¤ È'ð =JÐ V ¨Ô 4Ð 4Èwà9FÐ*S¨'¨'ÈGà>KÐ X ¨Ô 6Ð 6ÐQXð 8EÐ Q ¨¤ È'à+-Ø46Ø57Ø13Ø02Ø46Ø13Ø/1ð-ð ðð	ð ñ ô  ð$
ñ $
ô $
ˆðL
	Ø×-Ò-¨cÑ2Ô2ˆCˆCøð	åà")ð $dÀ1ð  $dð  $dð  apð  stñ  atð  $dð  $dð  $dðð ñô ðð ð ð ð ð øøøõ 	×ÒÝÔ&ØÝ+Ô8Ô@Ø˜v”Ø˜9Ô%Ý�dœj¨¬Ô)>Ñ?Ô?ÀÔBÀ4ÔHÑIÔIØðñ ô ñ		
ô 		
ð 		
ñ 		
õ Ô
:Ø#ð XÝ"œ,™.œ.×2Ò2Ð3FÑGÔGØð	ñ ô €Cð

Ø×,Ò,¨SÑ1Ô1ˆˆøð
åà%ð  Pðð ñô ð
ð 	
ð 	
ð 	
øøøõ ”z #¤,Ô"7Ñ8Ô8¸Ô;¸DÔAÐå
Ô
1Ý#Ô/Ø(Ý'Ô4Ô@Ý”˜fÔ%ØÝ!œ,Øôð %Ý”| MÔ2Ø+ð
ñ 
ô 
õ ðñ ô €Cð

Ø×$Ò$ SÑ)Ô)ˆˆøð
åà%ØTðð ñô ð
ð 	
ð 	
ð 	
øøøð Œ:˜Ò"Ð"åà%Ø"%¤+ð   Oð   OÐkqð  vCò  lCð  lCÐXgÐXgð  IWð   Oð   Oð   Oðð ñô ð
ð 	
õ ˜i°FÐ;Ð;Ñ<Ô<Ð<sO   ™:º>Á>Â(C	Ã	CÃCÇ.H ÈHÌL#Ì#MÐ
P  Ð P7ÓS/ Ó/Tz#/service/cbc/manage_sensor/<action>c                 óR
  — t          dd¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j        d         }|dk    rt          |¦  «        nd}t          j        d	         }|dk    rt          |¦  «        nd}|s[|rYt!          j        |¬
¦  «        }	|                     |	¦  «        }
|
j        st)          d|
j        › d�dœ¦  «        fS |
j        d         }
t!          j        |r|
j        nd|¬¦  «        }	|                     |	¦  «        }
|
j        st)          d|
j        › d�dœ¦  «        fS |
j        }i }i }|D ]r}|j        }|                     dd¦  «        }t9          j        |¦  «        }|d         t=          |d         ¦  «        dz
           }|s|r|d         dk    r|}|j        } nŒs|dk    rÐtA          j!        tA          j"        t          j        d         |dk    rt@          j#        j$        nt@          j#        j%        t          j        d         t          j        d         |¬¦  «        ¬¦  «        }	| &                    |	¦  «        }
|
j'        dk    r.t)          d|
j        › d|dk    rdn	|dk    rd nd!› d"�dœ¦  «        fS |dk    �rt          j        d#         |d<   t          j        d$         |d%<   t          j        d&         |d'<   t          j        d         |d(<   t!          j(        |j        |j)        tU          |¦  «        |j        ¬)¦  «        }	| +                    |	¦  «        }
|
j,        j,        r<d*|
j,        j,        vs.t9          j        |
j,        j,        ¦  «        d         d*         d+k    rt)          dd,dœ¦  «        fS t)          dd-dœ¦  «        fS |dk    rt)          dd.dœ¦  «        fS |dk    rÜ|
j        j        j-        }|
j        j        j.        }tA          j!        ||t          j        d/         tA          j"        t          j        d         t@          j#        j/        t          j        d         t          j        d         |¬¦  «        g¬0¦  «        }	| &                    |	¦  «        }
	 t)          dd1t          j        d2         › �dœ¦  «        S dS )3uk  
    NextGen Antivirus - Carbon Black Cloud. InstalaciÃ³n, desinstalaciÃ³n y actualizaciÃ³n de estatus de sensores en mÃ¡quinas virtuales de VCD por toma-pedidos dirigido Ã¡rea de mesa de servicio (excepto update).
    action: install, uninstall, update_status
    mÃ©todos: POST
    args: *license_id, *request_queue_id,
    retorno: json -> status, message
    r�   r;   Nr‘   r>   Ú
license_idrH   r   rE  ©rE  r6   z˜: No fue posible recuperar registro de servicio solicitado, verifique que el valor enviado en request_queue_id es correcto y existe en la base de datos.r7   )r  Ú
idlicensesz}: No fue posible recuperar registros de licencias, verifique que el valor filtrado sea correcto y existe en la base de datos.r¥   ú"r�   r   r  Úupdate_statusr  Úinstallr  r  )r  r  r  r  r  )Úlicense_formr)   z: No fue posible solicitar u   instalaciÃ³n de sensoresÚ	uninstallu   desinstalaciÃ³n de sensoresu#   actualizaciÃ³n de estatus de sensoru*   . Intente nuevamente o reporte Ã©ste errorr¤   r  r	  Údate_createdr  r  )rJ  r¤   r  Úid_contracted_servicesÚresultÚexitouk   No fue posible actualizar registro de licencia con datos de MÃ¡quina Virtual objetivo. Reporte Ã©ste error.ur   Solicitud para instalaciÃ³n de sensor exitosa. Espere respuesta a su solicitud desde el portal de administraciÃ³n.uu   Solicitud para desinstalaciÃ³n de sensor exitosa. Espere respuesta a su solicitud desde el portal de administraciÃ³n.Úsensor_action)Úcbc_api_hostÚ
auth_tokenrT  r(  zEstablecido estatus Úaction_type)0r[   r]   r^   r_   r   r,  ra   r   r   r   r`   r   r   r   r™   ri   r   ÚGetRequestQueueRequestÚgetRequestQueueServiceÚrequestqueuer   r9   ÚGetLicensesRequestr  ÚGetLicensesr(  r  Úreplacers   r¸   rl   rJ  r   ÚSensorManagementRequestr2  r3  r4  Ú	UNINSTALLÚSensorManager8   ÚSetUpdateLicensesRequestÚnameLicensesrÏ   ÚsetUpdateLicensesrÅ   r  rz   ÚUPDATE_STATUS)rŒ   r=  r}   r~   r   r>  r@  rH  rE  r‚   r‡   r(  Úlicense_specsÚlicense_versionÚlrU  Ú	cbc_tokens                    r1   Úmanage_sensorri  ˆ  sƒ  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eõ #Ô8ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Hõ (Ô>ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Hõ
 ”˜lÔ+€JØ$.°"Ò$4Ð$4•�Z‘”�¸!€Jå”|Ð$6Ô7ÐØ0@ÀBÒ0FÐ0F•sÐ+Ñ,Ô,Ð,ÈAÐàð "Ð*ð "å!Ô8Ø-ð
ñ 
ô 
ˆð ×-Ò-¨cÑ2Ô2ˆàÔð 	åà")Ø&)¤kð  $Lð  $Lð  $Lðð ñô ðð ð Ô˜qÔ!ˆõ Ô
0Ø=MÐT˜sÔ9Ð9ÐSTØðñ ô €Cð ×
Ò
˜sÑ
#Ô
#€CàŒ<ð 
åà%Ø"%¤+ð   mð   mð   mðð ñô ð
ð 	
ð Œ|€Hà€Mà€Oàð ð ˆØœˆØ%×-Ò-¨c°3Ñ7Ô7ˆÝœ
 =Ñ1Ô1ˆà'¨Ô/µ°MÀ&Ô4IÑ0JÔ0JÈQÑ0NÔOˆàð 	Ð.ð 	°?À9Ô3MÐQSÒ3SÐ3SàˆHØœˆJØˆEøà�Ò Ð åÔ4Ý'Ô3Ý”| IÔ.à˜YÒ&Ð&õ ,Ô8Ô@Ð@å#Ô0Ô:å”| FÔ+Ý”< 	Ô*Ø$ð	ñ 	ô 	ð
ñ 
ô 
ˆð ×#Ò# CÑ(Ô(ˆàŒ:˜Ò"Ð"åà")Ø&)¤kð  $Sð  $SÐlrÐvÒlÐlÐNhÐNhð  gmð  q|ò  g|ð  g|ð  Fcð  Fcð  Bgð  $Sð  $Sð  $Sðð ñô ðð ð �ÒÑå%,¤\°&Ô%9ˆ˜	Ñ"Ý*1¬,°{Ô*Cˆ˜Ñ'å,3¬L¸Ô,HˆÐ(Ñ)Ý%,¤\°&Ô%9ˆ˜	Ñ"å!Ô:ØÔ*ØÔ&Ý�mÑ$Ô$Ø#+Ô#Bð	
ñ 
ô 
ˆð ×(Ò(¨Ñ-Ô-ˆð ”Ô%ð	à˜sœ|Ô4Ð4Ð4ÝŒz˜#œ,Ô/Ñ0Ô0°Ô3°HÔ=ÀÒHÐHõ à")ð $Qðð ñô ðð õ à'ð  Tðð ñô ð
ð 	
ð �ÒÐåà'ð  Wðð ñô ð
ð 	
ð �Ò Ð ð ŒLÔÔ'ð 	ð ŒLÔÔ$ð 	õ Ô4Ø%Ø Ý!œ, Ô7åÔ*Ý"œ<¨	Ô2Ý!/Ô!<Ô!Jå"œ<¨Ô/Ý”| IÔ.Ø(ðñ ô ð	ð	
ñ 
ô 
ˆð  ×#Ò# CÑ(Ô(ˆð	õ à#ØOµ'´,¸}Ô2MÐOÐOðð ñ
ô 
ð 	
ð; !Ð r    z*/service/cbc/manage_user_accounts/<action>)r�   r±   ÚPUTÚDELETEc                 ó
  — t          dd¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t	          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j
        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          j        t          j        d         t          j        d         ¬¦  «        }|                     |¦  «        }|st%          d	d
dœ¦  «        S |j        }|j        }		 t+          j        |› d�dd|	i¬¦  «        }|                     ¦   «          n#  t%          dddœ¦  «        cY S xY w|j        j        }
|j        j        }t          j        dk    r¬| dk    r¦t9          j        |	|||
t9          j        t          j        d         t          j        d         t          j        d         t          j        d         t          j        d         t          j        d         ¬¦  «        ¬¦  «        }|                     |¦  «        }t          j        dk    r2| dk    r,t9          j         |	||
¬¦  «        }| !                    |¦  «        }t          j        dk    rß| d k    rÙt9          j         |	||
¬¦  «        }| !                    |¦  «        }t9          j"        |	||
t          j        d!         |t9          j        |d"         j#        t          j        d!         t          j        d         t          j        d         |d"         j$        t          j        d         ¬¦  «        ¬#¦  «        }| %                    |¦  «        }t          j        d$k    rj| d%k    rdt9          j         |	||
¬¦  «        }| !                    |¦  «        }t9          j&        |	||d"         j$        |
¬&¦  «        }| %                    |¦  «        }t%          |¦  «        S )'u  
    NextGen Antivirus - Carbon Black Cloud. CreaciÃ³n, recuperaciÃ³n, actualizaciÃ³n y borrado de cuentas de usuario con rol fijo de Analista 3.
    action: add, get, change, delete
    mÃ©todos: POST, GET, PUT, DELETE
    retorno: json -> status, message
    r�   r;   Nr‘   r>   r5   rÈ   )r5   Ú	idServicer)   uo   No se encontraron licencias relacionadas a usuario, revise si la informaciÃ³n es correcta o reporte Ã©ste errorr7   z/appservices/v5/orgsrI   zX-AUTH-TOKENrK   r6   z<No fue posible recuperar org key de ambiente de carbon blackr�   ÚaddÚ
contact_idÚemailÚ
first_nameÚ	last_nameÚlogin_idÚphone)ro  rp  rq  rr  rs  rt  )rV  rU  r5   Úorg_keyÚ	user_datar±   ro   )rV  rU  ru  rj  ÚchangeÚ
login_namer   )rV  rU  ru  rx  r5   rv  rk  Údelete)rV  rU  rs  ru  )'r[   r]   r^   r_   r   r,  ra   r   r   r   r`   r   r   r   r[  r   r™   r\  r   r  rz   rn   ro   rr   ÚorganizationÚorgKeyrë   Úmethodr   ÚCreateUserAccountRequestÚUserAccountÚCreateUserAccountÚUserAccountsRequestÚGetUserAccountsÚUpdateUserAccountRequestro  rs  ÚUpdateUserAccountÚDeleteUserAccountRequest)r=  r}   r~   r   r>  r@  r‚   r‡   r  rz   ru  r5   s               r1   Úmanage_user_accountsr…  O  s]  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€Eõ #Ô8ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Hõ (Ô>ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Hõ Ô
0ÝŒ|˜HÔ%µ´¸lÔ1Kðñ ô €Cð ×
Ò
˜sÑ
#Ô
#€Càð 
Ýà#ð Mðð ñ
ô 
ð 	
ð Œ|€HØŒI€Eð
ÝŒlØÐ-Ð-Ð-ØØ# UÐ+ð
ñ 
ô 
ˆð
 	×ÒÑÔÐÐøð
Ýà!ØYðð ñ
ô 
ð 	
ð 	
ð 	
øøøð ÔÔ%€GØÔÔ €Få„~˜ÒÐ F¨e¢O OÝÔ5ØØ!ØØÝ$Ô0Ý"œ<¨Ô5Ý”l 7Ô+Ý"œ<¨Ô5Ý!œ, {Ô3Ý œ jÔ1Ý”l 7Ô+ðñ ô ð
ñ 
ô 
ˆð ×(Ò(¨Ñ-Ô-ˆå„~˜ÒÐ 6¨U¢? ?ÝÔ0Ø¨8¸Wð
ñ 
ô 
ˆð ×&Ò& sÑ+Ô+ˆå„~˜ÒÐ 6¨XÒ#5Ð#5ÝÔ0ØØ!Øð
ñ 
ô 
ˆð
 ×&Ò& sÑ+Ô+ˆåÔ5ØØ!ØÝ”| LÔ1ØÝ$Ô0Ø˜qœ6Ô,Ý”l <Ô0Ý"œ<¨Ô5Ý!œ, {Ô3Ø˜QœœÝ”l 7Ô+ðñ ô ð
ñ 
ô 
ˆð ×(Ò(¨Ñ-Ô-ˆå„~˜Ò!Ð! f°Ò&8Ð&8ÝÔ0ØØ!Øð
ñ 
ô 
ˆð
 ×&Ò& sÑ+Ô+ˆåÔ5ØØ!Ø˜”V”_Øð	
ñ 
ô 
ˆð ×(Ò(¨Ñ-Ô-ˆå�3‰<Œ<Ðs   ‘2²6¹6Ä-0E ÅE4z/service/cbc/retrieve/vmsc                 óº  — t          t          j                             d¦  «        ¦  «        dk    rt          j        d         nd}t          t          j                             d¦  «        ¦  «        dk    rt          j        d         nd}t	          t
          dz   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j
        t          j        t          › dt          › �|¬¦  «        ¦  «        }t	          t
          d	z   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t          j        t           › dt"          › �|¬¦  «        ¦  «        }t%          j        t)          |¦  «        ¬
¦  «        }		 |                     |	¦  «        }
n,# t,          $ r}t/          d|› d�dœ¦  «        cY d}~S d}~ww xY w|
st/          dddœ¦  «        S t          |
j        ¦  «        dk    rt/          dddœ¦  «        S |
j        d         }
t3          j        ||
j        t9          j        t<          ¦  «        d|
j        |
j         ¬¦  «        }	| !                    |	¦  «        }|j"        dk    rt/          d|j#        dœ¦  «        S tI          |¦  «        S )uö   
    NextGen Antivirus - Carbon Black Cloud. Recupera listado de mÃ¡quinas virtuales en formato XML, purga informaciÃ³n que puede cambiar en un futuro y se retorna en formato JSON.
    mÃ©todos: GET
    retorno: json -> status, message, json
    r5   r   r  Nrÿ   r;   r‘   r>   r:   rE   r6   r³   r7   rF   r   rG   T)Úvdc_idÚvcd_api_hostr­   Úis_basic_authrm   Útenant)%rl   r   rZ   r-  r[   r\   r]   r^   r_   r   r,  ra   r   r   r   r`   r   r   r   rh   ri   rj   rg   r   rk   r   ÚRetrieveVMsRequestrp   Úbase64Ú	b64decodeÚvcd_service_accountrm   r¤   ÚRetrieveVMsr8   r9   r   )rŒ   Ú
var_org_idÚvar_org_vdcr}   r~   r?   r>  r?  r@  r‚   r…   r„   r‡   s                r1   Úget_vmsr’  Î  sŽ  € õ #&¥g¤l×&:Ò&:¸8Ñ&DÔ&DÑ"EÔ"EÈÒ"IÐ"I�Œ�XÔÐÈqð õ
 $'¥w¤|×';Ò';¸IÑ'FÔ'FÑ#GÔ#GÈ!Ò#KÐ#K�Œ�YÔÐÐQUð õ 
�hÐFÑFÈÑ	MÔ	Mð ÐQSØ—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô.¨wÑ7Ô7€Kå"Ô8ÝÔ�xÐ4Ð4­(Ð4Ð4À+ÐNÑNÔNñô €Hõ 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô,¨WÑ5Ô5€Iå'Ô>ÝÔ�xÐ4Ð4­(Ð4Ð4À)ÐLÑLÔLñô €Hõ Ô
.µc¸*±o´oÐ
FÑ
FÔ
F€Cð
Ø× Ò  Ñ%Ô%ˆˆøÝð 
ð 
ð 
Ýà!ØÐIÐIÐIðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøð ð 
Ýà!ØRðð ñ
ô 
ð 	
õ 
ˆSŒX‰Œ˜Ò	Ð	åà!ð uðð ñ
ô 
ð 	
ð Œ(�1Œ+€Cå
Ô
+ØØ”XÝÔÝñ
ô 
ð Ø”OØŒxð	ñ 	ô 	€Cð ×
Ò
˜sÑ
#Ô
#€Cà
„z�WÒÐÝà!Øœ;ðð ñ
ô 
ð 	
õ ˜ÑÔÐsB   Â!CÃCÃ	CÄ0EÅEÅEÇ
G  Ç 
H	Ç*HÇ>H	ÈH	z/service/cbc/retrieve/sensorsz(/service/cbc/retrieve/sensors/<deviceid>c                 ó$  — t          t          dz   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t          j        t          › dt          › �|¬¦  «        ¦  «        }t          t          j        d         ¦  «        }t          |¦  «         t          j        |¬¦  «        }|                     |¦  «        }|st#          dd	d
œ¦  «        S t          |¦  «         t%          |j        d         j        ¦  «        }	|	d         }
|	d         }t          t          dz   d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        }t+          j        t          j        t.          › dt0          › �|¬¦  «        ¦  «        }t3          j        |
|¬¦  «        }|                     |¦  «        }t          |¦  «         t9          |¦  «        S )uþ   
    NextGen Antivirus - Carbon Black Cloud. Recupera listado de sensores de tipo Workload en formato CSV, purga informaciÃ³n que pudiese cambiar en un futuro y se retorna en formato JSON.
    mÃ©todos: GET
    retorno: json -> status, message, json
    r:   r;   Nr‘   r>   r  ©r  r6   uf   No se encontraron licencias dadas de alta, revise si la informaciÃ³n es correcta o reporte Ã©ste errorr7   r   r  rz   rÿ   )rU  rV  )r[   r\   r]   r^   r_   r   r`   ra   r   r   ri   r   rZ   rÍ   r   r[  r\  r   Úevalr(  r  r   r,  r   r   r   ÚRetrieveSensorsRequestÚRetrieveWorkloadSensorsr   )rŒ   Údeviceidr}   r~   r   r€   Ú
id_srv_conr‚   r‡   Úspectsr  rz   Úcreds_cbs                r1   Úget_sensorsrœ  '  sz  € õ 
�hÐ7Ñ7¸Ñ	>Ô	>ð À"Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€EÝ#Ô:ÝÔ�xÐ4Ð4­(Ð4Ð4À%ÐHÑHÔHñô €Dõ •W”\Ð":Ô;Ñ<Ô<€Jå	ˆ*ÑÔÐå
Ô
0Ø)ðñ ô €Cð ×
Ò
˜3Ñ
Ô
€Càð 
Ýà!ð Dðð ñ
ô 
ð 	
õ 
ˆ#�J„J€JÝ�#”,˜q”/Ô'Ñ(Ô(€Fà�jÔ!€Hà�7ŒO€Eå	�hÐFÑFÈÑ	MÔ	Mð ÐQSØ—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åÔ+¨GÑ4Ô4€HåÔ4ÝÔ�xÐ4Ð4­(Ð4Ð4À(ÐKÑKÔKñô €Dõ Ô
/Ø¨%ðñ ô €Cð ×
&Ò
& sÑ
+Ô
+€Cå	ˆ3�L„L€LÝ˜ÑÔÐs   ™:º>Á>ÅE3Å3E7Å:E7z'/service/daas/manage_contracts/<action>rk  c                 ó:  — dt           j        vrt          dddœ¦  «        S t           j        dk    r?| dk    r9t	          t           j        d         ¦  «        }t          |t          j        ¦  «        }t           j        dk    r?| dk    r9t	          t           j        d         ¦  «        }t          |t          j        ¦  «        }t           j        dk    r?| d	k    r9t	          t           j        d         ¦  «        }t          |t          j	        ¦  «        }t          |¦  «        S )
NrE  r6   u   No se recibiÃ³ request_queue_idr7   rk  ry  r�   ÚpauseÚ
reactivate)
r   r™   r   r|  ri   Úupdate_contract_statusr   r.   r,   r+   )r=  rE  rR  s      r1   Úmanage_contractsr¡  `  sñ   € ð ¥¤Ð-Ð-Ý 'Ð6WÐXÐXÑYÔYÐYå„~˜Ò!Ð! f°Ò&8Ð&8Ý�wœ|Ð,>Ô?Ñ@Ô@Ðå'Ð(8½&¼.ÑIÔIˆå„~˜ÒÐ F¨gÒ$5Ð$5Ý�wœ|Ð,>Ô?Ñ@Ô@Ðå'Ð(8½&¼/ÑJÔJˆå„~˜ÒÐ F¨lÒ$:Ð$:Ý�wœ|Ð,>Ô?Ñ@Ô@Ðå'Ð(8½&¼-ÑHÔHˆå�6‰?Œ?Ðr0   z/service/daas/deployments/<id>c                 ó¤  — t          dd¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t
          › d�|¬¦  «        }t          j        |¦  «        }| st          ddg dœ¦  «        S t          j
        t          | ¦  «        ¬¦  «        }	 |                     |¦  «        }nA# t          j        j        $ r*}t          dt          |¦  «        g dœ¦  «        cY d }~S d }~ww xY w|j        st          dd	| › d
�g dœ¦  «        S t          ddd„ |j        D ¦   «         dœ¦  «        S )Nr�   r;   ú:443r>   r6   zSe requiere request_queue_idrº   rI  z7No fue posible encontrar registro con request_queue_id=õP   . Verifique que la informaciÃ³n proporcionada es correcta o reporte Ã©ste error.r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   z#get_deployments.<locals>.<listcomp>«  r¹   r0   ©r[   r]   r^   r_   ra   r   r   r`   r   r   rX  ri   rY  Ú_channelÚ_InactiveRpcErrorrÏ   rZ  )	rë   r}   r~   r   Ú
ms_channelr€   r‚   r‡   r„   s	            r1   Úget_deploymentsrª  {  s
  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€EåÔ$­Ð%6Ð%6Ð%6ÀEÐJÑJÔJ€JÝ#Ô:¸:ÑFÔF€Dàð Ýà!Ø9Øðð ñ
ô 
ð 	
õ "Ô8Í#ÈbÉ'Ì'ÐRÑRÔRˆð		Ø×-Ò-¨cÑ2Ô2ˆCˆCøÝŒ}Ô.ð 	ð 	ð 	Ýà%Ý" 1™vœvØðð ñô ð ð ð ð ð ð øøøøð	øøøð Ôð 
Ýà!ð jÐUWð  jð  jð  jØðð ñ
ô 
ð 	
õ àØðð àÔ)ðñ ô ð	
ð 	
ñ	ô 	ð 	ó*   ‘2²6¹6Â;C ÃDÃ%D
ÄDÄ
Dz;/service/daas/deployments/contract/<contracted_services_id>c                 ó¤  — t          dd¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t
          › d�|¬¦  «        }t          j        |¦  «        }| st          ddg dœ¦  «        S t          j
        t          | ¦  «        ¬¦  «        }	 |                     |¦  «        }nA# t          j        j        $ r*}t          dt          |¦  «        g dœ¦  «        cY d }~S d }~ww xY w|j        st          dd	| › d
�g dœ¦  «        S t          ddd„ |j        D ¦   «         dœ¦  «        S )Nr�   r;   r£  r>   r6   z!Se requiere contracted_service_idrº   r”  z<No fue posible encontrar registro con contracted_service_id=r¤  r)   rH   c                 óT   — g | ]%}t          j        t          |d ¬¦  «        ¦  «        ‘Œ&S rµ   r·   rT   s     r1   rW   z+get_deployment_contract.<locals>.<listcomp>å  r¹   r0   r¦  )	r  r}   r~   r   r©  r€   r‚   r‡   r„   s	            r1   Úget_deployment_contractr®  ³  s  € õ 
ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€EåÔ$­Ð%6Ð%6Ð%6ÀEÐJÑJÔJ€JÝ#Ô:¸:ÑFÔF€Dà!ð Ýà!Ø>Øðð ñ
ô 
ð 	
õ "Ô8Ý#&Ð'=Ñ#>Ô#>ð
ñ 
ô 
ˆð		Ø×-Ò-¨cÑ2Ô2ˆCˆCøÝŒ}Ô.ð 	ð 	ð 	Ýà%Ý" 1™vœvØðð ñô ð ð ð ð ð ð øøøøð	øøøð Ôð 
Ýà!ð CÐZpð  Cð  Cð  CØðð ñ
ô 
ð 	
õ àØðð àÔ)ðñ ô ð	
ð 	
ñ	ô 	ð 	r«  r8   c                 óÆ  — t          dd¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        t
          › d�|¬¦  «        }t          j        |¦  «        }t          j	        | ¬¦  «        }| 
                    |¦  «        }|j        s	dd| › d�d	œS |j        d
         }	|	j        }
|
dk    s|
€|
nt          |
¦  «        }
|	j        }|dk    s|
€|nt          |¦  «        }|	j        }|dk    s|
€|nt          |¦  «        }t          j        | |	j        |	j        |
|||	j        |j        |	j        |	j        |	j        |	j        |	j        ¬¦  «        }|                     |¦  «        }|j        j        r<d|j        j        vs.t9          j        |j        j        ¦  «        d
         d         dk    r	dd| › d�d	œS ddd	œS )Nr�   r;   r£  r>   rI  r6   z;No fue posible     encontrar registro con request_queue_id=r¤  r7   r   rH   )rE  r  r   r!  Úsupply_datetimeÚdown_datetimer"  Úservice_status_idÚ	error_logÚidentificatorÚname_appr8   ÚportrR  rS  zENo fue posible actualizar estatus para registro con request_queue_id=u   . Reporte Ã©ste error.r)   uS   Se actualizÃ³ estatus correctamente. Se aplicarÃ¡n los cambios de estatus en breve.)r[   r]   r^   r_   ra   r   r   r`   r   rX  rY  rZ  r!  Úpatch_dateformatr°  r±  r5  r  r   r"  Úvaluer³  r´  rµ  r8   r¶  r8  rÅ   rs   r¸   )rE  r8   r}   r~   r   r©  r€   r‚   r‡   Úrequest_contractÚ
r_datetimeÚ
s_datetimeÚ
d_datetimes                r1   r   r   í  s¯  € Ý	ˆh˜Ñ	Ô	ð  Ø—'’'‘)”)ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô(¨Ñ1Ô1€EåÔ$­Ð%6Ð%6Ð%6ÀEÐJÑJÔJ€JÝ#Ô:¸:ÑFÔF€Då
Ô
4ÐFVÐ
WÑ
WÔ
W€CØ
×
%Ò
% cÑ
*Ô
*€CàÔð 
àð xÐUeð  xð  xð  xð
ð 
ð 	
ð
 Ô'¨Ô*Ðà!Ô2€Jð ˜ÒÐ˜zÐ1ð 	ˆ
å˜jÑ)Ô)ð ð
 "Ô1€Jð ˜ÒÐ˜zÐ1ð 	ˆ
å˜jÑ)Ô)ð ð
 "Ô/€Jð ˜ÒÐ˜zÐ1ð 	ˆ
å˜jÑ)Ô)ð õ Ô
:Ø)Ø/ÔFØ'Ô6Ø#Ø"Ø Ø)Ô:Ø œ,Ø"Ô,Ø&Ô4Ø!Ô*ØÔ&ØÔ"ðñ ô €Cð ×
$Ò
$ SÑ
)Ô
)€Cð ŒLÔ!ð
à˜3œ<Ô0Ð0Ð0ÝŒ:�c”lÔ+Ñ,Ô,¨QÔ/°Ô9¸WÒDÐDð ð HÐ_oð  Hð  Hð  Hð
ð 
ð 	
ð Øhðð ð r    c                 ó¤   — 	 t          j        | d¦  «        } n%# t          $ r t          j        | d¦  «        } Y nw xY w|                      d¦  «        S )Nz%m/%d/%Y %I:%M:%S %pz%d/%m/%Y %H:%M:%Sz%Y-%m-%d %H:%M:%S.%f)r   ÚstrptimeÚ
ValueErrorr7  )Údatetime_strs    r1   r·  r·  5  sj   € ðLÝÔ(¨Ð7MÑNÔNˆˆøÝð Lð Lð LÝÔ(¨Ð7JÑKÔKˆˆˆðLøøøð × Ò Ð!7Ñ8Ô8Ð8s   ‚ ˜:¹:z/services_securityc                  ó
  — t           j        dk    rpt          t           j                             d¦  «        ¦  «        dk    rt           j        d         nd} | dk    r(ddlm} |                     t           t          ¦  «        S d S d S )Nr±   Ú
events_idsr   ÚNOTFOUNDzsrv-apigateway)ÚAxwaySrv)	r   r|  rl   r™   r-  ÚApp.mainrÄ  Úmainr\   )rÂ  Úaxways     r1   Úservices_securityrÈ  >  s‘   € õ „~˜ÒÐõ •7”<×'Ò'¨Ñ5Ô5Ñ6Ô6¸Ò:Ð:õ ŒL˜Ô&Ð&àð 	ð
 Ð)Ò)Ð)Ø2Ð2Ð2Ð2Ð2Ð2à—:’:�g¥xÑ0Ô0Ð0ð Ðð *Ð)r0   z/wsoac                  ó
  — t           j        dk    rpt          t           j                             d¦  «        ¦  «        dk    rt           j        d         nd} | dk    r(ddlm} |                     t           t          ¦  «        S d S d S )Nr�   rÂ  r   rÃ  zsrv-woa)ÚWSOA)	r   r|  rl   r™   r-  rÅ  rÊ  rÆ  r\   )rÂ  Úwsoas     r1   rË  rË  M  s�   € õ „~˜ÒÐõ •7”<×'Ò'¨Ñ5Ô5Ñ6Ô6¸Ò:Ð:õ ŒL˜Ô&Ð&àð 	ð
 ˜Ò"Ð"Ø-Ð-Ð-Ð-Ð-Ð-à—9’9�W¥hÑ/Ô/Ð/ð  Ðð #Ð"r0   z/kmshsmc                  ó
  — t           j        dk    rpt          t           j                             d¦  «        ¦  «        dk    rt           j        d         nd} | dk    r(ddlm} |                     t           t          ¦  «        S d S d S )Nr�   rÂ  r   rÃ  zsrv-fortanix)ÚFortanix)	r   r|  rl   r™   r-  rÅ  rÍ  rÆ  r\   )rÂ  Úfortanixs     r1   rÎ  rÎ  \  s�   € õ „~˜ÒÐõ •7”<×'Ò'¨Ñ5Ô5Ñ6Ô6¸Ò:Ð:õ ŒL˜Ô&Ð&àð 	ð
 ˜Ò'Ð'Ø5Ð5Ð5Ð5Ð5Ð5à—=’=¥­(Ñ3Ô3Ð3ð  Ðð (Ð'r0   z/srvcdn/<path:remaining_path>)r±   r�   rj  rk  ÚPATCHc                 ó`   — ddl m }  |t          t          |¦  «                             ¦   «         S )Nr   )ÚCDN)rÑ  r   r\   rÆ  )rŒ   Úremaining_pathÚcdn_apis      r1   rÓ  rÓ  j  s6   € ð #Ð"Ð"Ð"Ð"Ð"Øˆ7•7�H nÑ5Ô5×:Ò:Ñ<Ô<Ð<r0   z/helloc                 ó   — dS )NzHELLO FROM FLASK r/   )rŒ   s    r1   ÚhellorÕ  r  s
   € ð  Ðr0   )ÚDaaSz/daas)Ú
url_prefix)UrŒ  r   Úenumr   rs   rn   Ú	functoolsr   rt   Úflaskr   r  r^   Ú
kubernetesr   r	   Ú
flask_corsr
   Úsysr%   rd   ÚcorsÚpathÚdirnameÚ__file__r\   ÚjoinÚpath_app_mainrx   Úpath_app_protosÚwerkzeug.securityr   r   r   r   rb   Úgoogle.protobuf.json_formatr   Ú
csharp_daor   r   Úpython_carbonblackmanagerr   r   Úenvironr   r   r   r   ÚSECRET_NAMESPACErŽ  r   rŒ   ÚrouterŸ   r°   r¿   rÆ   rÓ   r×   rÚ   rÝ   rð   r÷   rý   rF  ri  r…  r’  rœ  r¡  rª  r®  r   r·  rÈ  rË  rÎ  rÓ  rÕ  ÚApp.main.DaaSrÖ  ÚdaasÚregister_blueprintÚ	blueprintr/   r0   r1   ú<module>rð     s�  ðØ €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 	€	€	€	Ø €€€à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø 
€
€
€
à€eˆH�o„o€Ø€tˆC˜E I¨sÐ#3Ð4Ð5Ñ5Ô5€àŒ7�?Š?˜8Ñ$Ô$€à”—’˜X zÑ2Ô2€Ø „‡‚�Ñ Ô Ð Ø”'—,’,˜x¨Ñ6Ô6€Ø „‡‚�Ñ  Ô  Ð  à 1Ð 1Ð 1Ð 1Ð 1Ð 1à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 
€
€
€
Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ið
 Œ:�jÔ!€ØŒ:�jÔ!€àŒ:�jÔ!€ØŒ:�jÔ!€à”:˜kÔ*Ð ðB MÐ ðð ð ð ð ˆTñ ô ð ðRð Rð Rðj ‡‚Ð¨&¨€Ñ2Ô2Øð:ð :ñ „ñ 3Ô2ð:ðD ‡‚ˆ: ˜x€Ñ(Ô(ðJð Jñ )Ô(ðJðZ ‡‚Ð¨%¨€Ñ1Ô1àðð ñ „ñ 2Ô1ðð@ ‡‚ˆ;  €Ñ(Ô(ð ðð ñ „ñ )Ô(ðð> ‡‚ˆ8˜e˜W€Ñ%Ô%ð'ð 'ñ	 &Ô%ð'ðT ‡‚Ð¨¨€Ñ0Ô0Øðð ñ „ñ 1Ô0ðð> ‡‚Ð¨¨€Ñ0Ô0Øðð ñ „ñ 1Ô0ðð@ ‡‚Ð¨%¨€Ñ1Ô1Øðð ñ „ñ 2Ô1ððD ‡‚ˆ? V H€Ñ-Ô-ð ðAð Añ „ñ .Ô-ðAðH ‡‚Ð!¨E¨7€Ñ3Ô3ð ðð ñ „ñ 4Ô3ððB ‡‚ˆ: ˜w€Ñ'Ô'ð!ð !ñ (Ô'ð!ðF ‡‚Ð6ÀÀ€ÑIÔIØðq=ð q=ñ „ñ JÔIðq=ðj ‡‚Ð0¸6¸(€ÑCÔCØðB
ð B
ñ „ñ DÔCðB
ðJ ‡‚Ø0Ø,Ð,Ð,ð ñ ô ð ðwð wñ „ñ	ô ð
wðt ‡‚Ð&°°€Ñ8Ô8ØðTð Tñ „ñ 9Ô8ðTðn ‡‚Ð*°U°G€Ñ<Ô<Ø‡‚Ð5À¸w€ÑGÔGØð3ð 3ñ „ñ HÔGñ =Ô<ð3ðl ‡‚Ø-Ø�XÐð ñ ô ð ðð ñ „ñ	ô ð
ð, ‡‚Ø$ØˆGð ñ ô ð ð0ð 0ñ „ñ	ô ð
0ðf ‡‚ØAØˆGð ñ ô ð ð2ð 2ñ „ñ	ô ð
2ðjE°Vð Eð Eð Eð EðP9ð 9ð 9ð ‡‚Ð¨%¨€Ñ1Ô1Øð
1ð 
1ñ „ñ 2Ô1ð
1ð ‡‚ˆ7˜V˜H€Ñ%Ô%Øð
0ð 
0ñ „ñ &Ô%ð
0ð ‡‚ˆ9˜v˜h€Ñ'Ô'Øð
4ð 
4ñ „ñ (Ô'ð
4ð ‡‚Ð*Ð4]Ð4]Ð4]€Ñ^Ô^Øð=ð =ñ „ñ _Ô^ð=ð ‡‚ˆ8˜V U˜O€Ñ,Ô,Øð ð  ñ „ñ -Ô,ð ð Ð Ð Ð Ð Ð Ø€tˆH�h ¨.Ñ9Ô9€Ø × Ò �t”~°'Ð Ñ :Ô :Ð :Ð :Ð :r0   