[RESOLU] Paquet en erreur suite update WAPT 2.0

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

06 mai 2021 - 17:00

Bonjour,

J'ai développé un paquet pour le configuration post-installation de windows de mon parc, initialement sur WAPT 1.8.
L'idée est de configurer un poste fraichement installé en retrouvant son nom à partir de son IP en faisant un reverse DNS.
Pour ça j'utilise le module dnspython.

Depuis le passage en WAPT 2.0 l'installation me renvoie une erreur : AttributeError: 'GenericRdata' object has no attribute 'target'

Cette erreur se réfère à un bout de code :

Code : Tout sélectionner

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
Le truc curieux, c'est que ce code fonctionne à merveille lorsqu'il est exécuté en local sur PyScripter, mais il est en erreur lorsqu'il est déployé sur les postes.

Une idée ?
Avatar de l’utilisateur
Gaetan
Messages : 158
Inscription : 08 août 2019 - 10:16
Localisation : Toulouse

07 mai 2021 - 09:22

Bonjour Alann,
le paquet dnspython est-il importé en début de code ?
Si cela ne fonctionne pas, peut-être le packager avec le paquet ?
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

07 mai 2021 - 09:26

En début de code j'ai un

Code : Tout sélectionner

import dns.resolver
import dns.reversename
Comment le packager avec le paquet ?
Avatar de l’utilisateur
Gaetan
Messages : 158
Inscription : 08 août 2019 - 10:16
Localisation : Toulouse

07 mai 2021 - 10:42

Est-ce possible d'avoir la sortie de l'erreur directement ?
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

07 mai 2021 - 10:50

J'ai relancé l'install sur un poste fraichement installé :

Code : Tout sélectionner

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'
Visiblement, il faut que j'intègre le moduule dnspython dans le package wapt. Je ne sais pas comment faire...
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1368
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

07 mai 2021 - 15:37

Bonjour Alann,
la librairie dnspython ne doit pas être très lourde, le mieux c'est de l'inclure dans le paquet. Vous pouvez télécharger le zip sur https://pypi.org/project/dnspython/#files puis récupérer le répertoire "/dns" dedans et le mettre à la racine de votre paquet à côté du setup.py
Cordialement,
Denis
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

07 mai 2021 - 15:52

Bonjour Denis et merci de votre réponse.

Ça fonctionne effectivement.

La solution était si simple...
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

08 mai 2021 - 18:47

Si je dois pinailler, il y aurait juste un point :

L'audit sur les machines donne le même message d'erreur, alors que l'installation est OK.

Code : Tout sélectionner

Audit aborted due to exception: No module named 'dns'
Avatar de l’utilisateur
Gaetan
Messages : 158
Inscription : 08 août 2019 - 10:16
Localisation : Toulouse

19 mai 2021 - 15:45

Bonjour Alann,

est-ce possible d'avoir le code du paquet complet ?
Alann
Messages : 8
Inscription : 17 nov. 2020 - 08:19

20 mai 2021 - 09:24

Problème résolu.

Il suffisait de placer le dossier "dns" du module PyDSN dans le paquet.

Il faut penser au passage à faire un copytree pour l'ajouter aux librairies des wapt des clients, sans quoi l'audit des paquets renvoie une erreur.
Verrouillé