[RESUELTO] Error de paquete tras la actualización de WAPT 2.0

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

6 de mayo de 2021 - 17:00

Buen día,

Desarrollé un paquete para la configuración posterior a la instalación de Windows en mi red, inicialmente en WAPT 1.8.
La idea es configurar una estación de trabajo recién instalada buscando su nombre a partir de su dirección IP mediante una búsqueda DNS inversa.
Para eso, uso el módulo dnspython.

Desde la actualización a WAPT 2.0, la instalación devuelve un error: AttributeError: el objeto 'GenericRdata' no tiene el atributo 'target'

Este error se refiere a un fragmento de código:

Código: Seleccionar todo

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
Lo curioso es que este código funciona perfectamente cuando se ejecuta localmente en PyScripter, pero falla cuando se implementa en estaciones de trabajo.

¿Alguna idea?
Avatar de usuario
Gaétano
Mensajes: 169
Inscripción: 8 de agosto de 2019 - 10:16
Ubicación: Toulouse

7 de mayo de 2021 - 09:22

Hola Alann,
¿el paquete dnspython está importado al principio de tu código?
Si eso no funciona, ¿quizás podrías intentar incluirlo junto con el otro paquete?
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

7 de mayo de 2021 - 09:26

Al principio del código tengo un

Código: Seleccionar todo

import dns.resolver
import dns.reversename
¿Cómo lo empaqueto con el paquete?
Avatar de usuario
Gaétano
Mensajes: 169
Inscripción: 8 de agosto de 2019 - 10:16
Ubicación: Toulouse

7 de mayo de 2021 - 10:42

¿Es posible obtener la salida de error directamente?
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

7 de mayo de 2021 - 10:50

Reinicié la instalación en una máquina recién instalada:

Código: Seleccionar todo

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'
Al parecer, necesito integrar el módulo dnspython en el paquete wapt. No sé cómo hacerlo...
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

7 de mayo de 2021 - 15:37

Hola Alann,
la biblioteca dnspython no debería ser muy grande; lo mejor es incluirla en el paquete. Puedes descargar el archivo zip desde https://pypi.org/project/dnspython/#files , luego extraer el directorio "/dns" y colocarlo en el directorio raíz de tu paquete junto a setup.py.
Saludos,
Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

7 de mayo de 2021 - 15:52

Hola Denis, y gracias por tu respuesta.

Funciona perfectamente.

La solución era muy sencilla...
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

8 de mayo de 2021 - 18:47

Si tuviera que ponerme quisquilloso, sólo diría un punto:

La auditoría de las máquinas arroja el mismo mensaje de error, aunque la instalación es correcta.

Código: Seleccionar todo

Audit aborted due to exception: No module named 'dns'
Avatar de usuario
Gaétano
Mensajes: 169
Inscripción: 8 de agosto de 2019 - 10:16
Ubicación: Toulouse

19 de mayo de 2021 - 15:45

Hola Alann,

¿es posible obtener el código completo del paquete?
Alann
Mensajes: 8
Inscripción: 17 nov 2020 - 08:19

20 de mayo de 2021 - 09:24

Problema resuelto.

Simplemente se trataba de colocar la carpeta "dns" del módulo PyDSN en el paquete.

Recuerda también crear un archivo copytree para añadirlo a las bibliotecas WAPT de los clientes; de lo contrario, la auditoría del paquete devolverá un error.
Bloqueado