Page 1 sur 2

[RESOLU] MaJ vers Discovery : Erreur lors du login sur la console

Publié : 11 août 2022 - 10:18
par jlatieule
Bonjour,


Cela fait 4 tentatives qui se soldent pas le même résultat. A chaque fois je suis contraint de restaurer le serveur sur le snapshot précédent
Je tente de mettre à jour de la dernière version de Community vers la Discovery 2.2

Tout semble fonctionner correctement mais après la mise à jour, il n'est plus possible de s'authentifier sur la console avec le compte "admin"
J'ai tenté plusieurs combinaisons :
- Post-configuration : MaJ du mot de passe ou Aucune mise à jour (pour conserver l'ancien)
- MaJ de la console : avec désinstallation complète ou tout automatisé par l'installateur windows

WAPT est installé sur une Debian 10

Comment puis-je reprendre la main sur la console ?

Cordialement

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 11 août 2022 - 14:23
par jlatieule
Je viens de faire un essais en important la base postgre de l'ancien serveur que je tente de mettre à niveau avec une nouvelle installation from scratch

Uniquement en chargeant la base de donnée avec la même version de wapt, il n'est plus possible de se connecter sur la nouvelle installation

Il est probable que le problème vienne de là

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 12 août 2022 - 16:00
par sfonteneau
Vous pouvez donner le numéro de version de la base de donnée dispo sur l'interface web ?

Vous pouvez tenter un :

Code : Tout sélectionner

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

Code : Tout sélectionner

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()
ça permet de recréer admin avec les acl si il n'est pas admin

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 12 août 2022 - 16:36
par jlatieule
Salut Simon, content de te retrouver ici après ces années de TICE ;-)

Voici le retour demandé :
Statut de la base : OK (2.2.5.2)

Et après avoir exécuter le code python j'ai ce retour avec une erreur :

Code : Tout sélectionner

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()
J'ai donc toujours ce problème d'authentification sur la console ;-/

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 17 août 2022 - 10:15
par sfonteneau
jlatieule a écrit : 12 août 2022 - 16:36 Salut Simon, content de te retrouver ici après ces années de TICE ;-)
Toujours là ;)

Ok la base est bloquer en 2.2.5.2

Le problème est donc entre la bascule de 2.2.5.2 -> 2.2.6.0

Dans la dernière version de wapt la base est en 2.2.6.1


Le code un moche ici puisque a la ligne 3083 du model.py on a :

Code : Tout sélectionner

    
    finally:
        pass
 
On risque donc pas de voir l'erreur ...

tu peux remplace le code de model.py a la ligne 3083 par :

Code : Tout sélectionner

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

    finally:
        pass



puis tu peux tenter un :

Code : Tout sélectionner

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

Code : Tout sélectionner

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)
au moins on verra quelque chose

Également quel est ta version de postgresql installé ?

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 17 août 2022 - 12:42
par jlatieule
En effet on vois plus d'informations.

Concernant la version de PostgreSQL :
postgres (PostgreSQL) 11.17 (Debian 11.17-0+deb10u1)
et le retour de la mise à niveau :

Code : Tout sélectionner

>>> 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: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 17 août 2022 - 15:36
par sfonteneau
Ok problème identifier chez nous,

je vais voir pour pousser une nightly aujourd'hui

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 17 août 2022 - 15:44
par jlatieule
Cool, j'ai réussi à remonter un bug

Est-ce que je doit restaurer la version 1.8.2 et refaire la mise à jour ou ce sera une commande à passer ?

Re: MaJ vers Discovery : Erreur lors du login sur la console

Publié : 18 août 2022 - 18:01
par sfonteneau
Normalement juste un upgrade suffira, la bdd va migrer correctement avec le nouveau code

Tu peux essayer celle-ci ?

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

Simon

Re: [RESOLU] MaJ vers Discovery : Erreur lors du login sur la console

Publié : 22 août 2022 - 17:16
par jlatieule
Merci Simon,


J'ai recherché l'adresse du dépôt pour Debian depuis https://wapt.tranquil.it/Debian/ mais je suis complètement rouillé sur ce sujet

Comment puis-je installer la nightly que tu me propose ?