API Wapt pour interface web

Question about WAPT Server / Requêtes et aides autour du serveur Wapt
Règles du forum
* English support on www.reddit.com/r/wapt
* Le support en français se fait sur ce forum
*Afin de faciliter l'aide dans ce forum, merci de préciser dans vos posts les éléments suivants :
- Version de WAPT installée (1.3.9 / 1.3.13 / 1.5 / 1.6)
- OS du serveur (Linux / Windows)
- OS de la machine d'administration/création des paquets (Windows 7 / 10)
* Merci de préfixer le titre du thread par [RESOLU] si il est résolu.
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

20 mai 2019 - 16:26

Bonjour bonsoir,
Voila mon problème, je suis actuellement entrain de créer une interface web personnalisé pour le WAPT. Cette interface étant destiné à des formateurs dans un centre de formation je souhaite permettre au formateurs d’accéder à un menu avec affiché les salles qu'il gère. ce menu amenant vers les info de la salle ainsi que tous les ordinateurs disponible dans cette salle.

Mon problème se présente ici, faute de documentation j'ai du mal a comprendre le fonctionnement de l'api et je voulais savoir s'il était possible depuis l'api d'attribuer des paquet à un groupe. Et si cela est possible comment ? est-il possible de faire la même chose pour les ordinateurs?

Version de WAPT : 1.5
OS serveur : CentOS 7
OS client : Windows 7
- JEANTET Joey étudiant en développement
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 817
Inscription : 10 juil. 2014 - 23:52
Contact :

21 mai 2019 - 08:50

Bonjour

L'api de wapt discute en json et vous permet de récupérer les même information que la console:

Quelques exemple:

https://admin:password@srvwapt.mondomai ... imit=10000
https://admin:password@srvwapt.mondomai ... /v1/groups
https://admin:password@srvwapt.mondomai ... imit=10000

Avec l'api vous pouvez récupérer des information, uploader un paquet, supprimer un paquet, lancer des wakeonlan...

Mais vous ne pouvez pas créer de paquet avec l'api et donc pour répondre a votre question vous ne pouvez pas attribuer des paquet à un groupe ou un ordinateur avec l'api.

Aujourd'hui, lorsque vous attribuez des paquet à un groupe ou un ordinateur, c'est la console qui construit le paquet localement sur le poste puis l'envoie au serveur wapt avec un requet POST

https://admin:password@srvwapt.mondomai ... d_packages

Ce fonctionnement a été choisi pour éviter que le dépôt wapt ne deviennent un bien sensible.
En effet le serveur wapt ne possède pas la clé privé, il ne sert que de relai. Seul le détenteur de la clé privé peut effectuer des action sur les postes.
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

21 mai 2019 - 09:01

Ok merci de la réponse rapide, je devrais pouvoir me débrouiller avec ça merci !
- JEANTET Joey étudiant en développement
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

21 mai 2019 - 11:27

Re bonjour, mon problème est finalement toujours d'actualité. j'ai pensé directement modifier la bdd avec du php ou executer des commande linux depuis celui si. Le problème est que visiblement les changement dans la bdd ne sont pas pris en compte coté client. Et que je ne trouve pas de commande coté serveur. y a t-il une solution envisageable ? utiliser un script déjà présent sur le serveur ? ou une procédure ?
- JEANTET Joey étudiant en développement
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 817
Inscription : 10 juil. 2014 - 23:52
Contact :

21 mai 2019 - 11:58

Comme je l'ai déjà dis ce n'est n'est pas dans la BDD, inutile de modifer ! ... :roll:

Ce sont des fichier plat présent dans /var/www/wapt/

https://doc.ad.tranquil.it/fr/doc/wapt- ... positories
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

21 mai 2019 - 12:09

J'avais bien saisi ce concept mon problème est :
Existe t-il une commande serveur qui permet d'ajouter un paquet à un utilisateur pour une installation
par exemple :
wapt-add-usrpackage sta5803693 test-java8
et ainsi l'obtenir ici
Capture.PNG
Capture.PNG (48.04 Kio) Consulté 172 fois
Cette fonction serait utilisé sur un panel web avec un système d'utilisateur

Désoler de poser autant de questions farfelue
- JEANTET Joey étudiant en développement
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 817
Inscription : 10 juil. 2014 - 23:52
Contact :

22 mai 2019 - 09:21

Un code d'exemple c'est cadeau:

Code : Tout sélectionner

from waptpackage import PackageEntry,WaptLocalRepo
from waptcrypto import SSLCABundle,SSLPrivateKey,SSLCertificate

uuid_machine = 'BEDBD700-7277-11E3-AAA8-F44D30629A99'
removedepend=["toto"]
adddepend=["test","test2"]

certpub="/root/mykey.crt"
privatekey="/root/mykey.pem"
passwordkey='password'

ca_bundle = SSLCABundle()
signers_bundle = SSLCABundle()
signers_bundle.add_certificates_from_pem(pem_filename=certpub)
key = SSLPrivateKey(privatekey)

pe = PackageEntry(waptfile = "/var/www/wapt-host/%s.wapt" % uuid_machine)

depends = pe.depends.split(',')
for dep in adddepend:
    if not dep in depends:
        depends.append(dep)

for dep in removedepend:
    if dep in depends:
        depends.remove(dep)

pe.depends = ','.join(depends)
pe.inc_build()
pe.sign_package(private_key=key,certificate = signers_bundle.certificates(),private_key_password=passwordkey)

Code : Tout sélectionner

sudo -u wapt PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt /opt/wapt/bin/python /opt/wapt/test.py

Je déconseille bien entendue cette technique puisque cela nécessite que la clé soit sur le serveur... :?
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

22 mai 2019 - 09:33

Merci du code en cadeau sa aide !

Si j'arrive a finir le code dans les temps je le publierais quelque part sur le forum en source libre.
bonne fin de journée !
- JEANTET Joey étudiant en développement
Calvibald
Messages : 10
Inscription : 20 mai 2019 - 16:16

04 juin 2019 - 14:51

Bonjour, bonjour ! c'est encore moi. J'ai fini le panel web que j'avais l'intention de faire (il est dispo sur le forum) mais j'ai un soucis avec le script python.

malgré l'option (private_key_password=passwordkey) dans sign_package() le script demande systématiquement le mot de passe.
Capture.PNG
Capture.PNG (1.99 Kio) Consulté 50 fois
ce qui compromet tout.
J'ai jeter un oeil au waptpackage.py pour trouver la méthode et j'ai pu remarquer password_callback=passwordkey qui ne fonctionne pas non plus.

J'ai raté quelque chose ? (le code python est le même que au dessus).

Bonne fin de journée !
- JEANTET Joey étudiant en développement
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 817
Inscription : 10 juil. 2014 - 23:52
Contact :

05 juin 2019 - 09:15

J'avoue je n'ai pas tenté avec un mot de passe sur la clé.
Il faudra que je test plus en profondeur il y a peu être un soucis.
Répondre