You are not logged in.
Pages: 1
Bonjour,
Je cherche a remplir GLPI par l'api, via un script python. Je suis en version de GLPI 9.1.2
J'arrive a créer un computer
curl -s --insecure -X POST -H 'Content-Type: application/json' \
-H "Session-Token: XXXX" \
-H "App-Token: XXXXZ" \
-d '{ "input": {" name": "ordi01", "serial": "11234501", "operatingsystems_id":1, "operatingsystemversions_id":21 }}' \
'http://path/to/glpi/apirest.php/Computer/'
J'aimerais lui ajouter un logiciel qui est déjà renseigné dans GLPI avec l'id 9 et la version id 67, mais je ne trouve pas d'exemple.
curl -X PUT \
-H 'Content-Type: application/json' \
-H "Session-Token: XXXX" \
-H "App-Token: XXXXY" \
-d '{"input": {"id": 417, "softwares_id":9, "softwareversions_id":67 }}' \
'http://path/to/glpi/apirest.php/Computer/'
j’obtiens la réponse
[{"417":true,"message":""}]
quand je fais des modification par exemple sur le status du serveur cela fonctionne bien :
curl -X PUT \
-H 'Content-Type: application/json' \
-H "Session-Token: XXXX" \
-H "App-Token: XXXXY" \
-d '{"input": {"id": 417, "states_id":5 }}' \
'http://path/to/glpi/apirest.php/Computer/'
Qu'ai je raté ?
Merci de votre aide .
Guillaume
Offline
bonsoir,
vous ne devez pas mettre à jour l'ordinateur mais creer une association computer- softwareversion :
donc l'url est du type
$url=$_SESSION['api_url']."/Computer/".$Computer_id."/Computer_SoftwareVersion";
et le payload JSON contient l'ID du PC et la version du software (et donc implicitement le software)
$fields='{
"input": {
"computers_id": "$Computer_id",
"softwareversions_id": "$softwareversions_id"
}
}';
la methode doit être POST puisque vous crééz
en faisant un get sur $url=$_SESSION['api_url']."/Computer/".$Computer_id."/Computer_SoftwareVersion"; vous aurez la liste des champs possibles à saisir ou mettre à jour
Last edited by LaDenrée (2018-04-24 23:03:51)
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
Bonjour,
Je up ce sujet car j'obtiens l'erreur suivante lorsque je suis cette méthode d'injection via powershell :
Invoke-RestMethod : ["ERROR_GLPI_ADD","Vous n'avez pas les droits requis pour réaliser cette action."]
Je ne vois pas d'où ça peut venir, sachant que cela fonctionne via la GUI.
Mon bout de code est le suivant :
$url = $serverIP + "/glpi/apirest.php/Computer/7370/Computer_SoftwareVersion/"
$ArrayList = [System.Collections.ArrayList]@()
$dataSoft = @{
"computers_id" = "7370"
"softwaresversions_id" = "1"
}
$ArrayList.add($dataSoft) > $null
$Body = '{ "input": ' + ($ArrayList | ConvertTo-Json )+ '}'
Invoke-RestMethod -Uri $url -Method POST -Headers $headers -Body $Body
Des idées ?
Merci par avance !
Offline
résolu...
"softwareVersions" et non pas "softwareSVersion"
$dataSoft = @{
"computers_id" = "7370"
"softwareversions_id" = "1"
}
Offline
Pages: 1