Página 1 de 2

[RESUELTO] Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 11 de agosto de 2022 - 10:18
por jlatieule
Hola,


he realizado cuatro intentos, todos con el mismo resultado. En cada ocasión, me veo obligado a restaurar el servidor a la instantánea anterior.
Estoy intentando actualizar desde la última versión Community a Discovery 2.2.

Todo parece funcionar correctamente, pero después de la actualización, ya no es posible autenticarse en la consola con la cuenta "admin".
He probado varias combinaciones:
- Postconfiguración: actualización de contraseña o sin actualización (para mantener la anterior).
- Actualización de la consola: con desinstalación completa o todo automatizado por el instalador de Windows.

WAPT está instalado en Debian 10.

¿Cómo puedo recuperar el control de la consola?

Atentamente

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 11 de agosto de 2022 - 14:23
por jlatieule
Acabo de intentar importar la base de datos PostgreSQL del servidor antiguo que estoy intentando actualizar con una instalación nueva.

Simplemente cargando la base de datos con la misma versión de WAPT, ya no es posible conectarse a la nueva instalación.

Probablemente ahí radica el problema.

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 12 de agosto de 2022 - 16:00
por sfonteneau
¿Puede proporcionar el número de versión de la base de datos disponible en la interfaz web?

Puedes probar una:

Código: Seleccionar todo

sudo -u wapt /opt/wapt/waptpython.sh

Código: Seleccionar todo

from waptserver.config import load_config
from waptserver.model import *
conf = waptserver.config.load_config('/opt/wapt/conf/waptserver.ini')
load_db_config(conf)
create_default_users(conf)
quit()
Esto le permite volver a crear la cuenta de administrador con las ACL si no es una cuenta de administrador

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 12 de agosto de 2022 - 16:36
por jlatieule
Hola Simon, me alegro de verte aquí después de todos estos años en las TIC ;-)

A continuación se muestra la retroalimentación solicitada:
Estado base: OK (2.2.5.2)

Y después de ejecutar el código Python, aparece este mensaje de error:

Código: Seleccionar todo

administrateur@serv-wapt:~$ sudo -u wapt /opt/wapt/waptpython.sh
[sudo] password for administrateur: 
Python 3.8.13 (default, May 23 2022, 11:25:12) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from waptserver.config import load_config
>>> from waptserver.model import *
>>> conf = waptserver.config.load_config('/opt/wapt/conf/waptserver.ini')
>>> load_db_config(conf)
<playhouse.pool.PooledPostgresqlExtDatabase object at 0x7f7bb20678e0>
>>> create_default_users(conf)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/wapt/waptserver/model.py", line 1246, in create_default_users
    if created or not admin_acls.acls.get('admin'):
AttributeError: 'NoneType' object has no attribute 'get'
>>> quit()
Entonces todavía tengo este problema de autenticación en la consola ;-/

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 17 de agosto de 2022 - 10:15
por sfonteneau
jlatieule escribió: 12 de agosto de 2022 - 16:36 Hola Simon, me alegra verte por aquí después de tantos años en el sector de las TIC. ;-)
Todavía aquí ;)

Está bien, la base de datos está bloqueada en 2.2.5.2

El problema, por tanto, radica en el cambio de la versión 2.2.5.2 a la 2.2.6.0

En la última versión de wapt, la base es 2.2.6.1


El código es feo aquí porque en la línea 3083 de model.py tenemos:

Código: Seleccionar todo

    
    finally:
        pass
 
Así que es poco probable que veamos el error...

Puede reemplazar el código en model.py en la línea 3083 con:

Código: Seleccionar todo

    except:
        import traceback
        print(traceback.format_exc())

    finally:
        pass



Entonces puedes probar esto:

Código: Seleccionar todo

sudo -u wapt /opt/wapt/waptpython.sh

Código: Seleccionar todo

from waptserver.config import load_config
from waptserver.model import *
conf = waptserver.config.load_config('/opt/wapt/conf/waptserver.ini')
load_db_config(conf)
upgrade_db_structure(conf)
Al menos veremos algo

Además, ¿qué versión de PostgreSQL tienes instalada?

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 17 de agosto de 2022 - 12:42
por jlatieule
De hecho, podemos ver más información.

Respecto a la versión de PostgreSQL:
postgres (PostgreSQL) 11.17 (Debian 11.17-0+deb10u1)
y el regreso de la actualización:

Código: Seleccionar todo

>>> from waptserver.config import load_config
>>> from waptserver.model import *
>>> conf = waptserver.config.load_config('/opt/wapt/conf/waptserver.ini')
>>> load_db_config(conf)
<playhouse.pool.PooledPostgresqlExtDatabase object at 0x7fc32e401940>
>>> upgrade_db_structure(conf)
Traceback (most recent call last):
  File "/opt/wapt/lib/python3.8/site-packages/peewee.py", line 3144, in execute_sql
    cursor.execute(sql, params or ())
psycopg2.errors.UndefinedFunction: function is_valid_jsonb(jsonb) does not exist
LINE 1: ...set value = to_jsonb(value::text)::text where not is_valid_j...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/wapt/waptserver/model.py", line 2987, in upgrade_db_structure
    wapt_db.execute_sql("""update hostauditdata set value = to_jsonb(value::text)::text where not is_valid_jsonb(value) and not is_valid_jsonb(replace(value,'''','"'));""")
  File "/opt/wapt/lib/python3.8/site-packages/peewee.py", line 3151, in execute_sql
    self.commit()
  File "/opt/wapt/lib/python3.8/site-packages/peewee.py", line 2917, in __exit__
    reraise(new_type, new_type(exc_value, *exc_args), traceback)
  File "/opt/wapt/lib/python3.8/site-packages/peewee.py", line 190, in reraise
    raise value.with_traceback(tb)
  File "/opt/wapt/lib/python3.8/site-packages/peewee.py", line 3144, in execute_sql
    cursor.execute(sql, params or ())
peewee.ProgrammingError: function is_valid_jsonb(jsonb) does not exist
LINE 1: ...set value = to_jsonb(value::text)::text where not is_valid_j...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 17 de agosto de 2022 - 15:36
por sfonteneau
De acuerdo, hemos identificado el problema.

Veré si puedo lanzar una versión de desarrollo nocturna hoy mismo.

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 17 de agosto de 2022 - 15:44
por jlatieule
Genial, logré reportar un error

. ¿Necesito restaurar la versión 1.8.2 y volver a actualizar, o tendré que ejecutar un comando?

Re: Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 18 de agosto de 2022 - 18:01
por sfonteneau
Normalmente, una simple actualización será suficiente; la base de datos migrará correctamente con el nuevo código. ¿

Podrías probar con este?

https://wapt.tranquil.it/wapt/nightly/w ... 5-3fd94bd1

Simon

Re: [RESUELTO] Actualización de Discovery: Error al iniciar sesión en la consola

Publicado: 22 de agosto de 2022 - 17:16
por jlatieule
Gracias Simon,


busqué la dirección del repositorio de Debian en https://wapt.tranquil.it/Debian/ pero estoy completamente desactualizado en este tema.

¿Cómo puedo instalar la versión nightly que me recomendaste?