This is a translation of the original English documentation page. Help us make it better.

configuration.importcompare

Опис

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.