Cette documentation ne décrit pas toutes les API (Application Programming Interfaces) disponibles. Elle se concentre sur les plus utiles.
Actuellement, il n’est possible d’utiliser que du code Python pour interagir avec l’interface utilisateur API.
La plupart des API disponibles se trouvent dans le fichier server.py situé dans /opt/wapt/waptserver/server.py sur Debian.
Des API supplémentaires sont disponibles dans d’autres fichiers tels que enterprise.py, repositories.py, wads.py, etc.
Avertissement
Depuis la version 2.5, la plupart des URL d’API sont protégées par des certificats clients SSL. Par conséquent, il n’est plus possible d’utiliser des requêtes HTML telles que : https://admin:MYPASSWORD@srvwapt.mydomain.lan/api/v1/hosts.
1- Créer un utilisateur WAPT et lui attribuer l’ACL « launch requests » (Il est recommandé de créer un nouvel utilisateur pour les requêtes car le mot de passe est inclus dans la requête).
Dans la console wapt : Allez dans Tools > Manage des utilisateurs et des droits de Wapt.
Nouveau compte > F2 name like reporting.
Changer le mot de passe de l’utilisateur sur le serveur Wapt (une clé apparaît à droite sur votre utilisateur de reporting dans le rouge sur l’image ci-dessous).
Cliquez sur « Run Reports » ACL ( en vert dans l’image ci-dessous).
2- En fonction de la demande, il peut être nécessaire d’ajouter des ACL sur l’utilisateur déclarant. Ceci peut être vu dans le fichier de requête. Vous pouvez voir ceci dans la requête dans le fichier source de l’api.
La méthode de la ligne de commande consiste à exécuter les demandes d’API directement à partir de l’interface de ligne de commande (CLI) à l’aide d’outils tels que cmd sous Windows ou bash sur les systèmes Unix. Cette méthode est rapide et efficace pour les demandes simples ou ponctuelles.
La méthode basée sur les scripts nécessite la création d’un script Python (fichier .py) pour définir et exécuter la demande d’API. Cette méthode est plus souple et plus puissante, car elle permet une logique complexe, la gestion des erreurs et le traitement des données.
Se connecter à un agent WAPT Windows.
Créez un répertoire nommé waptdev à la racine de votre disque, comme c:waptdevAPI_request.
Créez un fichier .py dans ce répertoire pour éditer la requête, comme api-1.py.
Copiez le script python ci-dessous et personnalisez le mot de passe pour votre utilisateur « reporting » et l’API désirée.
Exécutez le fichier à l’aide de la commande suivante : & »C:\Program Files (x86)\wapt\wapt-get.exe » c:\waptdev\API_request\api-1.py.
La sortie peut être affichée au format CSV : cat api-1.csv.
Se connecter à un agent WAPT Linux.
Créez un répertoire nommé waptdev à la racine de votre disque, comme /wapdev/.
Créez un fichier .py dans ce répertoire pour éditer la requête, comme api-1.py.
Copiez le script python ci-dessous et personnalisez le mot de passe pour votre utilisateur « reporting » et l’API désirée.
Exécutez le fichier avec la commande suivante : /opt/wapt/wapt-get.bin /wapdev/api-1.py.
La sortie peut être affichée au format CSV : cat api-1.csv.
Se connecter à un agent WAPT Linux.
Créez un répertoire nommé waptdev à la racine de votre disque, comme /wapdev/.
Créez un fichier .py dans ce répertoire pour éditer la requête, comme api-1.py.
Copiez le script python ci-dessous et personnalisez le mot de passe pour votre utilisateur « reporting » et l’API désirée.
Exécutez le fichier avec la commande suivante : /opt/wapt/wapt-get.bin /wapdev/api-1.py.
La sortie peut être affichée au format CSV : cat api-1.csv.
Le script python
importjsonimportwaptlicencesimportcsvimportsyssys.path.append('/opt/wapt')fromcommonimportWaptWAPT=Wapt()ini_wapt_path=WAPT.config_filenameuser="reporting"password="[Enter the password for user reporting]"defrun_report():auth_context=waptlicences.waptserver_login(ini_wapt_path,user=user,password=password)try:res=waptlicences.waptserver_request(ini_wapt_path,action='[enter the desired api like /api/v1/hosts]',auth_context=auth_context)ifres['http_status']==200:data=json.loads(res['content'])['result']# Debugging: Print the raw data received from the APIprint("Raw data from API:",json.dumps(data,indent=2))# Check if data is not emptyifnotdata:print("No data received from the API.")return[]# Check if the first element of data is a listifisinstance(data[0],list):forrowindata:# Assuming row is a list of stringsfori,valueinenumerate(row):ifisinstance(value,list):row[i]='|'.join(value)withopen('test.csv','w',newline='',encoding='utf-8')ascsvfile:fieldnames=data[0]writer=csv.writer(csvfile,delimiter=';')writer.writerow(fieldnames)writer.writerows(data[1:])# Write the rest of the dataelse:print("Unexpected data format. First element is not a list.")return[]returndataelse:raiseException('Request failed with status %s : %s'%(res['http_status'],res['content']))finally:waptlicences.waptserver_logout(ini_wapt_path)# Call the function and print the returned datadata=run_report()print(repr(data))
Récupérez toutes les informations DMI d’un poste :
wapt-getserver-request"api/v1/host_data?uuid=[UUID OF THE COMPUTER]&field=[DMI FIELD DESIRED]"-c/opt/wapt/wapt-get.ini--wapt-server-user=user--wapt-server-passwd=password
Liste les hôtes avec un packaging spécifique installé.
wapt-getserver-request"/api/v3/hosts_for_package?package=[name of your package like tis-paint]"-c/opt/wapt/wapt-get.ini--wapt-server-user=user--wapt-server-passwd=password
Voici un script python qui exécute une requête avec un identifiant spécifique à partir de l’onglet Rapports de la console WAPT. Dans ce script, l’utilisateur « reporting » doit avoir l’ACL « Run reports ». Ce script fonctionne sur toutes les plateformes (agents windows, linux et mac).