configuration.importcompare(object parameters)
Цей метод дозволяє порівняти файл імпорту з поточними елементами системи та показує, що зміниться, якщо цей файл імпорту буде імпортовано.
Цей спосіб доступний користувачам будь-якого типу. Дозволи на виклик методу можна скасувати в налаштуваннях ролі користувача. Див. Ролі користувача для отримання додаткової інформації.
(object)
Параметри, що містять можливі дані для імпорту та правила обробки даних.
Параметр | Тип | Опис |
---|---|---|
format (обов’язково) |
рядок | Формат серіалізованого рядка. Можливі значення: yaml - YAML;xml - XML;> json - JSON. |
source (обов’язково) |
рядок | Серіалізований рядок, що містить дані конфігурації. |
rules (обов’язково) |
object | Правила імпорту нових і існуючих об’єктів. Параметр rules детально описано в таблиці нижче. |
Якщо правила не задано, оновлювати не буде нічого, і результат буде порожнім.
Порівняння проводитиметься лише для груп хостів і шаблонів. Тригери та графіки порівнюватимуться лише для імпортованих шаблонів, будь-які інші вважатимуться «новими».
Об’єкт rules
підтримує такі параметри.
Параметр | Тип | Опис |
---|---|---|
discoveryRules | об'єкт | Правила щодо імпорту правил LLD. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , будуть створені нові правила LLD; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі правила LLD будуть оновлені; за замовчуванням: false ;deleteMissing - (boolean) якщо встановлено значення true , правила LLD, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
graphs | object | Правила щодо імпорту графіків. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові графіки; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі графіки будуть оновлені; default: false ;deleteMissing - (boolean) якщо встановлено значення true , графіки, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
groups | object | Правила щодо того, як імпортувати групи хостів. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , будуть створені нові групи хостів; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі групи хостів будуть оновлені; за замовчуванням: false . |
hosts | object | Правила щодо того, як імпортувати хости. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , будуть створені нові хости; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі хости будуть оновлені; за замовчуванням: false .Цей параметр не матиме значення для виводу. Це дозволено лише для узгодженості з configuration.import . |
httptests | object | Правила щодо того, як імпортувати веб-сценарії. Підтримувані параметри: createMissing - (boolean) , якщо встановлено на true , створюватимуться нові веб-сценарії; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі веб-сценарії будуть оновлені; за замовчуванням: false ;deleteMissing - (boolean) якщо встановлено значення true , веб-сценарії, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
images | object | Правила імпорту зображень. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові зображення; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі зображення буде оновлено; за замовчуванням: false .Цей параметр не матиме значення для виводу. Це дозволено лише для узгодженості з configuration.import . |
items | object | Правила щодо того, як імпортувати елементи. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові елементи; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі елементи буде оновлено; default: false ;deleteMissing - (boolean) якщо встановлено значення true , елементи, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
maps | object | Правила щодо того, як імпортувати карти. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові карти; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі карти будуть оновлені; за замовчуванням: false .Цей параметр не матиме значення для виводу. Це дозволено лише для узгодженості з configuration.import . |
mediaTypes | object | Правила щодо того, як імпортувати типи медіа. Підтримувані параметри: createMissing - (boolean) , якщо встановлено на true , будуть створені нові типи медіа; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі типи носіїв буде оновлено; за замовчуванням: false .Цей параметр не матиме значення для виводу. Це дозволено лише для узгодженості з configuration.import . |
templateLinkage | об’єкт | Правила імпорту посилань шаблонів. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові посилання між шаблонами та хостом ; за замовчуванням: false ;deleteMissing - (boolean) якщо встановлено значення true , посилання на шаблон, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
шаблони | об'єкт | Правила імпорту шаблонів. Підтримувані параметри: createMissing - (логічний) , якщо встановлено значення true , створюватимуться нові шаблони; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі шаблони будуть оновлені; за замовчуванням: false . |
templateDashboards | об’єкт | Правила імпорту панелей інструментів шаблонів. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , будуть створені нові панелі інструментів шаблону; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі інформаційні панелі шаблонів буде оновлено; за замовчуванням: false ;deleteMissing - (boolean) якщо встановлено значення true , інформаційні панелі шаблонів, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
тригери | об'єкт | Правила імпорту тригерів. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові тригери; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі тригери будуть оновлені; default: false ;deleteMissing - (boolean) якщо встановлено значення true , тригери, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
valueMaps | об’єкт | Правила імпорту карт значень хосту або шаблону. Підтримувані параметри: createMissing - (boolean) , якщо встановлено значення true , створюватимуться нові карти значень ; за замовчуванням: false ;updateExisting - (boolean) якщо встановлено значення true , існуючі карти значень буде оновлено; default: false ;deleteMissing - (boolean) якщо встановлено значення true , карти значень, яких немає в імпортованих даних, буде видалено з бази даних; за замовчуванням: false . |
(array)
Повертає масив зі змінами в конфігурації, які будуть внесені.
Імпортуйте шаблон і елементи, що містяться в рядку YAML. Якщо будь-які елементи в YAML відсутні, вони будуть показані як видалені, а все інше залишиться без змін.
Запит:
{
"jsonrpc": "2.0",
"method": "configuration.import",
"params": {
"format": "xml",
"rules": {
"groups": {
"createMissing": true,
"updateExisting": true
},
"templates": {
"createMissing": true,
"updateExisting": true
},
"items": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"triggers": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"discoveryRules": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"valueMaps": {
"createMissing": true,
"updateExisting": false
}
},
"source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><zabbix_export><version>5.4</version><date>2021-05-27T07:12:07Z</date><groups><group><uuid>6f6799aa69e844b4b3918f779f2abf08</uuid><name>Zabbix servers</name></group></groups><templates><template><uuid>e1bde9bf2f0544f5929f45b82502e744</uuid><template>Export template</template><name>Export template</name><groups><group><name>Zabbix servers</name></group></groups><items><item><uuid>3237bc89226e42ed8207574022470e83</uuid><name>Item</name><key>item.key</key><delay>30s</delay><valuemap><name>Host status</name></valuemap><triggers><trigger><uuid>bd1ed0089e4b4f35b762c9d6c599c348</uuid><expression>last(/Export template/item.key)=0</expression><name>Trigger</name></trigger></triggers></item></items><discovery_rules><discovery_rule><uuid>c91616bcf4a44f349539a1b40cb0979d</uuid><name>Discovery rule</name><key>rule.key</key><item_prototypes><item_prototype><uuid>7e164881825744248b3039af3435cf4b</uuid><name>Item prototype</name><key>prototype.key</key></item_prototype></item_prototypes></discovery_rule></discovery_rules><valuemaps><valuemap><uuid>7e666857c5df4af3a338349586f2afc3</uuid><name>Host status</name><mappings><mapping><value>0</value><newvalue>Up</newvalue></mapping><mapping><value>2</value><newvalue>Unreachable</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Відповідь:
{
"jsonrpc":"2.0",
"result":{
"templates":{
"updated":[
{
"before":{
"uuid":"e1bde9bf2f0544f5929f45b82502e744",
"template":"Export template",
"name":"Export template"
},
"after":{
"uuid":"e1bde9bf2f0544f5929f45b82502e744",
"template":"Export template",
"name":"Export template"
},
"items":{
"added":[
{
"after":{
"uuid":"3237bc89226e42ed8207574022470e83",
"name":"Item",
"key":"item.key",
"delay":"30s",
"valuemap":{
"name":"Host status"
}
},
"triggers":{
"added":[
{
"after":{
"uuid":"bd1ed0089e4b4f35b762c9d6c599c348",
"expression":"last(/Export template/item.key)=0",
"name":"Trigger"
}
}
]
}
}
],
"removed":[
{
"before":{
"uuid":"bd3e7b28b3d544d6a83ed01ddaa65ab6",
"name":"Old Item",
"key":"ite_old.key",
"delay":"30s",
"valuemap":{
"name":"Host status"
}
}
}
]
},
"discovery_rules":{
"updated":[
{
"before":{
"uuid":"c91616bcf4a44f349539a1b40cb0979d",
"name":"Discovery rule",
"key":"rule.key"
},
"after":{
"uuid":"c91616bcf4a44f349539a1b40cb0979d",
"name":"Discovery rule",
"key":"rule.key"
},
"item_prototypes":{
"updated":[
{
"before":{
"uuid":"7e164881825744248b3039af3435cf4b",
"name":"Old item prototype",
"key":"prototype_old.key"
},
"after":{
"uuid":"7e164881825744248b3039af3435cf4b",
"name":"Item prototype",
"key":"prototype.key"
}
}
]
}
}
]
}
}
]
}
},
"id":1
}
CConfiguration::importcompare() в ui/include/classes/api/services/CConfiguration.php.