[RISOLTO] Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

6 maggio 2021 - 17:00

Buongiorno,

Ho sviluppato un pacchetto per la configurazione post-installazione di Windows sulla mia rete, inizialmente su WAPT 1.8.
L'idea è quella di configurare una workstation appena installata individuandone il nome a partire dal suo indirizzo IP tramite una ricerca DNS inversa.
Per questo utilizzo il modulo dnspython.

Dopo l'aggiornamento a WAPT 2.0, l'installazione restituisce un errore: AttributeError: l'oggetto 'GenericRdata' non ha l'attributo 'target'

Questo errore si riferisce a un pezzo di codice:

Codice: Seleziona tutto

def findmachinename(ip):
    pass
    no = dns.reversename.from_address(ip)
    answers = dns.resolver.query(no, 'PTR')
    for rdata in answers:
        nom = rdata
    nommachine = nom.target[0].decode("utf-8")
    return nommachine
La cosa curiosa è che questo codice funziona perfettamente quando viene eseguito localmente su PyScripter, ma non funziona quando viene distribuito sulle workstation.

Avete qualche idea?
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

7 maggio 2021 - 09:22

Ciao Alann,
il pacchetto dnspython è importato all'inizio del tuo codice?
Se non funziona, prova magari ad includerlo insieme all'altro pacchetto.
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

7 maggio 2021 - 09:26

All'inizio del codice ho un

Codice: Seleziona tutto

import dns.resolver
import dns.reversename
Come posso impacchettarlo insieme al pacco?
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

7 maggio 2021 - 10:42

È possibile ottenere direttamente l'output dell'errore?
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

7 maggio 2021 - 10:50

Ho riavviato l'installazione su una macchina appena installata:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3841, in install_wapt
    setup = import_setup(setup_filename)
  File "C:\Program Files (x86)\wapt\waptutils.py", line 1498, in import_setup
    py_mod = imp.load_source(modulename, setupfilename)
  File "imp.py", line 171, in load_source
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\windows\TEMP\wapt48wx8rls\setup.py", line 5, in <module>
ModuleNotFoundError: No module named 'dns'
ModuleNotFoundError: No module named 'dns'
A quanto pare, devo integrare il modulo dnspython nel pacchetto wapt. Non so come fare...
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

7 maggio 2021 - 15:37

Ciao Alann,
la libreria dnspython non dovrebbe essere molto grande; è meglio includerla nel pacchetto. Puoi scaricare il file zip da https://pypi.org/project/dnspython/#files , quindi estrarre la directory "/dns" e posizionarla nella directory principale del tuo pacchetto accanto a setup.py.
Saluti,
Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

7 maggio 2021 - 15:52

Ciao Denis, e grazie per la risposta.

Funziona perfettamente.

La soluzione era così semplice...
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

8 maggio 2021 - 18:47

Se dovessi trovare il pelo nell'uovo, ci sarebbe solo un punto:

L'audit sulle macchine restituisce lo stesso messaggio di errore, anche se l'installazione è corretta.

Codice: Seleziona tutto

Audit aborted due to exception: No module named 'dns'
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

19 maggio 2021 - 15:45

Ciao Alann,

è possibile avere il codice sorgente completo del pacchetto?
Alann
Messaggi: 8
Registrazione: 17 nov 2020 - 08:19

20 maggio 2021 - 09:24

Problema risolto.

Si trattava semplicemente di inserire la cartella "dns" del modulo PyDSN nel pacchetto.

Ricordatevi anche di creare una copia del file per aggiungerla alle librerie WAPT dei client; altrimenti, il controllo del pacchetto restituirà un errore.
Bloccato