Создание, изменение и удаление типов КЕ

Есть насущьная необходимость внести изменения в список типов КЕ.
Пока видится, что можно часть переименовать, какие-то удалить совсеми на последок создать новые.
Хотя может гораздо проще удалить все не нужные и создать новые.
Подскажите - есть пошаговая инструкция на русском языке каким образом удалить лишние и создать новые типы КЕ?
Пока пытаюсь понять что именно надо делать для оздания новых типов КЕ по инструкции https://wiki.openitop.org/doku.php?id=2_1_0:customization:add-class-sample , но что-то плохо получается…
Можно пошагово - хотя бы в общих чертах что и в какой последовательности делать?
ToolKit я уже установил, но что с ним делать дальше? … или не с ним… чего-тто вечером голова не очень соображает :frowning:

На русском языке инструкции нет. В официальной документации есть примеры с картинками, кодом и краткими пояснениями. Например Adding a new field to the Server class [iTop Documentation].
Первым делом нужно ознакомиться с содержанием раздела Кастомизация. Некоторые вопросы уже разбирались (изменение и удаление).

Смотри тут: Собственные модули

В инструкции написано, что именно надо делать. Что не получается?

5 сообщений перенесены в новую тему: Помогите создать свой модуль Customer

[quote=“vladimir, post:2, topic:140”]
Что не получается?[/quote]
Не получается понять что делать по инструкции от сюда

  1. Create an empty module - генерация пустого модуля, но что вносить в поля:
    Module Version - это моя нумерация версий моего модуля?
    Category - какие бывают категории и на что это влияет?
    Dependencies - какие бывают зависимости и на что это влияет?
  2. Install a development instance of iTop, including your empty module in the “extensions” folder" - это что такое необходимо установить и где его взять?
  3. Install the toolkit on your developement instance - тут понятно, сделано
  4. Edit your extension module and validate it with the toolkit - круто - отредактируйте для себя и проверьте в toolkit, а как это сделать?
  5. Apply the changes made to your extension module to the “production” environment - как это сделать?

Возможно у меня совсем тупые вопросы, но хотя бы основные шаги напишите по русски - по одному предложению со ссылкой где это читать.
Я в этом вообще “дуб-дубом”.
Спасибо.

По инструкции оттуда делать ничего не надо. Она описывает общий порядок разработки модулей. Сначала нужно сделать всё точь-в-точь по этим манам:

  1. Добавление поля в КЕ
  2. Добавление нового типа КЕ

Прям так, как там написано, пункт за пунктом.

Смотрим сюда:

“Установите отдельный экземпляр iTop для разработки, включающий ваш пустой модуль в папке “дополнения””. Т.е. просто ставишь еще один iTop, в папку itop/extensions relftim папку со своим модулем.

Как пользоваться ToolKit. На первой вкладке проверяется правильность модели данных; изменил модуль, нажал Refresh, если есть ошибки, исправляешь, если нет, идешь на вторую вкладку. На второй вкладке нажимаешь Refresh, если отображаются необходимые изменения в БД, нажимаешь Udpate iTop Code And Database, если изменять БД не нужно, жмешь Udpate iTop Code. Всё, изменения модуля применены.
А какие изменения в самом модуле нужны, я знать не могу.

Кидаешь папку с модулем в экземпляр iTop, который у тебя в эксплуатации, разрешаешь редактирование config-itop.php, запускаешь http://itop/setup и обновляешь.

Но сначала это и это. Иначе никак.

У меня есть аналогичные потребности. Нигде не нашел, как можно переименовать существующий тип КЕ. У примеру у меня нет типа КЕ - Монитор, но есть никому ненужный Планшет с подходящим набором полей. Хочу переименовать Планшет в Монитор и поменять иконку. Есть какая-то инструкция, как это сделать? Уверен, что это будет немного проще, чем создание нового типа с нуля.

Вот же пример: Creating a new class of CI: Monitor [iTop Documentation]. Там даже готовый код модуля есть, ничего создавать с нуля не нужно. Если нравится именно класс Планшет, то скопируй его код в свой новый класс Монитор.

А по поводу этой идеи приличных слов у меня нет…

А вот это коллеге не подойдёт?

Rename a node

Another attribute is _rename_from . Use it to specify that the item (e.g. a class field) is in fact an existing item renamed from _rename_from to id .

Или это про другое?

Я бы сделал так:

  1. \iTop\datamodels\2.x\itop-endusers-devices\datamodel.itop-enduser-devices.xml
  2. Скопировать ветку
  3. По инструкции создайте пустой модуль (не забудьте в dependencies указать itop-endusers-devices/2.5.0. Вставьте в его xml скопированное в п.2.
  4. Переименуйте lass id=“Tablet” в Monitor, пропишите имя иконки и положите её в папку images и установите модуль ToolKit-ом.

Ну а если вам планшет как соринка в глазу. Добавьте ещё строчку .

Должно вроде сработать, Владимир поправит, если где не прав. :slight_smile:

Уже создал отдельно новый класс, но за подсказку спасибо :slight_smile:

Столкнулся с еще одной проблемой:
Тип КЕ “Monitor” создан. Я могу создавать КЕ, но(!) при создании КЕ типа “Monitor” необходимо указать Производителя и Модель. Производителей забить в базу - не проблему, а вот когда создаешь новую модель, там указывается 3 поля - Бренд, Модель и Тип КЕ, так вот в списке типов КЕ Monitorа нет.

Это “захардкоженный” справочник


Добавьте в xml модель вашего класса

<class id="Model">
<fields>
         <field id="type" xsi:type="AttributeEnum">
           <values>
             <value id="Monitor">Monitor</value>
           </values>
           </field>
       </fields>

Должен добавиться ещё один пункт меню.

1 лайк

А где именно нужно добавлять? В папке extensions или в env-production?

По идее в extantion, а потом через ToolKit внести изменения. По идеологии так, вроде, правильно. Но я тут не берусь утверждать, сам постигаю пока. :man_student:

1 лайк

Мне кажется это неправильно…
Я вижу, что в /html/datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml есть раздел <calss id=“Model” …
и в нем есть набор полей, которые должны подтягиваться. Может быть правильнее просто вписать туда еще одно поле?

Еще раз: любые правки только через собственные модули в extensions! Никаких исправлений в datamodels/2.x, а тем более в env-production делать нельзя.

т.е. если я допишу это в модуле add-class - он просто допишет этот пункт в соответствующий файл в прод?

https://www.itophub.io/wiki/page?id=2_6_0%3Acustomization%3Aadd-class-sample#add_monitor_class_in_modeltype

Хм, кажется, это уже четвертое появление этой ссылки в теме :roll_eyes:

@CheaterUA, не противься своей судьбе, перейди по ссылке))

Блин… как-то странно… я по этмоу мануалу и добавлял тип КЕ, но именно этот момент упустил из виду. Прошу прощения :slight_smile:

Логика проста. При загрузке iTop считывает кофиги модулей и формирует рабочую конфигурацию.
Когда вы вносите изменения через extension то фактически переопоеделяете/доопределяете какие-то директивы коробочной конфигурации.
Если вы внесёте измененич прямо в коробочный конфиг, то при выходе новой версии вам надо будет запомнить где были изменения, найти эти места в новом конфиге и вставить туда.
А так вы просто загрузите extension после нового конфига.

1 лайк