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-09-12 13:06:20

jbhenry
Member
From: Mérignac
Registered: 2009-01-15
Posts: 11
Website

[Résolu] Manipulation d'un lien entre un ordinateur et un écran

Bonjour,

Je cherche à faire une application pour permettre de faire l'inventaire du mon parc.

Je passe par l'API de GLPI 9.1.3

J'ai réussi à faire des mise à jour de la fiche ordinateur, mais impossible de créer une liaison avec un écran.

J'utilise Postman pour mes tests.

Je commence par un GET  de glpi/apirest.php/Computer/2628/Computer_Item

Je reçoit un tableau vide : []
Ce qui est logique il n'y a pas de liaison depuis cet ordinateur.
Cependant en cherchant dans le forum, j'avais cru comprendre que cela devait me donner les champs sur la liaison, pour m'aider à le construire.

Si je fait un POST sur la même URL, avec en body {"input": { "computers_id":"2628","monitors_id":"1625" }}
je reçoit :
[
    "ERROR_GLPI_ADD",
    "Vous n'avez pas les droits requis pour réaliser cette action."
]

Le compte utilisé est admin, et même en lui donnant des droits superadmin cela ne change pas le message d'erreur.

Je suis presque certain que mon appel n'est pas bon, mais je ne sais plus où trouver l'information.

Last edited by jbhenry (2018-09-13 15:45:08)

Offline

#2 2018-09-12 14:25:17

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

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

Bonjour,
il vous manque au moins une info dans le input :  itemtype :  Monitor

{"input": {"items_id": 8730,"computers_id": 7269,"itemtype": "Monitor"}}

edit: après plusieurs essais j'ai également eu le message ERROR_GLPI_ADD et en allant sur l'interface graphique glpi(sans utiliser l'API) je n'ai pas pu l'ajouter non plus. je n'ai pas trouvé la cause.


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 2018-09-12 14:31:21

jbhenry
Member
From: Mérignac
Registered: 2009-01-15
Posts: 11
Website

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

Effectivement, la bonne construction est :

POST http://my_glpi_url/glpi/apirest.php/Computer/2628/Computer_Item

{"input": {"computers_id": 2628,"itemtype": "Monitor","items_id": 1625}}

Merci.

Offline

#4 2018-09-13 14:24:52

jbhenry
Member
From: Mérignac
Registered: 2009-01-15
Posts: 11
Website

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

Par contre j'ai une erreur ERROR_GLPI_ADD si j'essaye de créer un lien entre un Computer et un Monitor alors que le Monitor a déjà un lien vers un autre Computer.

Comment faire alors pour mettre à jour le lien entre un Computer et un Monitor ?

Question qui va suivre : Comment fait-on pour détruire un lien entre un monitor et un computer ?

Last edited by jbhenry (2018-09-13 14:26:41)

Offline

#5 2018-09-13 14:26:32

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

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

logique, un pc peut avoir plusieurs  ecrans mais un ecran un seul PC (a la fois)
sinon c'est qu'il y a un boitier type KVM entre les 2 non  ?


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

#6 2018-09-13 14:27:57

jbhenry
Member
From: Mérignac
Registered: 2009-01-15
Posts: 11
Website

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

Mince les réponses se croisent.

C'est logique qu'un écran ne peut pas être sur deux ordi à la fois.

J'aurais espéré que GLPI gère ça tout seul en auto, me supprime l'ancien lien à la création d'un nouveau ...

Offline

#7 2018-09-13 14:39:29

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

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

pour effacer un item :
$url=$api_url . "/Computer/7269/Computer_item/128600";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
$json = curl_exec($ch);
curl_close ($ch);

pour récupérer l'id de l'item :
avec un GET sur $url=$api_url . "/Computer/7269/Computer_item/";
vous récuperez tous les items associés, parcourez le tableau pour retrouver les moniteurs et les ID


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

#8 2018-09-13 15:04:35

jbhenry
Member
From: Mérignac
Registered: 2009-01-15
Posts: 11
Website

Re: [Résolu] Manipulation d'un lien entre un ordinateur et un écran

C'est un peu lourd de récupérer toutes les connexions et de chercher la bonne pour avoir l'id pour la supprimer.

Mais ça marche bien.

Merci beaucoup

Pour l'exemple de la solution avec postman

GET apirest.php/Monitor/1495/Computer_Item

résultat :
[
    {
        "id": 24393,
        "items_id": 1495,
        "computers_id": 2628,
        "itemtype": "monitor",
        "is_deleted": 0,
        "is_dynamic": 0,
        "links": [
            {
                "rel": "monitor",
                "href": "apirest.php/monitor/1495"
            },
            {
                "rel": "Computer",
                "href": "/apirest.php/Computer/2628"
            }
        ]
    }
]

DELETE apirest.php/Monitor/1495/Computer_Item/24393

résultat :
[
    {
        "24393": true,
        "message": ""
    }
]

Last edited by jbhenry (2018-09-13 15:17:41)

Offline

Board footer

Powered by FluxBB