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 2022-05-06 15:56:41

falco2001
Member
Registered: 2016-02-11
Posts: 251

[Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Bonjour,
J'ai essayé plusieurs appels mais je ne comprends pas comment aller chercher la localisation depuis le nom d'ordinateur.

Je récupère le nom de l'ordinateur via un programme et je dois afficher la localisation et si possible proposer un update ...

Comment faire :
Il faut trouver l'id ? Il faut utiliser apirest.php#search-items mais comment faire ?

Peut-on trouver la localisation directement d'un ordinateur sans passer par l'id en utilisant l'ordinateur ?

J'ai essayé ceci sans succès :

apirest.php/search/Computer?&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=equals&criteria[0][value]=7542&search=Rechercher&itemtype=Computer

Mais ici c'est l'id qui est passé en paramètres, moi j'ai besoin de passer le nom d'ordinateur

Merci pour votre aide ..

Last edited by falco2001 (2022-05-25 14:48:58)

Offline

#2 2022-05-08 23:26:50

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

si vous avez lD le mieux c'est d'appelr irectement l'item :
apirest.php/Computer/7542

pour rechercher à partir du nom  :
apirest.php/search/Computer?&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^leNomDeMonPC$

mettez ^ au début et $  à la fin  ça équivaut à "égal" mais pour du texte

pour forcer l'affichage de l'id du lieu dans la réponse ajoutez dans le search :      &forcedisplay[0]=3   

vous pouvez aussi tenter d'ajouter  : expand_dropdowns=true pour récupérer le libellé plutôt que l'ID du lieu


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#3 2022-05-09 09:10:35

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Merci bien
Il me faut bien le lieu à partir du nom du PC.

J'ai essayé

apirest.php/search/Computer?&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&forcedisplay[0]=3&criteria[0][value]=^l102731$

J'obtiens :
{
  "totalcount": 0,
  "count": 0,
  "sort": "1",
  "order": "ASC",
  "content-range": "0--1/0"
}

LA machine l102731 existe bien .

Comment faire ? Merci

PS :  avec apirest.php/Computer/7542  : je n'ai pas l'utilité de ceci car je récupère que le nom depuis un autre programme, mais j'ai pour ce cas précis : "vous n'avez pas les droits ..." J'ai changé alors id api en choisissant et en vérifiant via getprofiles je suis super admin de la racine et sous entité et j'ai ce message  pour apirest.php/Computer/7542

Last edited by falco2001 (2022-05-09 09:18:37)

Offline

#4 2022-05-09 09:55:36

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

surprenant, sur ma version 9.4.6
http://localhost/glpi/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^PO19006$&forcedisplay[0]=3&expand_dropdown=true

me renvoie bien 1 seul PC avec les libellés en clair.
idem pour :
http://localhost/glpi/apirest.php/Computer/4979/  j'ai bien mon PC.


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#5 2022-05-09 10:08:13

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

ça marche aussi sur une version 9.5.5.

c'est bizarre votre histoire de droits.
avez vous vérifié  apirest.php/getActiveProfile/  ?  pour être sûr que le bon profil est activé


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#6 2022-05-09 10:51:31

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

j'ai

{
  "active_profile": {
    "id": 4,
    "name": "super-admin",
    "interface": "central",
    "is_default": 0,
    "helpdesk_hardware": 3,
    "helpdesk_item_type": [
      "Computer",
      "Monitor",
      "NetworkEquipment",
      "Peripheral",
      "Phone",
      "Printer",
      "Software",
      "PluginGenericobjectInventaire"
    ],

Pour l'accès
apirest.php/search/Computer?&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3&expand_dropdown=true

{
  "totalcount": 0,
  "count": 0,
  "sort": "1",
  "order": "ASC",
  "content-range": "0--1/0"
}

Je n'y comprends plus rien.
Y-t-il un moyen de sortir une liste d'ordinateurs ou tous. Je verrai ainsi si ça marche !

Last edited by falco2001 (2022-05-09 10:53:05)

Offline

#7 2022-05-09 10:55:59

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

vous avez un & en trop après le ? de l'URL


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#8 2022-05-09 11:03:52

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

eh oui mais avec :
apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3&expand_dropdown=true

idem !

Offline

#9 2022-05-09 11:09:40

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

falco2001 wrote:

Je n'y comprends plus rien.
Y-t-il un moyen de sortir une liste d'ordinateurs ou tous. Je verrai ainsi si ça marche !

apirest.php/Computer/

tout simplement


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#10 2022-05-09 11:14:58

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

<Empty JSON content> avec apirest.php/Computer/
et rien
avec :
apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3&expand_dropdown=true

Help !

Offline

#11 2022-05-09 11:17:15

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

dans cette discussion https://forum.glpi-project.org/viewtopic.php?id=283120  ça a marché en utilisant &rawdata=true


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#12 2022-05-09 11:33:34

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

idem rien en sortie !
Je n'y comprends plus rien. Si vous avez une autre idée .. Merci beaucoup

Je dois m'absenter une semaine.
Dommage que ça ne marche pas !

Offline

#13 2022-05-24 10:12:23

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Hello,
j'ai refait un apirest.php/getActiveProfile/
J'ai :

   "id": 4,
   "name": "super-admin",
   "interface": "central",
...
"entities": [   {
      "id": 0,
      "name": "Entité racine",
      "is_recursive": 1
   }],

et avec 


<Empty JSON content> avec apirest.php/Computer/
et rien
avec :
apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3&expand_dropdown=true&rawdata=true

Help !

Bien sûr :
ceci fonctionne :
/apirest.php/Ticket/93753

{
   "id": 93753,
   "entities_id": 56,
   "name": "Sortie",
   "date": "2021-06-08 14:37:40",
   "closedate": null,
   "solvedate": null,
   "date_mod": "2021-06-08 14:37:40",
   "users_id_lastupdater": 9753,
   "status": 2,
   "users_id_recipient": 9753,
...

Mais je désire des informations de computer comme la localisation et plus ... mais rien ne fonctionne ! Merci

Dans les logs j'ai pour un appel Computer : 409 bizarre ...

 [24/May/2022:14:16:03 +0200] "GET /apirest.php/Computer HTTP/1.1" 200 409 "-" "Apache-HttpClient/4.5.5 (Java/12.0.1)"

et via un id computer :
/apirest.php/Computer/7542

   "ERROR_RIGHT_MISSING",
   "Vous n'avez pas les droits requis pour réaliser cette action."
et dans les logs :
"GET /apirest.php/Computer/7542 HTTP/1.1" 403 474 "-" "Apache-HttpClient/4.5.5 (Java/12.0.1)"

Last edited by falco2001 (2022-05-24 16:30:14)

Offline

#14 2022-05-24 17:11:54

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

re,
je vais essayer d'être clair !
Je désire à partir du nom de l'ordinateur extraire la localisation et d'autres données ensuite.
Première question ?
- Quelle est la requête pour faire ceci ?
- FAut-il passer par l'ID ?

si je fais /apirest.php/Computer/7542 (ici l'id) pas les droits alors que vu plus haut je suis superadmin récursif ..

Si je lance :
apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3&expand_dropdown=true
il m'envoie vers le CAS !  ici 102731c'est le nom de l'ordinateur ?
et
/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=l102731&forcedisplay[0]=3&expand_dropdown=true&rawdata=true
renvoie :

"rawdata":    {
      "search":       {
         "criteria": [         {
            "link": "AND",
            "field": "1",
            "searchtype": "contains",
            "value": "l102731"
 "sql":       {
         "count": [],
         "search": "SELECT DISTINCT `glpi_computers`.`id` AS id, 'glpi-twimm' AS currentuser,\n                        `glpi_computers`.`entities_id`, `glpi_computers`.`is_recursive`,  `glpi_computers`.`name` AS `ITEM_Computer_1`,\n                        `glpi_computers`.`id` AS `ITEM_Computer_1_id`,\n                        `glpi_entities`.`completename` AS `ITEM_Computer_80`,  `glpi_locations`.`completename` AS `ITEM_Computer_3` FROM `glpi_computers`LEFT JOIN `glpi_entities` \n                                          ON (`glpi_computers`.`entities_id` = `glpi_entities`.`id`\n                                              )LEFT JOIN `glpi_locations` \n                                          ON (`glpi_computers`.`locations_id` = `glpi_locations`.`id`\n                                              ) WHERE  `glpi_computers`.`is_deleted` = 0  AND `glpi_computers`.`is_template` = 0  AND  ( `glpi_computers`.`entities_id` IN ('56')  OR (`glpi_computers`.`is_recursive`='1' AND `glpi_computers`.`entities_id` IN (0)) )  AND (    (`glpi_computers`.`name`  LIKE '%l102731%'  ) ) ORDER BY `ITEM_Computer_1` ASC "
   

Si vous pouvez m'aider merci ?

Offline

#15 2022-05-24 17:26:56

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

avez vous des PC dans l'entité racine ?

WHERE  `glpi_computers`.`is_deleted` = 0  AND `glpi_computers`.`is_template` = 0  AND  ( `glpi_computers`.`entities_id` IN ('56')  OR (`glpi_computers`.`is_recursive`='1' AND `glpi_computers`.`entities_id` IN (0)) )

cette requete ne renvoie que les PC de l'entité N°56 ou de la racine et avec sous entité=oui.

ça ne nous donne pas la solution mais un indice sur la cause.

avez vous des PC dans l'entité 56 ?  avez vous essayé de vous mettre dans l'entité racine soit un post sur changeActiveEntities, soit en mettant votre entité par défaut sur la racine dans vos préférences ?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#16 2022-05-25 09:50:42

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Oui c'est vrai j'avais vu dans la requête ... Merci

En changeant la valeur dans le profil du compte c'est pareil La requête va chercher à la racine et dans l'entité 56. Même en refaisant l'initSession ....

Il doit avoir un endroit autre que le profil utilisateur où est stockée cette valeur de l'entité par défaut?

Les ordinateurs sont dans l'entité 7.

Je ne sais pas comment faire ?

AVec :
/apirest.php/changeActiveProfile
et méthode Post et paramètre SOAPUI Media type Application/json:
"profiles_id": 7
J'ai

[
   "ERROR_JSON_PAYLOAD_INVALID",
   "JSON payload seems not valid"
]

Last edited by falco2001 (2022-05-25 13:10:49)

Offline

#17 2022-05-25 12:53:12

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,469
Website

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Bonjour,

La charge utile doit être enveloppée dans "{}" pour en faire un JSON valide. Exemple : '{"profiles_id": 7}'.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#18 2022-05-25 14:11:16

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

MErci,
Je me suis trompé c'est /apirest.php/changeActiveEntities
avec {"entities_id": 7, "is_recursive": true}
J'ai

[
  true
]

MAis ça ne change pas dans le profil du compte !
Comment faire ? MErci

et

PS : voir avant :  En changeant la valeur dans le profil du compte c'est pareil La requête va chercher à la racine et dans l'entité 56. Même en refaisant l'initSession ....
Il doit avoir un endroit autre que le profil utilisateur où est stockée cette valeur de l'entité par défaut?

Last edited by falco2001 (2022-05-25 14:29:59)

Offline

#19 2022-05-25 14:48:38

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

ok.
Avec /apirest.php/changeActiveEntities
avec {"entities_id": 7}
Je positionne bien le compte utilisé par l'API dans l'entité 7 .. mais ça ne se voit pas dans GLPI !
Pour vérifier faire : apirest.php/getActiveEntities/

Pour obtenir donc le contenu de l'ordinateur : l102731

/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=l102731&forcedisplay[0]=3&expand_dropdown=true&rawdata=true
ou
/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=l102731&forcedisplay[0]=3&expand_dropdown=true

Je trouve bien une réponse ! avec la localisation.

à moi de traiter le json avec Talend ou Flutter/Dart

Merci beaucoup à  LaDenrée .. et aussi à cconard96

Offline

#20 2022-05-25 15:27:19

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Autre question :
En fait la requête retourne deux machines l102731 et vm-l102731
Comment faire pour avoir que la l102731!!
Merci d'avance ! où trouver la doc à part apirest.php#glossary

Comment obtenir la localisation d'un ordinateur directement ?  (ici D4 019)
Faut-il passer par l'ID et utiliser apirest.php/Computer/id ? mais comment l'obtenir ?
C'est plus facile en SQL ..

J'obtiens :

{
   "totalcount": 2,
   "count": 2,
   "sort": "1",
   "order": "ASC",
   "data":    [
            {
         "1": "l102731",
         "80": "Entité racine > Direction Systèmes Information",
         "3": "DSC> D4 > DESC_D4_RDC > D4 019"
      },
            {
         "1": "vm-l102731",
         "80": "Entité racine > Direction Systèmes Information",
         "3": null
      }
   ],
   "content-range": "0-1/2"
}

Remarque : avec equals à la place contains j'ai 0 résultat

Last edited by falco2001 (2022-05-25 15:53:24)

Offline

#21 2022-05-25 23:02:51

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,469
Website

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

La seule documentation officielle de l'API disponible est la documentation en ligne disponible dans votre instance GLPI à "/apirest.php".


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#22 2022-05-30 09:38:20

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Hello,
Quel est la façon la plus simple d'obtenir la localisation d'un ordinateur ?
Dans mon cas j'ai deux réponses pour le l102731 ! pourquoi avec equals  à la place de contains  ça ne marche pas il recherche par l'id  et non par le nom de l’ordinateur ?
Il faudrait passer par l'ID ?
- récupérer l'id par une recherche sur le nom ? Comment faire ?
- puis lancer aprirest.php/Computer/id ?

Merci à vous

Offline

#23 2022-05-30 09:44:14

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

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

LaDenrée wrote:

mettez ^ au début et $  à la fin  ça équivaut à "égal" mais pour du texte


/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15

Offline

#24 2022-05-30 09:49:08

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

eh j'avais essayé
/apirest.php/search/Computer/?is_deleted=0&as_map=0&criteria[0][link]=AND&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^l102731$&forcedisplay[0]=3

mais j'ai ceci :
The content you are trying to view cannot be viewed as JSON

Offline

#25 2022-06-07 09:23:16

falco2001
Member
Registered: 2016-02-11
Posts: 251

Re: [Résolu][9.5.6] Trouver la localisation à partir d'un nom d'ordinateur

Hello,
avez-vous une idée sur ma dernière erreur ?
Merci à vous

Offline

Board footer

Powered by FluxBB