Page 1 sur 1

Re: Utilisation du module pyad

Posté : 26 janv. 2018 - 16:43
par dcardon
Bonjour,
admin-style a écrit : 26 janv. 2018 - 11:04 Bonjours à tout le monde,
je gère 3 parc informatique assez conséquent et j'ai adopté WAPT depuis peu.
j'en suis assez content et remercie les gens travaillant autour de ce projet ainsi que la communuaté WAPT

J'ai un paquet qui nécessite l'utilisation du module pyad (module permettant d'interroger et de manipuler les objets de l'active directory) en plus de l'installation du logiciel fusioninventory.

Je voulais savoir comment utiliser ce module ?
- j'ai vu sur un post qu'on pouvait utiliser des modules à copier dans le paquet WAPT. mais pas de doc aoppaement ou un exemple
est ce que vous pourriez préciser la version utilisée (cf le post d'Alexandre viewtopic.php?f=9&t=886). Merci.

WAPT 1.3 : vous devriez pouvoir inclure la librairie en la mettant à la racine du paquet.
WAPT 1.5 : la librairie est incluse nativement

Denis

Re: Utilisation du module pyad

Posté : 29 janv. 2018 - 15:29
par admin-style
Bonjour pour ce qui concerne les infos du serveur et autre voici les données :
Version WAPT Server : 1.3.13.0
Version WAPT Agent : 1.3.13.0
version WAPT Setup : 1.3.13.0
Version WAPT Deploy : 1.3.13.0

Serveur en linux
et machine pour les paquets en WIN7

Re: Utilisation du module pyad

Posté : 30 janv. 2018 - 14:45
par admin-style
Bonjour,
En mettant la librairie à la racine du paquet WAPT et en exécutant l'installa j'ai l'erreur suivante :

FATAL ERROR : ImportError: No module named builtins
Traceback (most recent call last):
File "C:\wapt\wapt-get.py", line 1109, in <module>
main()
File "C:\wapt\wapt-get.py", line 373, in main
res = mywapt.install_wapt(fn,params_dict = params_dict)
File "C:\wapt\common.py", line 3630, in install_wapt
raise e
ImportError: No module named builtins

Re: Utilisation du module pyad

Posté : 31 janv. 2018 - 16:29
par admin-style
Bonjour
Est ce qu'il existe un tutoriel expliquant l'utilisation de module python dans les paquets wapt ?

Re: Utilisation du module pyad

Posté : 02 févr. 2018 - 09:47
par admin-style
Bonjour
Est ce que quelq'un n'a pas eu besoin un jour d'utiliser un module autre que ceux proposés par wapt.
Si oui est ce qu'il peut me montrer ?

Re: Utilisation du module pyad

Posté : 02 févr. 2018 - 18:32
par agauvrit
Bonjour,
  • WAPT 1.3 : Comme expliqué plus haut, en important la librairie à la racine de votre paquet ou dans le dossier site-package vous pourrez utiliser la librairie pyad lors de l'installation (https://pypi.python.org/pypi/pyad)
  • WAPT 1.5 : La librairie est incluse dans l'installation de WAPT donc directement utilisable
Exemple de code fonctionnel :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import pyad.adquery

def install():
    print('installing tis-adtest')
    q = pyad.adquery.ADQuery()

    q.execute_query(
        attributes = ["distinguishedName", "description"],
        where_clause = "objectClass = '*'",
        base_dn = "OU=computers, DC=domain, DC=lan"
    )

    for row in q.get_results():
        print row["distinguishedName"]
Cordialement,

Alexandre

Re: Utilisation du module pyad

Posté : 07 févr. 2018 - 11:13
par admin-style
Bonjour,
En suivant l'exemple j'ai pu installer le paquet sur le poste qui me sert à créer les paquets
Voici mon code :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
from pyad import *

uninstallkey = []



def install():
    print('installation fusioninventory-agent')

    #Initialisations diverses
    ServerFusion = "http://adresse serveur fusion"
    idLycee=138

    #Recup nom ordinateur et chemin LDAP
    ComputerName = get_computername()
    ComputerLDAP = pyad.adsearch.by_cn(ComputerName)

    #Transformation pour extraction de l'OU
    ComputerTab = ComputerLDAP.split(",")
    ComputerExtract = ComputerTab[1].split("=")
    ComputerOU = ComputerExtract[1]
    tag = "%s;%s" % (idLycee,ComputerOU)
    print tag

    #Lancement de la commande install silencieuse
    if iswin64() :
        run(r'"fusioninventory-agent_windows-x64_2.3.21.exe" /acceptlicense /runnow /tag="%s" /server="%s" /S' % (tag, ServerFusion))
    else:
        run(r'"fusioninventory-agent_windows-x64_2.3.21.exe" /acceptlicense /runnow /tag="%s" /server="%s" /S' % (tag, ServerFusion))
En revanche si je le déploie sur une machine cliente j'ai l'erreur
ImportError: No module named builtins

Log du poste client :

Code : Tout sélectionner

2018-02-07 11:16:45,677 CRITICAL Error importing c:\windows\temp\waptbsr9b4\setup.py :
Traceback (most recent call last):
  File "c:\wapt\common.py", line 795, in import_setup
    py_mod = imp.load_source(modulename, setupfilename)
  File "c:\windows\temp\waptbsr9b4\setup.py", line 3, in <module>
    from pyad import *
  File "c:\windows\temp\waptbsr9b4\pyad\__init__.py", line 2, in <module>
    from .adbase import set_defaults as pyad_setdefaults
  File "c:\windows\temp\waptbsr9b4\pyad\adbase.py", line 3, in <module>
    from builtins import object
ImportError: No module named builtins

2018-02-07 11:16:46,019 CRITICAL Package claret-fusioninventory not installed due to errors : ImportError: No module named builtins
2018-02-07 11:16:46,019 CRITICAL Exception: Error during install of claret-fusioninventory: errors in packages [[u'claret-fusioninventory', PackageEntry('claret-fusioninventory','2.3.21-2')]]

Merci pour l'exemple du code donnée