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

#26 2020-02-14 12:49:47

Jean-Christophe
Moderator
Registered: 2007-08-22
Posts: 435

Re: Ajout d'un port réseau sur un device

J-Marc wrote:

Bonjour,

Je remonte un peu ce sujet...
Avez-vous réussi à mettre à jour l'adresse IP d'un équipement avec l'API ?

Je bloque également sur ce point depuis quelques temps maintenant.
La gestion réseau est quand même extrêmement complexe comparé au vielle version (multiple table,...).

J'arrive bien à ajouter une IP ou la mettre à jour dans la partie NetworkName mais impossible de faire la liaison avec un équipement...

Si vous avez réussi, je suis preneur de votre solution... (j'en suis au point de vouloir passer par des requêtes SQL, au moins on peut récupérer les infos via le mode debug).

Bonne soirée,

Oui, j'ai fini par y arriver.

Le truc, c'est de générer le port avec tous les détails du premier coup.
Tu essayes sur un équipement réseau ou sur un téléphone ?

Offline

#27 2020-02-14 22:25:35

J-Marc
Member
Registered: 2020-02-13
Posts: 2

Re: Ajout d'un port réseau sur un device

Bonsoir,

orthagh wrote:

Bonjour.

Comme indiqué en haut, la suite de tests unitaires de l'api contiennent un test concernant l'ajout de port réseaux à un ordinateur.
CF: github.com/glpi-project/glpi/blob/9.4.0/tests/APIBaseClass.php#L538-L565

Merci... j'ai bien vu le lien mais ai lu trop rapidement (je ne suis pas habitué au PHP).
Du coup j'ai bien réussi en "copiant" et adaptant le json.

Oui, j'ai fini par y arriver.

Jean-Christophe wrote:

Le truc, c'est de générer le port avec tous les détails du premier coup.
Tu essayes sur un équipement réseau ou sur un téléphone ?

Sur un équipement réseau. Avec le json des tests unitaires j'ai réussi à faire ce que je souhaitais (en trichant un peu) :
Je pars d'un CSV contenant numéro de série, adresse mac et adresse ip. Je parcours celui-ci et récupère l'id des équipements réseaux via une 1ère requête.
Avec une seconde requête, je récupère l'ensemble des networkport.

Si un équipement a déjà un networkport je le supprime et recréé. Si il n'existe pas il est créé directement (c'était plus rapide de faire comme cela dans mon cas).

Pour info, un curl en exemple :

curl -k -X POST 'glpi/apirest.php/NetworkPort/' \
-H 'Content-Type: application/json' \
-H 'Session-Token: montokensession' \
-H 'App-Token: monapptoken' \
--data-raw '{ "input": {"items_id": eqnet_id
        ,"instantiation_type": "NetworkPortEthernet"
        ,"itemtype": "NetworkEquipment"
        ,"logical_number": "0"
        ,"instantiation_type": "NetworkPortEthernet"
        ,"mac": eqnet_mac
        ,"NetworkName_name": "mgmt"
        ,"NetworkName_fqdns_id": "0"
        ,"_create_children": "true"
        ,"NetworkName__ipaddresses": {"-1": eqnet_ip, "_xmlrpc_fckng_fix": ""}
}}'

eqnet_id, eqnet_mac et eqnet_ip sont des variables.

Bonne soirée,

Offline

Board footer

Powered by FluxBB