Pagina 1 di 2

[RISOLTO] Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 11 agosto 2022 - 10:18
di jlatieule
Salve,


ho fatto quattro tentativi, ognuno con lo stesso risultato. Ogni volta sono costretto a ripristinare il server allo snapshot precedente.
Sto cercando di aggiornare dalla versione Community più recente a Discovery 2.2.

Tutto sembra funzionare correttamente, ma dopo l'aggiornamento non è più possibile autenticarsi sulla console con l'account "admin".
Ho provato diverse combinazioni:
- Post-configurazione: aggiornamento password o nessun aggiornamento (per mantenere quella vecchia)
- Aggiornamento console: con disinstallazione completa o tutto automatizzato dal programma di installazione di Windows.

WAPT è installato su Debian 10.

Come posso riprendere il controllo della console?

Cordiali saluti

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 11 agosto 2022 - 14:23
di jlatieule
Ho appena provato a importare il database PostgreSQL dal vecchio server che sto cercando di aggiornare con una nuova installazione.

Semplicemente caricando il database con la stessa versione di WAPT, non è più possibile connettersi alla nuova installazione.

Il problema probabilmente risiede lì.

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 12 agosto 2022 - ore 16:00
di sfontenau
Puoi fornire il numero di versione del database disponibile sull'interfaccia web?

Puoi provare:

Codice: Seleziona tutto

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

Codice: Seleziona tutto

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()
Ciò consente di ricreare l'account amministratore con gli ACL se non si tratta di un account amministratore

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 12 agosto 2022 - 16:36
di jlatieule
Ciao Simon, sono felice di vederti qui dopo tutti questi anni nell'ICT ;-)

Ecco il feedback richiesto:
Stato di base: OK (2.2.5.2)

Dopo aver eseguito il codice Python, ricevo questo messaggio di errore:

Codice: Seleziona tutto

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()
Quindi ho ancora questo problema di autenticazione sulla console ;-/

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 17 agosto 2022 - 10:15
di sfontenau
jlatieule ha scritto: 12 agosto 2022 - 16:36 Ciao Simon, sono contento di vederti qui dopo tutti questi anni di ICT ;-)
Ancora qui ;)

Ok, il database è bloccato alla versione 2.2.5.2

Il problema risiede quindi nel passaggio dalla versione 2.2.5.2 alla 2.2.6.0

Nell'ultima versione di wapt, la base è 2.2.6.1


Il codice qui è brutto perché alla riga 3083 di model.py abbiamo:

Codice: Seleziona tutto

    
    finally:
        pass
 
Quindi è improbabile che ci accorgiamo dell'errore...

Puoi sostituire il codice in model.py alla riga 3083 con:

Codice: Seleziona tutto

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

    finally:
        pass



allora puoi provare:

Codice: Seleziona tutto

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

Codice: Seleziona tutto

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)
Almeno vedremo qualcosa

Inoltre, quale versione di PostgreSQL hai installato?

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 17 agosto 2022 - 12:42
di jlatieule
In effetti, possiamo vedere più informazioni.

Per quanto riguarda la versione PostgreSQL:
postgres (PostgreSQL) 11.17 (Debian 11.17-0+deb10u1)
e il ritorno dell'aggiornamento:

Codice: Seleziona tutto

>>> 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: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 17 agosto 2022 - 15:36
di sfontenau
Ok, abbiamo identificato il problema.

Vedrò se è possibile rilasciare una build notturna oggi stesso.

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 17 agosto 2022 - 15:44
di jlatieule
Ottimo, sono riuscito a segnalare un bug

. Devo ripristinare la versione 1.8.2 e rifare l'aggiornamento, oppure devo eseguire un comando specifico?

Re: Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 18 agosto 2022 - 18:01
di sfontenau
Normalmente, è sufficiente un semplice aggiornamento; il database verrà migrato correttamente con il nuovo codice.

Potresti provare questo?

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

Simon

Re: [RISOLTO] Aggiornamento a Discovery: errore durante l'accesso alla console

Pubblicato: 22 agosto 2022 - 17:16
di jlatieule
Grazie Simon,


ho cercato l'indirizzo del repository Debian su https://wapt.tranquil.it/Debian/ ma non me ne intendo affatto.

Come posso installare la nightly build che hai suggerito?