Pagina 1 di 1

Re: Utilizzo del modulo pyad

Pubblicato: 26 gennaio 2018 - 16:43
di dcardon
Buongiorno,
admin-style ha scritto: 26 gennaio 2018 - 11:04 Salve a tutti,
gestisco tre infrastrutture IT piuttosto grandi e di recente ho adottato WAPT.
Ne sono molto soddisfatto e ringrazio le persone che lavorano a questo progetto, così come la community di WAPT.

Ho un pacchetto che richiede l'utilizzo del modulo pyad (un modulo che consente di interrogare e manipolare oggetti di Active Directory) oltre all'installazione del software FusionInventory.

Volevo sapere come utilizzare questo modulo?
- Ho visto in un post che era possibile utilizzare moduli che possono essere copiati nel pacchetto WAPT, ma non c'è documentazione o esempio.
Potresti specificare quale versione hai utilizzato (vedi il post di Alexandre)? viewtopic.php?f=9&t=886). GRAZIE.

WAPT 1.3: dovresti essere in grado di includere la libreria inserendola nella radice del pacchetto.
WAPT 1.5: la libreria è inclusa nativamente

Denis

Re: Utilizzo del modulo pyad

Pubblicato: 29 gennaio 2018 - 15:29
di admin-style
Salve, riguardo alle informazioni sul server e altri dettagli, ecco i dati:
Versione del server WAPT: 1.3.13.0
Versione dell'agente WAPT: 1.3.13.0
Versione di installazione WAPT: 1.3.13.0
Versione di distribuzione WAPT: 1.3.13.0

Il server è in esecuzione su Linux
e la macchina per i pacchetti è in esecuzione su Windows 7.

Re: Utilizzo del modulo pyad

Pubblicato: 30 gennaio 2018 - 14:45
di admin-style
Ciao,
quando posiziono la libreria nella directory principale del pacchetto WAPT ed eseguo il programma di installazione, ottengo il seguente errore:

ERRORE FATALE: ImportError: Nessun modulo denominato builtins
Traceback (chiamata più recente):
File "C:\wapt\wapt-get.py", riga 1109, in
main()
File "C:\wapt\wapt-get.py", riga 373, in main
res = mywapt.install_wapt(fn,params_dict = params_dict)
File "C:\wapt\common.py", riga 3630, in install_wapt
raise e
ImportError: Nessun modulo denominato builtins

Re: Utilizzo del modulo pyad

Pubblicato: 31 gennaio 2018 - 16:29
di admin-style
Ciao,
esiste un tutorial che spieghi come utilizzare il modulo Python nei pacchetti WAPT?

Re: Utilizzo del modulo pyad

Pubblicato: 2 febbraio 2018 - 09:47
di admin-style
Ciao,
qualcuno ha mai avuto bisogno di utilizzare un modulo diverso da quelli offerti da Wapt?
Se sì, potreste mostrarmelo?

Re: Utilizzo del modulo pyad

Pubblicato: 2 febbraio 2018 - 18:32
di agauvrit
Buongiorno,
  • WAPT 1.3: Come spiegato sopra, importando la libreria nella directory principale del pacchetto o nella cartella site-package, sarà possibile utilizzare la libreria pyad durante l'installazione (https://pypi.python.org/pypi/pyad).
  • WAPT 1.5: La libreria è inclusa nell'installazione di WAPT ed è quindi direttamente utilizzabile
Esempio di codice funzionale:

Codice: Seleziona tutto

# -*- 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"]
Sinceramente,

Alessandro

Re: Utilizzo del modulo pyad

Pubblicato: 7 febbraio 2018 - 11:13
di admin-style
Buongiorno,
Seguendo l'esempio, sono riuscito a installare il pacchetto sulla macchina che utilizzo per creare i pacchetti
Ecco il mio codice:

Codice: Seleziona tutto

# -*- 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))
Tuttavia, se lo distribuisco su una macchina client, ottengo l'errore
ImportError: nessun modulo denominato builtins

Registro della postazione di lavoro del cliente:

Codice: Seleziona tutto

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')]]

Grazie per l'esempio del codice fornito