You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2018-04-24 16:21:30

GuillaumeG38
Member
Registered: 2018-04-24
Posts: 1

Attribué un software à un computer

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

#2 2018-04-24 23:01:04

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Attribué un software à un computer

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

#3 2020-07-07 11:03:56

Chop
Member
Registered: 2020-07-06
Posts: 4

Re: Attribué un software à un computer

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

#4 2020-07-08 13:55:12

Chop
Member
Registered: 2020-07-06
Posts: 4

Re: Attribué un software à un computer

résolu...

"softwareVersions" et non pas "softwareSVersion"

$dataSoft = @{
        "computers_id" = "7370"
        "softwareversions_id" = "1"
}

Offline

Board footer

Powered by FluxBB