Sommaire

Objectifs

Méthode POST de type READ qui permet de récupérer des données de supervision des clusters et éventuellement de leurs checks, comme sur l'Interface de Visualisation,

  • Filtrées ( optionnel )
  • Triées
  • Rangées :
    • En arbres ( hôtes/clusters => checks )
    • Tous au même niveau

Paramètres

Cet appel utilise les 4 paramètres suivants :

  • filterX
    • Pour la propriété type, le fait d'utiliser des valeurs différentes de cluster et check_cluster est interdit sur cette route.
  • sort
  • output_format
  • ouput_field


Voir la page  V2 - Les paramètres des API du broker-module-livedata , pour leur description complète.

Réponse

Codes de retour

Codes de retourExplications
200

OK

400

Paramètre invalide

401

Accès nécessite une authentification ou un Token valide.

403

Authentification de l'utilisateur OK , mais droits non suffisant.

500

L'appel est valide, mais un problème d'exécution est rencontré.

Retour du code 200

Les propriétés retournées doivent être choisies avec l'option  output_field

Mais les propriétés suivantes seront au minimum automatiquement retournées :

  • nb_element
  • type ( si le paramètre output_format  vaut elements_on_same_level )
  • father_uuid
  • father_name
  • par check :
    • check_uuid
    • check_name


Voir la page  V2 - Les propriétés présentes dans le retour 200 des API du broker-module-livedata , pour la description complète de toutes les propriétés pouvant être renvoyée.


Suivant le paramètre output_format ( checks_attached_to_father / elements_on_same_level )

  • ( présentation du format de retour ci-dessus, mais se référer à l'exemple pour le format exact )

checks_attached_to_father:

  • request_statistics :
    • ...
  • elements_found   :
    • clusters  : 
      • cluster 1:
        • father_uuid : text
        • father_name : text
        • ... 
        • checks :
          • check_uuid1 : text, check_name1 : text, ...
          • check_uuid2: text, check_name2  : text, ...
          • ...
      • ...

elements_on_same_level :


  • request_statistics   :
    • ...
  • elements_found :
    • nb_element: X
    • elem1:
      • type: cluster
      • father_name: text
      • father_uuid : text
      • ...
    • elem2:
      • type: check
      • check_uuid : text
      • check_name: text
      • father_name : text
      • father_uiid : text
      • ...
    • elem3:
      • type: check
      • check_uuid : text
      • check_name: text
      • father_name : text
      • father_uiid : text
      • ...
    • ...
curl -s -S -H 'x-api-token: XYZ' \
-d "output_format=checks_attached_to_father" \
http://broker-module-livedata:50100/api/v2/clusters
curl -s -S -H 'x-api-token: XYZ' \
-d "output_format=elements_on_same_level" \
http://broker-module-livedata:50100/api/v2/clusters

Exemple de sortie attendue :

{
  "request_statistics": {
    "nb_elements_total": 9,
    "nb_clusters_total": 1,
    "nb_elements_filtered": 2,
    "nb_clusters_filtered": 1
  },
  "elements_found": {
    "clusters": [
      {
        "father_name": "datacenter bdx",
        "father_uuid": "d6921ee8ba1511eba36c0800277faebe",
        "checks": [
          {
            "check_name": "System Uptime",
            "check_uuid": "d6921ee8ba1511eba36c0800277faebe-e6daad4cba1511eb95980800277faebe"
          }
        ]
      }
    ],
    "hosts": []
  }
}

Exemple de sortie attendue :

{
  "request_statistics": {
    "nb_elements_total": 9,
    "nb_clusters_total": 1,
    "nb_elements_filtered": 2,
    "nb_clusters_filtered": 1
  },
  "elements_found": [
    {
      "father_name": "datacenter bdx",
      "father_uuid": "d6921ee8ba1511eba36c0800277faebe",
      "type": "cluster"
    },
    {
      "check_name": "System Uptime",
      "type": "check_cluster",
      "father_name": "datacenter bdx",
      "father_uuid": "d6921ee8ba1511eba36c0800277faebe",
      "check_uuid": "d6921ee8ba1511eba36c0800277faebe-e6daad4cba1511eb95980800277faebe"
    }
  ]
}

Retour du code 400

Paramètres POST incorrects

Paramètre inconnu
$ curl -s -S -H "x-api-token: XYZ" \
-d "parametre_inconnu=is_status_:true" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: POST parameter [ parametre_inconnu ] is unknown

ERROR 400: POST parameter [ parametre_inconnu ] is unknown

Messages d'erreurs des filtres ( filterX )

Filtre inexistant
$ curl -s -S -H "x-api-token: XYZ" \
-d "filter01=is_status_:true" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: filtering[0]: invalid field name [ is_status_ ]

ERROR 400: filtering[0]: invalid field name [ is_status_ ]

Filtre incomplet
$ curl -s -S -H "x-api-token: XYZ" \
-d "filter0=next_check" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: filtering[0]: missing value for field [ next_check ]

ERROR 400: filtering[0]: missing value for field [ next_check ]

Filtre incorrect
Valeur incorrecte pour ce type de filtre
$ curl -s -S -H "x-api-token: XYZ" \
-d "filter0=status:9" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: filtering[0]: field [ status ] => wrong value ['9']

ERROR 400: filtering[0]: field [ status ] => wrong value ['9']

Opérateur incorrect
$ curl -s -S -H "x-api-token: XYZ" \
-d "filter0=next_check:avant" \
http://broker-module-livedata:50100/api/v2/clusters

ERROR 400: filtering[0]: field [ next_check ] unknown date constraint [ avant ]

Argument incorrect
$ curl -s -S -H "x-api-token: XYZ" \
-d "filter0=next_check:in-less-than|hier" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: filtering[0]: field [ next_check ] => [ in-less-than ] => invalid literal for int() with base 10: 'hier'

ERROR 400: filtering[0]: field [ next_check ] => [ in-less-than ] => invalid literal for int() with base 10: 'hier'

Messages d'erreurs liés aux paramètres de tri ( sort )

Propriété inconnu
$ curl -s -S -H "x-api-token: XYZ" \
-d "sort=host" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: sort: invalid field name [ host ]

ERROR 400: sort: invalid field name [ host ]

Ordre de tri incorrect
$ curl -s -S -H "x-api-token: XYZ" \
-d "sort=father_name:big" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: sort: invalid sort direction [ big ] for field [ father_name ]

ERROR 400: sort: invalid sort direction [ big ] for field [ father_name ]

Messages d'erreurs liés au paramètre de format du résultat ( output_format )

Valeur incorrecte
$ curl -s -S -H "x-api-token: XYZ" \
-d "output_format=vrai" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: output_format: invalid value [ vrai ]

ERROR 400: output_format: invalid value [ vrai ]

Messages d'erreurs lors du paramétrage des propriétés présentes dans la sortie ( output_field )

Propriété de sortie inexistante
$ curl -s -S -H "x-api-token: XYZ" \
-d "output_field=is_status_" \
http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: output_field: invalid field name [ is_status_ ]

ERROR 400: output_field: invalid field name [ is_status_ ]

Erreurs communes lors de l'envoi de la requête


Messages d'erreurs liés au protocole HTTPS


Le certificat SSL a été refusé
$ curl -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory
curl: (60) SSL certificate problem: unable to get local issuer certificate
…

Cela peut se produire si le certificat du serveur est auto-signé.

Pour contourner la validité de l'émetteur du certificat, il faut utiliser l'option --insecure ( option courte : -k ).

curl --insecure -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory

Avec curl v7.29.0 :

curl: (60) Peer's Certificate issuer is not recognized.

Avec curl v7.60 et supérieur :

curl: (60) SSL certificate problem: unable to get local issuer certificate

Requête HTTP sur un serveur en HTTPS
$ curl -s -S -H "x-api-token: XYZ" \
http://broker-module-livedata:50100/api/v2/inventory
The client IP_SERVEUR:PORT_CLIENT sent a plain HTTP request, 
but this server only speaks HTTPS on this port.

The client IP_SERVEUR:PORT_CLIENT sent a plain HTTP request, but this server only speaks HTTPS on this port.

Requête HTTPS sur un serveur en HTTP
$ curl -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Avec curl v7.29.0 :

curl: (35) SSL received a record that exceeded the maximum permissible length.

Avec curl v7.60 et supérieur :

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number