Benjamin Heisig, synetics GmbH
CommitterConf, 17. Oktober 2016
/me
Objekt = Configuration Item (CI) = Asset = Information Value
application/json
{
"jsonrpc": "2.0",
"method": "cmdb.object_types",
"params": {
"order_by": "title",
"filter": {
"enabled": "true"
},
"language": "en",
"apikey": "c1ia5q"
},
"id": 1
}
curl \
--data '{"jsonrpc":"2.0", \
"method":"cmdb.object_types", \
"params":{"order_by":"title","filter":{"enabled":"true"}, \
"language":"en","apikey":"c1ia5q"},"id":1}' \
--header "Content-Type: application/json" \
https://demo.i-doit.com/src/jsonrpc.php
{
"jsonrpc": "2.0",
"result": [
{
"id": "12",
"title": "Air Condition System",
"const": "C__OBJTYPE__AIR_CONDITION_SYSTEM",
"status": "2",
"type_group": "2",
"type_group_title": "Infrastructure",
// …
},
// …
],
"id":1
}
cmdb.object.{create,read,update,delete}
cmdb.objects.read
cmdb.objects_by_relation.read
cmdb.impact.read
cmdb.location_tree.read
cmdb.workstation_components.read
cmdb.object_types.read
cmdb.object_type_groups.read
cmdb.object_type_categories.read
cmdb.category.{create,read,update,delete}
cmdb.category_info.read
cmdb.dialog.read
cmdb.logbook.{create,read}
cmdb.reports.read
idoit.{login,logout}
idoit.search
idoit.version
idoit.constants
src/classes/api/model
API ab i-doit 1.8 als separates Modul
Download
git clone git@bitbucket.org:dstuecken/i-doit-api-clients.git
cd i-doit-api-clients/php/
make initialize
Einbinden
require 'i-doit-api-clients/php/apiclient.php';
Event konfigurieren
Liste von Events
Event Log
Dem Script werden Angaben zu den Änderungen übergeben (JSON).
{
"success": 0,
"objectID": "2912",
"categoryID": 1,
"categoryConst": "C__CATG__GLOBAL",
"categoryDataID": "2949",
"multivalue": false,
"changes": [],
"postData": {
"data_id": "2948",
"properties": {
"title": {
"tag": "title",
"value": "Headquarter Network",
"title": "LC__UNIVERSAL__TITLE"
},
[…]
}
},
"data": {
"2949":{
"title": "Headquarter Network",
"status": "Normal",
"created": "2016-04-26 14:47:57",
"created_by": "admin",
"changed": "2016-04-26 14:47:57",
"changed_by": "admin",
"purpose": "Produktion",
"category": "Demo",
"sysid": "SYSID_1461674878",
"cmdb_status": "In Betrieb",
"type": "Supernet",
"tag": null,
"description": "",
"_id": 2912,
"_title": "[…]"
}
}
}
API und Events
API
Jenkins ⇒ erstellt VM in VMware ⇒ dokumentiert in i-doit und erstellt DHCP-/DNS-Konfiguration ⇒ installiert OS ⇒ …
API
API
Vorsicht bei vielen Requests innerhalb kurzer Zeit!
Wenn Check_MK meldet, dass mehrere Server ausgefallen sind, wird a) der Status in i-doit auf "Außer Betrieb" gesetzt und b) die API der Kaffeemaschine angesteuert, sofort eine Tasse schwarzen, heißen Kaffee zuzubereiten.
PS: Unsere Partner und wir bieten umfassende Trainings – u. a. zur API – an.