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.