Problema al sincronizar fotos con Kolla

Buen dia, al momento de correr el comando importar_fotos las fotos se importan bien en g3w pero no en kolla, el mensaje que devuelve es:

  [GuzzleHttp\Exception\ClientException]                                                                                                                          
  Client error response [url] https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/masivo?unidad_gestion=FIO [status code] 400 [reason phrase] Bad Request  

la vinculacion con kolla funciona, ya que las encuestas se generan correctamente. En los logs no encuentro nada acerca del error.

Desde ya gracias
Marcelo

guarani 2.9.4
kolla 4.0.1

Buen día Marcelo,
podrás enviarnos los logs de kolla del momento en el que corren esa operación, incluyendo los que se encuentran en la carpeta “…/instalacion/i__produccion/p__kolla/logs” y se llaman web_services.log
y también fijarte si aparece algo en el log de errores de Apache.
Saludos

2

Hola, agrego a lo de Clara:

¿que ocurre si intentan ingresar a dicha URL?
https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/masivo?unidad_gestion=FIO
¿que les muestra luego de introducir las credenciales?

400 Bad Request por lo general se debe a que se paso mal algún parámetro.
Podes ir a la función execute del archivo /src/siu/util/consola/comandos/importar_fotos.php, y antes de que se invoque el Web Service de Kolla haces var_dump($elementos_rest);, seria:


	    var_dump($elementos_rest);
            $response = self::get_cliente_rest()
                ->put('elementos/masivo',
                    array(
                        'query' => array('unidad_gestion' => self::get_unidad_gestion()),
                        'body'  => rest_encode($elementos_rest)
                    )
                );

En dicho var_dump($elementos_rest); están los datos que se le pasan a Kolla.

saludos.
2

Hola

Hay que ver que mensaje viene en la descripción del error, pero también puede ser alguna falla en la configuración de sistemas externos

Acá hay un foro similar

Saludos

Buen dia, yo no administro el servidor de Kolla, cuando hemos hecho pruebas el administrador de kolla me dijo que no encontraba logs de mi operacion.
Ahora voy a realizar una nueva importacion y les pido especificamente los que vos me decis.

Leonel:
Al acceder a la direccion https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/masivo?unidad_gestion=FIO el navegador muestra esto:

{
    "error": 404,
    "mensaje": "404 Not Found",
    "descripcion": "El elemento no existe"
}

Ese error significa que no existe el servicio web en kolla??

Estoy importando 2 fotos y el var_dump muestra eso:

array(2) {
  [0] =>
  array(2) {
    'elemento' =>
    string(3) "168"
    'url_img' =>
    string(118) "mediana/bc6dc48b743dc5d013b1abaebd2faed2/bc6dc48b743dc5d013b1abaebd2faed2_f45f0a5f74dbf7905e548eebc2f17d8f131e2130.jpg"
  }
  [1] =>
  array(2) {
    'elemento' =>
    string(3) "221"
    'url_img' =>
    string(118) "mediana/045117b0e0a11a242b9765e79cbf113f/045117b0e0a11a242b9765e79cbf113f_b927c626a903774c9689f60054cefeee07821c88.jpg"
  }
}

y las imagenes SI existen en la ruta /src/siu/www/_comp/_img_alumnos

Despues de la llamada $response = self::get_cliente_rest() el codigo se interrumpe y NO ejecuta la siguiente instruccion: if($response->getStatusCode() != 204){

Hola Marcelo,

Parecería que hay un error en url_img, ya que se le esta pasando una URL relativa de Guaraní.

¿Que ocurre si lo probas el Web Service?
Deberías hacer una petición PUT a https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/masivo?unidad_gestion=FIO, y en el body le pasas este JSON:


[
  {
    "elemento":"168",
    "url_img": "mediana/bc6dc48b743dc5d013b1abaebd2faed2/bc6dc48b743dc5d013b1abaebd2faed2_f45f0a5f74dbf7905e548eebc2f17d8f131e2130.jpg"
  },
  {
    "elemento":"221",
    "url_img": "mediana/045117b0e0a11a242b9765e79cbf113f/045117b0e0a11a242b9765e79cbf113f_b927c626a903774c9689f60054cefeee07821c88.jpg"
  }
]

No recuerdo si Kolla conoce la URL base de Guaraní y se la antepone a dicha “url_img”?

saludos.
2

Leonel, haciendo un PUT al webservice devuelve “400 Bad Request” con este body:

{
    "errores": [
        {
            "indice": 0,
            "error": "Error en la validación del recurso",
            "detalle": {
                "descripcion": [
                    "El campo 'descripcion' es obligatoio."
                ]
            }
        },
        {
            "indice": 1,
            "error": "Error en la validación del recurso",
            "detalle": {
                "descripcion": [
                    "El campo 'descripcion' es obligatoio."
                ]
            }
        }
    ]
}

Hola Marcelo,

Parece que ademas “elemento” y “url_img”, también pide el campo “descripcion”.

La compatibilidad de los sistemas parece estar bien (Guaraní 2.9.4
con Kolla 4.0.1): http://portalguarani.siu.edu.ar/trac/Portal-G3/wiki/G2/Versiones

¿sera que esos elementos no pertenecen la unidad_gestion=FIO?

saludos.
2

Hola Marcelo,

¿existen los elementos?
https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/168?unidad_gestion=FIO
https://kolla4.rec.unicen.edu.ar/v400/kolla/rest/elementos/221?unidad_gestion=FIO

Igual por lo que veo la “descripcion” es obligatoria, probemos con el siguiente cambio:

En la función get_elementos_por_persona de la clase src/siu/util/consola/comandos/importar_fotos.php agregar una nueva columna:


    protected function get_elementos_por_persona($nro_inscripcion)
    {
        $nro_inscripcion = kernel::db()->quote($nro_inscripcion);

        $sql = "
                SELECT e.elemento, p.id_imagen,
				   e.descripcion
                FROM sga_personas AS p
                JOIN sga_docentes AS d ON (p.nro_inscripcion=d.nro_inscripcion AND p.unidad_academica = d.unidad_academica)
                JOIN gde_elemento AS e ON (e.legajo_docente=d.legajo)
                WHERE p.nro_inscripcion = {$nro_inscripcion}
                AND p.id_imagen IS NOT NULL
                AND e.tipo_elemento = 4
            ";

        return kernel::db()->consultar($sql, db::FETCH_ASSOC);
    }

Luego en la función execute agregar:


            foreach($elementos as $elemento){
                $elementos_rest[] = array(
                    "elemento" => $elemento['ELEMENTO'],
                    "url_img" => alumno_foto::url_imagen_relativa_kolla($elemento['ID_IMAGEN']),
                    "descripcion" => $elemento['DESCRIPCION']
                );
            }

saludos.
2

Bueno solucionado!!! era eso al final, estaba esperando tambien el campo “descripcion”

0 de 2 fotos procesadas...
Sincronizando fotos con Kolla...
Sincronizaci�n con Kolla exitosa...
Proceso finalizado

que raro, yo inclusive habia probado convertir una base a 2.9.5 y hacer la importacion con el g3w actualizado, pero daba el mismo error…

Bueno, muchas gracias Leonel, y tambien a todos los que contestaron
Marcelo

Hola Marcelo,

Te quería avisar que ya arreglamos dicho bug, hicimos un parche a todos los nodos de COLAB en las versiones 2.9.4 y 2.9.5.

En tu nodo seria:
2.9.4: https://colab.siu.edu.ar/trac/guarani2/changeset/5415/
2.9.5: https://colab.siu.edu.ar/trac/guarani2/changeset/5487/

Si haces “svn up” ya vas a tener el cambio.

saludos.
2