Error Guarani Huarpe

Buenos dias:
Pasamos esta semana a G 3.21.0 y estamos teniendo problemas cuando vamos a la operacion Administar personas – Acceso al Sistema. Queda sin conectarse a Huarpe. Esto en la version 3.20.2 funcionaba sin problemas y no hicimos ninguna personalizacion.
El error que tira es:
[ERROR][guarani] Error al verificar la conexión con SIU-Araí Documentos:
[ERROR][guarani] Server error: GET https://huarpe.unp.edu.ar/docs/rest/backend/status resulted in a 504 Gateway Time-out response:

504 Gateway Time-out

504 Gateway Time-out

< (truncated...)

[ERROR][toba] guarani_error: Ocurrió un error de conexión con SIU-Araí Documentos.

Y no carga. Cambio algo ademas de agregar la version en el archivo arai_documentos.ini?
Saludos y gracias por todo

Hola Rodrigo,

A partir de la version de Guaraní 3.21.0 en el archivo instalacion/arai_documentos.ini tenes que agregar la directiva version, ej:


host_arai = "https://huarpe.unp.edu.ar/docs"
usr_arai = "xxx"
pass_arai = "xxx"
version = "1.3.4"

También se debe utilizar SIU-Araí Documentos a una versión mayor o igual a 1.3.0.

Ver Principales novedades técnicas de Guaraní 3.21.0.

¿que te devuelve si queres acceder a los siguientes Web Services (te va a pedir las credenciales del archivo instalacion/arai_documentos.ini )?
https://huarpe.unp.edu.ar/docs/rest/backend/info
https://huarpe.unp.edu.ar/docs/rest/backend/status

saludos.
2

Hola Leonel:

Gracias por tu respuesta. Te cuento en Huarpe estamos en la version 1.3.4.
El archivo esta arai_documento. ini esta con las cuatro entradas.
En cuento a:
https://huarpe.unp.edu.ar/docs/rest/backend/info
Me devuelve:
{
“version”: “1.3.4”,
“nombre”: “Documentos-Backend”,
“api”: “1.3”,
“api_major”: “1”,
“api_minor”: “3”
}

Y
https://huarpe.unp.edu.ar/docs/rest/backend/status
Tarda bastante y devuelve:
{
“db”: {
“connected”: “true”,
“version”: 110,
“descripcion”: “Version 1.1.0”
},
“userProvider”: {
“connected”: “true”,
“descripcion”: “La conexi\u00f3n con Arai-Usuarios se realizo correctamente. Obtenido 4728 usuario/s”
}
}Saludos

Leonel:
Creo que nosotros teniamos un parche que nos habian pasado uds, para usar un cambo autocompletado para que no traiga todos los usuario de huarpe.
Saludos

Claro Rodrigo,

Vos te referís al hotfix que le aplicamos en la version 3.19.1 revisión 57500. Pero dichas correcciones ya salieron en la versión 3.21.0 con el ticket 42480, con lo cual ya no necesitas dicho hotfix.

Foro de referencia: https://foro.comunidad.siu.edu.ar/index.php?topic=23225.0

Proba si desde el servidor de Guaraní Gestión podes acceder a Araí documentos probando con curl:

curl  --anyauth --user [auth_usuario]:[auth_password] -k -v https://huarpe.unp.edu.ar/docs/rest/backend/status

saludos.
2

Buenos dias:
si parece que todo esta bien. Se conecta:

  • Connected to huarpe.unp.edu.ar (170.210.88.21) port 443 (#0)
  • ALPN, offering h2
  • ALPN, offering http/1.1
  • successfully set certificate verify locations:

Pero al final tira esto:

504 Gateway Time-out

504 Gateway Time-out


nginx/1.10.3

Por lo que veo es que tarda mucho y se corta. Es como si tratara de traer todos los usuarios y no le alcanza el tiempo.
Saludos

Hola Rodrigo,

El error que tira es: [ERROR][guarani] Error al verificar la conexión con SIU-Araí Documentos: [ERROR][guarani] Server error: `GET https://huarpe.unp.edu.ar/docs/rest/backend/status` resulted in a `504 Gateway Time-out` response: 504 Gateway Time-out

504 Gateway Time-out

< (truncated...)

El error lo esta dando en el endpoint status ¿pasame la respuesta completa del curl?
Dicho endpoint se utiliza en la función endpoint de php/nucleo/arai/arai_documentos_nucleo.php para verificar si la conexión con Araí Documentos funciona bien.

Si probas el siguiente curl que te responde:

curl  --anyauth --user [auth_usuario]:[auth_password] -k -v https://huarpe.unp.edu.ar/docs/rest/backend/info

saludos.
4

Hola Leonel:
Dale, te paso todo. Va el primero curl:

  • Trying 170.210.88.21:443…
  • Connected to huarpe.unp.edu.ar (170.210.88.21) port 443 (#0)
  • ALPN, offering h2
  • ALPN, offering http/1.1
  • successfully set certificate verify locations:
  • CAfile: /etc/ssl/certs/ca-certificates.crt
  • CApath: /etc/ssl/certs
  • TLSv1.3 (OUT), TLS handshake, Client hello (1):
  • TLSv1.3 (IN), TLS handshake, Server hello (2):
  • TLSv1.2 (IN), TLS handshake, Certificate (11):
  • TLSv1.2 (IN), TLS handshake, Server key exchange (12):
  • TLSv1.2 (IN), TLS handshake, Server finished (14):
  • TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
  • TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
  • TLSv1.2 (OUT), TLS handshake, Finished (20):
  • TLSv1.2 (IN), TLS handshake, Finished (20):
  • SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
  • ALPN, server accepted to use http/1.1
  • Server certificate:
  • subject: CN=*.unp.edu.ar
  • start date: Mar 31 00:00:00 2022 GMT
  • expire date: May 1 23:59:59 2023 GMT
  • issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
  • SSL certificate verify ok.

GET /docs/rest/backend/status HTTP/1.1
Host: huarpe.unp.edu.ar
User-Agent: curl/7.74.0
Accept: /

  • Mark bundle as not supporting multiuse
    < HTTP/1.1 401 Unauthorized
    < Server: nginx/1.10.3
    < Date: Fri, 06 Jan 2023 11:01:30 GMT
    < Content-Type: application/json
    < Content-Length: 49
    < Connection: keep-alive
    < Api-Version: 1.3
    < Content-Security-Policy: upgrade-insecure-requests
    < Strict-Transport-Security: max-age=315360000; includeSubDomains
    < Www-Authenticate: Basic realm=“Usuario de la API”
    < X-Frame-Options: DENY
    <
  • Ignoring the response-body
  • Connection #0 to host huarpe.unp.edu.ar left intact
  • Issue another request to this URL: ‘https://huarpe.unp.edu.ar/docs/rest/backend/status
  • Found bundle for host huarpe.unp.edu.ar: 0x55dadb4e8510 [serially]
  • Can not multiplex, even if we wanted to!
  • Re-using existing connection! (#0) with host huarpe.unp.edu.ar
  • Connected to huarpe.unp.edu.ar (170.210.88.21) port 443 (#0)
  • Server auth using Basic with user ‘documentos’

GET /docs/rest/backend/status HTTP/1.1
Host: huarpe.unp.edu.ar
Authorization: Basic ZG9jdW1lbnRvczpkb2NzMTIz
User-Agent: curl/7.74.0
Accept: /

  • Mark bundle as not supporting multiuse
    < HTTP/1.1 504 Gateway Time-out
    < Server: nginx/1.10.3
    < Date: Fri, 06 Jan 2023 11:02:30 GMT
    < Content-Type: text/html
    < Content-Length: 183
    < Connection: keep-alive
    <
504 Gateway Time-out

504 Gateway Time-out


nginx/1.10.3 * Connection #0 to host huarpe.unp.edu.ar left intact

Esto da el segundo que me mandaste:

  • Trying 170.210.88.21:443…
  • Connected to huarpe.unp.edu.ar (170.210.88.21) port 443 (#0)
  • ALPN, offering h2
  • ALPN, offering http/1.1
  • successfully set certificate verify locations:
  • CAfile: /etc/ssl/certs/ca-certificates.crt
  • CApath: /etc/ssl/certs
  • TLSv1.3 (OUT), TLS handshake, Client hello (1):
  • TLSv1.3 (IN), TLS handshake, Server hello (2):
  • TLSv1.2 (IN), TLS handshake, Certificate (11):
  • TLSv1.2 (IN), TLS handshake, Server key exchange (12):
  • TLSv1.2 (IN), TLS handshake, Server finished (14):
  • TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
  • TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
  • TLSv1.2 (OUT), TLS handshake, Finished (20):
  • TLSv1.2 (IN), TLS handshake, Finished (20):
  • SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
  • ALPN, server accepted to use http/1.1
  • Server certificate:
  • subject: CN=*.unp.edu.ar
  • start date: Mar 31 00:00:00 2022 GMT
  • expire date: May 1 23:59:59 2023 GMT
  • issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
  • SSL certificate verify ok.

GET /docs/rest/backend/info HTTP/1.1
Host: huarpe.unp.edu.ar
User-Agent: curl/7.74.0
Accept: /

  • Mark bundle as not supporting multiuse
    < HTTP/1.1 401 Unauthorized
    < Server: nginx/1.10.3
    < Date: Fri, 06 Jan 2023 13:11:23 GMT
    < Content-Type: application/json
    < Content-Length: 49
    < Connection: keep-alive
    < Api-Version: 1.3
    < Content-Security-Policy: upgrade-insecure-requests
    < Strict-Transport-Security: max-age=315360000; includeSubDomains
    < Www-Authenticate: Basic realm=“Usuario de la API”
    < X-Frame-Options: DENY
    <
  • Ignoring the response-body
  • Connection #0 to host huarpe.unp.edu.ar left intact
  • Issue another request to this URL: ‘https://huarpe.unp.edu.ar/docs/rest/backend/info
  • Found bundle for host huarpe.unp.edu.ar: 0x5609b83caac0 [serially]
  • Can not multiplex, even if we wanted to!
  • Re-using existing connection! (#0) with host huarpe.unp.edu.ar
  • Connected to huarpe.unp.edu.ar (170.210.88.21) port 443 (#0)
  • Server auth using Basic with user ‘documentos’

GET /docs/rest/backend/info HTTP/1.1
Host: huarpe.unp.edu.ar
Authorization: Basic ZG9jdW1lbnRvczpkb2NzMTIz
User-Agent: curl/7.74.0
Accept: /

  • Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    < Server: nginx/1.10.3
    < Date: Fri, 06 Jan 2023 13:11:23 GMT
    < Content-Type: application/json
    < Content-Length: 124
    < Connection: keep-alive
    < Api-Version: 1.3
    < Content-Security-Policy: upgrade-insecure-requests
    < Strict-Transport-Security: max-age=315360000; includeSubDomains
    < X-Frame-Options: DENY
    <
    {
    “version”: “1.3.4”,
    “nombre”: “Documentos-Backend”,
    “api”: “1.3”,
    “api_major”: “1”,
    “api_minor”: “3”
  • Connection #0 to host huarpe.unp.edu.ar left intact

Saludos

Hola Rodrigo,

Veo que funciona bien el endpoint info, pero no el status.

El status verifica dos cosas:

  1. Conexión y versión de la base de datos.
  2. Conexión a la API de Araí Usuarios (ya que el endpoint GET /usuarios es un atajo al endpoint GET /usuarios de la API de Araí Usuarios). Quizas falle la conexión entre Araí Documentos y Araí Usuarios.
    ¿como tenes configurado el archivo config/parameters.yml de Araí Documentos, específicamente la sección proveedor_usuarios?

¿que ocurre si haces un curl desde el servidor de Araí Documentos hacia el de Araí Usuarios?

curl  --anyauth --user [auth_usuario]:[auth_password] -k -v http://<URL-ARAI-USUARIOS>/api/v1/info

saludos.
2

Hola Leonel:
Perdon que no te conteste rapido, pero no estoy a cargo del huarpe y el encargado esta de vacaciones, asi que encontrarlo es complicado ya que no esta en la zona.
En el archivo parameters.yml la seccion esta asi:
proveedor_usuarios:
class: \SIU\DocsApi\Security\UserProviderArai
params: {base_uri:‘usuarios-api/api/v1/usuarios’,method:‘basic’,user:‘documentos’,password:‘documentos123’}
cache_time: 24
lo de curl:
Si le ponen la url completa, https://huarpe.unp.edu.ar… da error de conexion, no llega (arai-documentos y usuarios estan en el mismo servidor). Vemos que se quiere conectar a una ip que no usamos. Vamos a ver esto con la gente de redes, si es algo nuestro o de ellos.
Pero si cambian por https://localhost/usuarios/api/v1/info llega sin problemas.
Saludos

Saludos

Hola Rodrigo,

La configuración en el archivo config/parameters.yml parece estar bien, yo tengo así:


    proveedor_usuarios:
        class: \SIU\DocsApi\Security\UserProviderArai
        params: {base_uri:'http://siu:8286/didevelop/usuarios/rest/', method:'basic', user:'documentos', password:'documentos'}
        cache_time: 24

¿están utilizando un ambiente dockerizado? ¿los contenedores de Araí documentos y Araí Usuarios están en la misma red?

Pero si cambian por https://localhost/usuarios/api/v1/info llega sin problemas.
Pueden configurar de esa forma en el archivo [b]config/parameters.yml[/b] de Araí documentos para que pueda recuperar los usuarios.

saludos.
2

Hola Leonel:
Los docker estan en la misma red por lo que tengo entendido. Como te comentaba no estoy a cargo del huarpe por lo que no conozco a fondo como esta todo configurado.
Veremos de probar lo que me dices, pero hasta que no venga el encargado no creo que toquemos nada, ya que no se que puede pasar con el resto de los sistemas.
Lo raro de esto es que en al version 3.20 de guarani funcionaba todo sin problemas y empezo en la 3.21 a fallar. De Huarpe no se toco nada.
Lo iremos siguiendo y sino le armo un gds.
Saludos

Hola Rodrigo,

Te comento que estoy teniendo un problema similar en mi ambiente local, lo estamos viendo con el equipo de Araí.

El problema no es de Guaraní, sino de conexión de Araí Documentos hacia Araí Usuarios.

¿que versiones de Araí tenes instaladas? lo podes ver llamando a los servicios GET /info:
Yo tengo Araí Documentos:


{
  "version": "1.4.0",
  "nombre": "Documentos-Backend",
  "api": "1.3",
  "api_major": "1",
  "api_minor": "3"
}

Araí Usuarios:


[
  {
    "nombre": "Arai-Usuarios",
    "version": "v3.2.0",
    "api_version": "1.1",
    "api_major": 1,
    "api_minor": 1
  }
]

¿como hicieron la instalación de Araí?

Siguiendo este post podemos ver porque los contenedores no se pueden comunicar:

  1. ¿los contenedores comparten la misma red?
docker inspect -f '{{range $key, $value := .NetworkSettings.Networks}}{{$key}} {{end}}' [container]

ej:
Redes del contenedor de Araí Documentos:


docker inspect -f '{{range $key, $value := .NetworkSettings.Networks}}{{$key}} {{end}}' siu_documentos_dev
siu_net siu_proxy_net

Redes del contenedor de Araí Usuarios:


docker inspect -f '{{range $key, $value := .NetworkSettings.Networks}}{{$key}} {{end}}' siu_usuarios_dev
siu_net siu_proxy_net

Contenedores que pertenecen a una red:

docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' [network]

ej:
Contenedores de la red siu_net:

docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' siu_net
siu_guarani_dev_pre siu_pg_arai_dev siu_huarpe_dev siu_guarani_dev_3w siu_memcached siu_registry_dev siu_documentos_worker_dev siu_usuarios_dev siu_guarani_dev siu_documentos_dev siu_guarani_dev_pg siu_ldap_dev

Contenedores de la red siu_proxy_net:

docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' siu_proxy_net
siu_guarani_dev_pre siu_huarpe_dev siu_guarani_dev_3w siu_usuarios_dev siu_guarani_dev siu_documentos_dev siu_traefik_proxy

Para ver si los contenedores se pueden comunicar podes hacer:

docker exec [containerA] ping [containerB] -c2

Ej: De Araí Documentos hacia Araí Usuarios


docker exec siu_documentos_dev ping siu_usuarios_dev -c2
PING siu_usuarios_dev (172.20.0.6): 56 data bytes
64 bytes from 172.20.0.6: seq=0 ttl=64 time=0.119 ms
64 bytes from 172.20.0.6: seq=1 ttl=64 time=0.221 ms

--- siu_usuarios_dev ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.119/0.170/0.221 ms

Viceversa:


docker exec siu_usuarios_dev ping siu_documentos_dev -c2
PING siu_documentos_dev (172.20.0.7): 56 data bytes
64 bytes from 172.20.0.7: seq=0 ttl=64 time=0.063 ms
64 bytes from 172.20.0.7: seq=1 ttl=64 time=0.155 ms

--- siu_documentos_dev ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.063/0.109/0.155 ms

saludos.
2

¿Desde Huarpe podes acceder a Autorizar documentos => Mis pendientes y Autorizar documentos => Enviados por mí?

Saludos.
4

Hola Leonel:
Como te contaba esta el adminsitrador de huarpe de vacaciones y no pudimos hacer lo del mensaje anterior.
Sin embargo me paso el usuario y contraseña para entrar a huarpe y eso de autorizar documentos, entro pero no tengo documentos para autorizar. Todavia no hemos puesto esto en funcionamiento.
Saludos

Perfecto Rodrigo,

Mientras te permita iniciar sesión en Huarpe y no te muestre ningún error quiere decir que se puede conectar bien a documentos y usuarios.

El problema entonces parece ser de conexión entre documentos a usuarios, el tema es que los endpoints GET /status y GET /usuarios de documentos invocan a endpoints de la API de usuarios.

Modificar el archivo config/parameters.yml de documentos puede solucionar el problema:


    proveedor_usuarios:
        class: \SIU\DocsApi\Security\UserProviderArai
        params: {base_uri:'https://localhost/usuarios/api/v1/', method:'basic', user:'documentos', password:'documentos'}
        cache_time: 24

Si usas un ambiente dockerizado también podes poner el nombre del contenedor de traefik, ej: https://siu_traefik_proxy/usuarios/api/v1/

¿Desde Guarani Gestión operación » Matrícula » Personas » Administrar Personas ahora te trae los usuarios en la solapa Acceso al sistema?

¿la API de Araí Usuarios la accedes con https://huarpe.unp.edu.ar/usuarios/api/v1/ o con https://huarpe.unp.edu.ar/api-usuarios/v1/?

saludos.
2

Hola Rodrigo,

Lo pude solucionar siguiendo estos hilos:
https://stackoverflow.com/questions/46916796/connect-to-docker-daemon-from-inside-docker-container
https://stackoverflow.com/questions/73611018/connection-timed-out-between-docker-containers

Ejecute sudo ufw disable y los contenedores ahora se comunican entre si.

Issue: https://gitlab.siu.edu.ar/siu/soporte/-/issues/285

saludos.
2

Hola Leonel:
Gracias, lo probamos cuando venga el administrador de huarpe y cualquier cosa te avisamos.
Saludos a todos por alla!

Buenos días Leonel, voy contando lo que intentamos hacer:

            Tratamos de correr el ufw disable y resultó que no encontró instalado el paquete ufw (lo corrí en el servidor debian que tiene docker swarm), luego lo instalé y corrí el comando, con el mismo resultado de que no puede mostrar el status.
            Luego, particularmente yo no entendía donde estaba config/parameters.yml de documentos, interpreté que esto se cambia en en el archivo que genera los secrets, ahí cambié la base_uri para acceder a la api de araí-usuarios por parte de araí-documentos en un servidor de testing. Quedó así:
            base_uri:'https://test-huarpe.unp.edu.ar/api-usuarios/v1/usuarios'
            
            Luego de correr el curl:
                 curl  --anyauth --user usuario:clave -k -v https://test-huarpe.unp.edu.ar/docs/rest/backend/status, da el siguiente resultado.

{
“db”: {
“connected”: “true”,
“version”: 110,
“descripcion”: “Version 1.1.0”
},
“userProvider”: {
“connected”: “false”,
“error”: 500,
“descripcion”: “Error inesperado en Request. Server error: GET https:\/\/test-huarpe.unp.edu.ar\/api-usuarios\/v1\/usuarios?nombre=contiene;a resulted in a 500 Internal Server Error response”

En la api de araí-usuarios se puede ver este error:
usuarios_api.1.941nxpdfg3uw@arai-test.unp.edu.ar | 10.0.1.2 - documentos [10/Feb/2023:10:57:15 -0300] “GET /api/v1/usuarios?email=contiene;a HTTP/1.1” 200 578570
usuarios_api.1.941nxpdfg3uw@arai-test.unp.edu.ar | 10.0.1.2 - documentos [10/Feb/2023:10:58:40 -0300] “GET /api/v1/usuarios?identificador=es_igual_a;a HTTP/1.1” 200 2
usuarios_api.1.941nxpdfg3uw@arai-test.unp.edu.ar | [Fri Feb 10 10:58:49.750930 2023] [php7:error] [pid 12] [client 10.0.1.2:36464] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/app/core/src/SIU/AraiUsuarios/Drivers/Ldap.php on line 1292
usuarios_api.1.941nxpdfg3uw@arai-test.unp.edu.ar | 10.0.1.2 - documentos [10/Feb/2023:10:58:40 -0300] “GET /api/v1/usuarios?nombre=contiene;a HTTP/1.1” 500 -

Esto se puede deber a que ese equipo tiene recursos más limitados que el servidor de producción, pero de todas formas pareciera pedirle a araí usuarios algún listado de usuarios digamos grande. Podrá ser? Esa base de usuarios en testing tiene unos usuarios:
Activos: 1752
Bloqueados: 4028
Totales: 5780

Saludos,
Marcelo.

Hola Marcelo,

El error es otro, antes daba timeout porque Araí Documentos no se podía conectar a Araí Usuarios.


Server error: `GET https://huarpe.unp.edu.ar/docs/rest/backend/status` resulted in a `504 Gateway Time-out` response

Ahora el error es otro:


Error inesperado en Request. Server error: `GET https:\/\/test-huarpe.unp.edu.ar\/api-usuarios\/v1\/usuarios?nombre=contiene;a` resulted in a `500 Internal Server Error` response

¿que pasa si abrís esta URL en un navegador e ingresas las credenciales https://test-huarpe.unp.edu.ar/api-usuarios/v1/usuarios?nombre=contiene;a? ¿te da 500 Internal Server Error?

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/app/core/src/SIU/AraiUsuarios/Drivers/Ldap.php on line 1292

Para mi el problema es que el filtro es muy abarcativo y trae demasiados registros, estas buscando todos los usuarios de Araí cuyo nombre contenga la letra ‘a’, los cuales deben ser muchos, ¿que ocurre si probas con un filtro mas acotado?

https://test-huarpe.unp.edu.ar/api-usuarios/v1/usuarios?nombre=contiene;marce

Por lo general en los “autocomplete” de búsqueda tenes que tipear un mínimo de tres letras para que haga dicha búsqueda, porque pasa que con solo una letra trae demasiados registros y se rompe.

saludos.
2