Intro
iTop es lo más de lo más para gestionar el hardware (y hasta el software) de una compañía o departamento. No hemos podido dejar de usarlo desde que lo descubrimos. Sin embargo, la configuración por defecto no incluye la opción de dar de alta dispositivos tales como monitores.
Buscando en google encontramos un artículo estupendo sobre como añadir los monitores a iTop. Lo bueno es que nos sirve para añadir cualquier nuevo tipo de dispositivo (o CI como lo llama iTop).
iTop customization
Para tunear iTop necesitamos un plugin llamado iTopDataModelToolkit. La forma de instalarlo y configurarlo la tenemos en el siguiente enlace.
Creamos el módulo de customización (pedazo más feo de palabro) con las características del artículo sobre creación del elemento monitores.
Label | Value | Remarks |
---|---|---|
Module name | sample-add-class | Names starting with itop- and combodo- are reserved for use by Combodo. It is recommended not to put spaces or accentuated characters in the name of the module. Two modules with the same name cannot co-exist in the same iTop instance. |
Module Label | Add Class Sample | This label will be displayed in the setup wizard. Localized characters and spaces are allowed |
Module Version | 1.0.0 | The convention is to use a 3 digits numbering scheme: X.Y.Z |
Category | business | Modules that provide modifications to the data model should be in the category ‘business’ |
Dependencies | itop-config-mgmt/2.0.0,itop-endusers-devices/2.0.0 | Our customization module depends on the modules: iTop Configuration Management (version 2.0.0) in which the Physical Device class is defined and iTop End User Devices (version 2.0.0) in which the “End User Devices” menu is defined |
No voy a explicar todos los pasos en este artículo, porque sería repetir lo que ya está en los artículos de los enlaces.
Añadir elemento al panel de control
En el artículo sobre la creación del elemento monitores nos explican como se ha de añadir el nuevo elemento al panel de control. Se hace mediante el código:
<menus> <menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist"> <definition> <cells> <cell id="2" _delta="must_exist"> <dashlets> <dashlet id="99" xsi:type="DashletBadge" _delta="define"> <rank>8</rank> <class>Monitor</class> </dashlet> </dashlets> </cell> </cells> </definition> </menu> </menus>
Este código habría que incluirlo en la sección menus del script datamodel.mod-model_module.xml del módulo. Sin embargo, si no es el primer elemento que añadimos el sistema se quejará de que ya ha cargado el módulo. El truco está en la línea:
<dashlet id="99" xsi:type="DashletBadge" _delta="define">
Hay que cambiar la id por un número distinto del 99, que es el que se le ha aplicado al elemento monitores. Cada elemento tendrá un número diferente. Parece que el máximo es 99, así que lo mejor sería poner ids por debajo de ese número.
Añadir entradas a los modelos
Sin embargo, si que voy a explicar como crear un código para añadir entradas a los modelos. Resulta que al ir a añadir un monitor no aparecía el modelo en el desplegable, y tampoco aparecía la entrada ‘Monitor’ al ir a crear el modelo. Después de buscar en google (cómo no!) resulta que la solución está en crear otro nuevo módulo de extensión con la siguiente configuración en el archivo de datamodel:
<?xml version="1.0" encoding="UTF-8"?> <itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <classes> <class id="Model"> <fields> <field id="type" xsi:type="AttributeEnum" _delta="redefine"> <values> <value>NetworkDevice</value> <value>Server</value> <value>SANSwitch</value> <value>StorageSystem</value> <value>Rack</value> <value>Enclosure</value> <value>PC</value> <value>Tablet</value> <value>TeleConf</value> <value>Telephone</value> <value>MobilePhone</value> <value>Monitor</value> <value>Printer</value> <value>DiskArray</value> <value>NAS</value> <value>TapeLibrary</value> <value>IPPhone</value> <value>Peripheral</value> <value>PowerSource</value> <value>PDU</value> <value>VidConfUnit</value> </values> <sql>type</sql> <default_value/> <is_null_allowed>false</is_null_allowed> <display_style>list</display_style> </field> </fields> </class> </classes> <menus> </menus> <profiles> </profiles> </itop_design>
He llamado al módulo mod-model_module y lo he creado con las mismas dependencias que el módulo de monitores en el módulo de customización.