Files
iTop/datamodel/itop-config-mgmt-1.0.0/datamodel.itop-config-mgmt.xml
Romain Quetiez c1ee1d4e8a Cleanup in data model XML files
SVN:trunk[1923]
2012-03-22 16:24:16 +00:00

2897 lines
104 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<classes>
<class name="Organization" category="bizmodel,searchable,structure" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="organization" db_key_field="id" db_final_class_field="">
<properties>
<comment><![CDATA[/**
* Persistent classes for a CMDB
*
* @author Erwan Taloc <erwan.taloc@combodo.com>
* @author Romain Quetiez <romain.quetiez@combodo.com>
* @author Denis Flaven <denis.flaven@combodo.com>
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
*/]]></comment>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="code" type="String" sql="code" default_value="" is_null_allowed="true"/>
<field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="true">
<values>
<value>active</value>
<value>inactive</value>
</values>
</field>
<field name="parent_id" type="HierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL"/>
<field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>code</item>
<item>status</item>
<item>parent_id</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>code</item>
<item>status</item>
<item>parent_id</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>parent_id</item>
</items>
</list>
</presentation>
</class>
<class name="Location" category="bizmodel,searchable,structure" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="location" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/location.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="true">
<values>
<value>active</value>
<value>inactive</value>
</values>
</field>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="address" type="Text" sql="address" default_value="" is_null_allowed="true"/>
<field name="postal_code" type="String" sql="postal_code" default_value="" is_null_allowed="true"/>
<field name="city" type="String" sql="city" default_value="" is_null_allowed="true"/>
<field name="country" type="String" sql="country" default_value="" is_null_allowed="true"/>
<field name="parent_id" type="HierarchicalKey" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
<field name="contact_list" type="LinkedSet" linked_class="Contact" ext_key_to_me="location_id" count_min="0" count_max="0"/>
<field name="infra_list" type="LinkedSet" linked_class="InfrastructureCI" ext_key_to_me="location_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>address</item>
<item>postal_code</item>
<item>city</item>
<item>country</item>
<item>parent_id</item>
<item>contact_list</item>
<item>infra_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>city</item>
<item>country</item>
<item>parent_id</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>city</item>
<item>country</item>
</items>
</list>
</presentation>
</class>
<class name="Contact" category="bizmodel,searchable,structure" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="contact" db_key_field="id" db_final_class_field="finalclass">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/team.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
<attribute name="email"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="status" type="Enum" sql="status" default_value="active" is_null_allowed="false">
<values>
<value>active</value>
<value>inactive</value>
</values>
</field>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="email" type="EmailAddress" sql="email" default_value="" is_null_allowed="false"/>
<field name="phone" type="String" sql="phone" default_value="" is_null_allowed="true"/>
<field name="location_id" type="ExternalKey" target_class="Location" jointype="" filter="SELECT Location AS L WHERE L.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="location_name" type="ExternalField" extkey_attcode="location_id" target_attcode="name"/>
<field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToContact" ext_key_to_me="contact_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
<field name="service_list" type="LinkedSetIndirect" linked_class="lnkServiceToContact" ext_key_to_me="contact_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
<field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToContact" ext_key_to_me="contact_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
<field name="ci_list" type="LinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="contact_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
<field name="team_list" type="LinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="contact_id" ext_key_to_remote="team_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>team_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
</items>
</search>
<list>
<items>
<item>finalclass</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
</items>
</list>
</presentation>
</class>
<class name="Person" category="bizmodel,searchable,structure" parent="Contact" abstract="false" key_type="autoincrement" db_table="person" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s %2$s">
<attributes>
<attribute name="first_name"/>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/person.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="first_name"/>
<attribute name="org_id"/>
<attribute name="email"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="first_name" type="String" sql="first_name" default_value="" is_null_allowed="false"/>
<field name="employee_id" type="String" sql="employee_id" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>first_name</item>
<item>org_id</item>
<item>status</item>
<item>location_id</item>
<item>email</item>
<item>phone</item>
<item>employee_id</item>
<item>team_list</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
<item>first_name</item>
<item>employee_id</item>
</items>
</search>
<list>
<items>
<item>name</item>
<item>first_name</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
</items>
</list>
</presentation>
</class>
<class name="Team" category="bizmodel,searchable,structure" parent="Contact" abstract="false" key_type="autoincrement" db_table="team" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/team.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="member_list" type="LinkedSetIndirect" linked_class="lnkTeamToContact" ext_key_to_me="team_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>location_id</item>
<item>email</item>
<item>phone</item>
<item>member_list</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>team_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>email</item>
<item>phone</item>
<item>location_id</item>
</items>
</list>
</presentation>
</class>
<class name="lnkTeamToContact" category="bizmodel,searchable,structure" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkteamtocontact" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="team_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name=""/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="team_id" type="ExternalKey" target_class="Team" jointype="" sql="team_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="team_name" type="ExternalField" extkey_attcode="team_id" target_attcode="name"/>
<field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
<field name="contact_location_id" type="ExternalField" extkey_attcode="contact_id" target_attcode="location_id"/>
<field name="contact_location_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="location_name"/>
<field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
<field name="contact_phone" type="ExternalField" extkey_attcode="contact_id" target_attcode="phone"/>
<field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>team_id</item>
<item>contact_id</item>
<item>role</item>
</items>
</details>
<search>
<items>
<item>team_id</item>
<item>contact_id</item>
<item>role</item>
</items>
</search>
<list>
<items>
<item>team_id</item>
<item>contact_id</item>
<item>contact_location_id</item>
<item>contact_email</item>
<item>contact_phone</item>
<item>role</item>
</items>
</list>
</presentation>
</class>
<class name="Document" category="bizmodel,searchable,documentation" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="document" db_key_field="id" db_final_class_field="finalclass">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/document.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="type" type="Enum" sql="type" default_value="presentation" is_null_allowed="true">
<values>
<value>contract</value>
<value>networkmap</value>
<value>presentation</value>
<value>training</value>
<value>whitePaper</value>
<value>workinginstructions</value>
</values>
</field>
<field name="status" type="Enum" sql="status" default_value="draft" is_null_allowed="false">
<values>
<value>draft</value>
<value>published</value>
<value>obsolete</value>
</values>
</field>
<field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToDoc" ext_key_to_me="document_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
<field name="service_list" type="LinkedSetIndirect" linked_class="lnkServiceToDoc" ext_key_to_me="document_id" ext_key_to_remote="service_id" count_min="0" count_max="0"/>
<field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToDoc" ext_key_to_me="document_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
<field name="ci_list" type="LinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="document_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
</items>
</search>
<list>
<items>
<item>org_id</item>
<item>type</item>
<item>status</item>
</items>
</list>
</presentation>
</class>
<class name="WebDoc" category="bizmodel,searchable,documentation" parent="Document" abstract="false" key_type="autoincrement" db_table="externaldoc" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/document.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="url" type="URL" target="_blank" sql="url" default_value="" is_null_allowed="false"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>url</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>url</item>
</items>
</search>
<list>
<items>
<item>org_id</item>
<item>type</item>
<item>status</item>
<item>url</item>
</items>
</list>
</presentation>
</class>
<class name="Note" category="bizmodel,searchable,documentation" parent="Document" abstract="false" key_type="autoincrement" db_table="note" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/document.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="note" type="Text" sql="note" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>note</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>note</item>
</items>
</search>
<list>
<items>
<item>org_id</item>
<item>type</item>
<item>status</item>
<item>note</item>
</items>
</list>
</presentation>
</class>
<class name="FileDoc" category="bizmodel,searchable,documentation" parent="Document" abstract="false" key_type="autoincrement" db_table="filedoc" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/document.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="contents" type="Blob"/>
</fields>
<methods>
<method name="DisplayBareProperties" static="false" access="public" type="Overload-cmdbAbstractObject"><comment><![CDATA[/**
* Overload the display of the properties to add a tab (the first one)
* with the preview of the document
*/]]></comment><![CDATA[ public function DisplayBareProperties(WebPage $oPage, $bEditMode = false, $sPrefix = '', $aExtraParams = array())
{
if (!$bEditMode)
{
$oPage->SetCurrentTab(Dict::S('Class:Document:PreviewTab'));
$oPage->add($this->DisplayDocumentInline($oPage, 'contents'));
$oPage->SetCurrentTab(Dict::S('UI:PropertiesTab'));
}
parent::DisplayBareProperties($oPage, $bEditMode, $sPrefix, $aExtraParams);
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
<item>contract_list</item>
<item>service_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>contents</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>org_id</item>
<item>description</item>
<item>type</item>
<item>status</item>
</items>
</search>
<list>
<items>
<item>org_id</item>
<item>type</item>
<item>status</item>
<item>contents</item>
</items>
</list>
</presentation>
</class>
<class name="Licence" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="licence" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/licence.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="provider" type="String" sql="provider" default_value="" is_null_allowed="false"/>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="product" type="String" sql="product" default_value="" is_null_allowed="false"/>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="start" type="Date" sql="start" default_value="" is_null_allowed="true"/>
<field name="end" type="Date" sql="end" default_value="" is_null_allowed="true"/>
<field name="licence_key" type="String" sql="licence_key" default_value="" is_null_allowed="true"/>
<field name="scope" type="Text" sql="scope" default_value="" is_null_allowed="true"/>
<field name="usage_limit" type="Integer" sql="usage_limit" default_value="" is_null_allowed="true"/>
<field name="usage_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="licence_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>org_id</item>
<item>provider</item>
<item>product</item>
<item>start</item>
<item>end</item>
<item>licence_key</item>
<item>scope</item>
<item>usage_limit</item>
<item>usage_list</item>
</items>
</details>
<search>
<items>
<item>org_id</item>
<item>provider</item>
<item>product</item>
<item>name</item>
<item>start</item>
<item>end</item>
<item>licence_key</item>
<item>scope</item>
</items>
</search>
<list>
<items>
<item>org_id</item>
<item>provider</item>
<item>product</item>
<item>start</item>
<item>end</item>
</items>
</list>
</presentation>
</class>
<class name="Subnet" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="subnet" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s / %2$s">
<attributes>
<attribute name="ip"/>
<attribute name="ip_mask"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/subnet.png</icon>
<reconciliation>
<attributes>
<attribute name="ip"/>
<attribute name="ip_mask"/>
<attribute name="org_id"/>
<attribute name="org_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="org_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="ip" type="IPAddress" sql="ip" default_value="" is_null_allowed="false"/>
<field name="ip_mask" type="IPAddress" sql="ip_mask" default_value="" is_null_allowed="false"/>
</fields>
<methods>
<method name="DisplayBareRelations" static="false" access="public" type="Overload-cmdbAbstractObject"><![CDATA[ function DisplayBareRelations(WebPage $oPage, $bEditMode = false)
{
parent::DisplayBareRelations($oPage, $bEditMode);
if (!$bEditMode)
{
$oPage->SetCurrentTab(Dict::S('Class:Subnet/Tab:IPUsage'));
$bit_ip = ip2long($this->Get('ip'));
$bit_mask = ip2long($this->Get('ip_mask'));
$iIPMin = sprintf('%u', ($bit_ip & $bit_mask) | 1); // exclude the first one: identifies the subnet itself
$iIPMax = sprintf('%u', (($bit_ip | (~$bit_mask))) & 0xfffffffe); // exclude the last one : broadcast address
$sIPMin = long2ip($iIPMin);
$sIPMax = long2ip($iIPMax);
$oPage->p(Dict::Format('Class:Subnet/Tab:IPUsage-explain', $sIPMin, $sIPMax));
$oIfFilter = DBObjectSearch::FromOQL("SELECT NetworkInterface AS if WHERE INET_ATON(if.ip_address) >= INET_ATON('$sIPMin') AND INET_ATON(if.ip_address) <= INET_ATON('$sIPMax')");
$oIfSet = new CMDBObjectSet($oIfFilter);
$oBlock = new DisplayBlock($oIfFilter, 'list', false);
$oBlock->Display($oPage, 'nwif', array('menu' => false));
$iCountUsed = $oIfSet->Count();
$iCountRange = $iIPMax - $iIPMin; // On 32-bit systems the substraction will be computed using floats for values greater than PHP_MAX_INT;
$iFreeCount = $iCountRange - $iCountUsed;
$oPage->SetCurrentTab(Dict::S('Class:Subnet/Tab:FreeIPs'));
$oPage->p(Dict::Format('Class:Subnet/Tab:FreeIPs-count', $iFreeCount));
$oPage->p(Dict::S('Class:Subnet/Tab:FreeIPs-explain'));
$aUsedIPs = $oIfSet->GetColumnAsArray('ip_address', false);
$iAnIP = $iIPMin;
$iFound = 0;
while (($iFound < min($iFreeCount, 10)) && ($iAnIP <= $iIPMax))
{
$sAnIP = long2ip($iAnIP);
if (!in_array($sAnIP, $aUsedIPs))
{
$iFound++;
$oPage->p($sAnIP);
}
else
{
}
$iAnIP++;
}
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>ip</item>
<item>ip_mask</item>
<item>org_id</item>
<item>description</item>
</items>
</details>
<search>
<items>
<item>ip</item>
<item>ip_mask</item>
<item>org_id</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>ip</item>
<item>ip_mask</item>
<item>org_id</item>
</items>
</list>
</presentation>
</class>
<class name="Patch" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="patch" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/patch.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="target_sw" type="String" sql="target_sw" default_value="" is_null_allowed="true"/>
<field name="version" type="String" sql="version" default_value="" is_null_allowed="true"/>
<field name="type" type="Enum" sql="type" default_value="security" is_null_allowed="false">
<values>
<value>application</value>
<value>os</value>
<value>security</value>
<value>servicepack</value>
</values>
</field>
<field name="ci_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="patch_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>description</item>
<item>target_sw</item>
<item>version</item>
<item>type</item>
<item>ci_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>target_sw</item>
<item>version</item>
<item>type</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>target_sw</item>
<item>version</item>
<item>type</item>
</items>
</list>
</presentation>
</class>
<class name="Software" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="software" db_key_field="id" db_final_class_field="finalclass">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/software.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>description</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>description</item>
</items>
</list>
</presentation>
</class>
<class name="Application" category="bizmodel,searchable,configmgmt" parent="Software" abstract="false" key_type="autoincrement" db_table="software_app" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/software.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="instance_list" type="LinkedSet" linked_class="ApplicationInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>description</item>
<item>instance_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>description</item>
</items>
</list>
</presentation>
</class>
<class name="DBServer" category="bizmodel,searchable,configmgmt" parent="Software" abstract="false" key_type="autoincrement" db_table="software_db" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/software.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="instance_list" type="LinkedSet" linked_class="DBServerInstance" ext_key_to_me="software_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>description</item>
<item>instance_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>description</item>
</items>
</list>
</presentation>
</class>
<class name="lnkPatchToCI" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkpatchtoci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="patch_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="patch_id"/>
<attribute name="ci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="patch_id" type="ExternalKey" target_class="Patch" jointype="" sql="patch_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="patch_name" type="ExternalField" extkey_attcode="patch_id" target_attcode="name"/>
<field name="ci_id" type="ExternalKey" target_class="Device" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
<field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>patch_id</item>
<item>ci_id</item>
<item>ci_status</item>
</items>
</details>
<search>
<items>
<item>patch_id</item>
<item>ci_id</item>
</items>
</search>
<list>
<items>
<item>patch_id</item>
<item>ci_id</item>
<item>ci_status</item>
</items>
</list>
</presentation>
</class>
<class name="FunctionalCI" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="true" key_type="autoincrement" db_table="functionalci" db_key_field="id" db_final_class_field="finalclass">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/server.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="status" type="Enum" sql="status" default_value="implementation" is_null_allowed="false">
<values>
<value>implementation</value>
<value>production</value>
<value>obsolete</value>
</values>
</field>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="owner_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="importance" type="Enum" sql="importance" default_value="medium" is_null_allowed="false">
<values>
<value>low</value>
<value>medium</value>
<value>high</value>
</values>
</field>
<field name="contact_list" type="LinkedSetIndirect" linked_class="lnkCIToContact" ext_key_to_me="ci_id" ext_key_to_remote="contact_id" count_min="0" count_max="0"/>
<field name="document_list" type="LinkedSetIndirect" linked_class="lnkCIToDoc" ext_key_to_me="ci_id" ext_key_to_remote="document_id" count_min="0" count_max="0"/>
<field name="solution_list" type="LinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="ci_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
<field name="contract_list" type="LinkedSetIndirect" linked_class="lnkContractToCI" ext_key_to_me="ci_id" ext_key_to_remote="contract_id" count_min="0" count_max="0"/>
<field name="ticket_list" type="LinkedSetIndirect" linked_class="lnkTicketToCI" ext_key_to_me="ci_id" ext_key_to_remote="ticket_id" count_min="0" count_max="0"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"contact" => array("sQuery"=>"SELECT Contact AS c JOIN lnkCIToContact AS l1 ON l1.contact_id = c.id WHERE l1.ci_id = :this->id", "bPropagate"=>true, "iDistance"=>3),
"solution" => array("sQuery"=>"SELECT ApplicationSolution AS s JOIN lnkSolutionToCI AS l1 ON l1.solution_id = s.id WHERE l1.ci_id = :this->id", "bPropagate"=>true, "iDistance"=>2),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
</items>
</search>
<list>
<items>
<item>finalclass</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
</items>
</list>
</presentation>
</class>
<class name="SoftwareInstance" category="bizmodel,searchable,configmgmt" parent="FunctionalCI" abstract="true" key_type="autoincrement" db_table="softwareinstance" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s - %2$s">
<attributes>
<attribute name="name"/>
<attribute name="device_id_friendlyname"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/application.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="device_id"/>
<attribute name="device_name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="device_id" type="ExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="device_name" type="ExternalField" extkey_attcode="device_id" target_attcode="name"/>
<field name="licence_id" type="ExternalKey" target_class="Licence" jointype="" filter="SELECT Licence WHERE org_id = :this-&gt;org_id" sql="licence_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="licence_name" type="ExternalField" extkey_attcode="licence_id" target_attcode="name"/>
<field name="version" type="String" sql="version" default_value="" is_null_allowed="true"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
</fields>
<methods>
<method name="ComputeValues" static="false" access="public" type="Overload-DBObject"><![CDATA[ public function ComputeValues()
{
}]]></method>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
// Actually this should be limited to the Software instances based on a DBServer Application type...
"db_instances" => array("sQuery"=>"SELECT DatabaseInstance AS db WHERE db.db_server_instance_id = :this->id", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case 'depends on':
$aRels = array(
"applications" => array("sQuery"=>"SELECT Device JOIN SoftwareInstance AS app ON app.device_id = Device.id WHERE app.id = :this->id", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>version</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>version</item>
</items>
</search>
<list>
<items>
<item>finalclass</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>version</item>
</items>
</list>
</presentation>
</class>
<class name="DBServerInstance" category="bizmodel,searchable,configmgmt" parent="SoftwareInstance" abstract="false" key_type="autoincrement" db_table="softwareinstance_dbserver" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s - %2$s">
<attributes>
<attribute name="name"/>
<attribute name="device_id_friendlyname"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/database.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="software_id"/>
<attribute name="software_name"/>
<attribute name="device_id"/>
<attribute name="device_name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="software_id" type="ExternalKey" target_class="DBServer" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="software_name" type="ExternalField" extkey_attcode="software_id" target_attcode="name"/>
<field name="dbinstance_list" type="LinkedSet" linked_class="DatabaseInstance" ext_key_to_me="db_server_instance_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>software_id</item>
<item>version</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>dbinstance_list</item>
</items>
</details>
<search>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>software_id</item>
<item>version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>software_id</item>
<item>version</item>
</items>
</list>
</presentation>
</class>
<class name="ApplicationInstance" category="bizmodel,searchable,configmgmt" parent="SoftwareInstance" abstract="false" key_type="autoincrement" db_table="softwareinstance_application" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s - %2$s">
<attributes>
<attribute name="name"/>
<attribute name="device_id_friendlyname"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/application.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="software_id"/>
<attribute name="software_name"/>
<attribute name="device_id"/>
<attribute name="device_name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="software_id" type="ExternalKey" target_class="Application" jointype="" sql="software_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="software_name" type="ExternalField" extkey_attcode="software_id" target_attcode="name"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>software_id</item>
<item>version</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>licence_id</item>
<item>software_id</item>
<item>version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>software_id</item>
<item>version</item>
</items>
</list>
</presentation>
</class>
<class name="DatabaseInstance" category="bizmodel,searchable,configmgmt" parent="FunctionalCI" abstract="false" key_type="autoincrement" db_table="databaseinstance" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s - %2$s">
<attributes>
<attribute name="name"/>
<attribute name="db_server_instance_id_friendlyname"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/database-instance.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
<attribute name="db_server_instance_id"/>
<attribute name="db_server_instance_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="db_server_instance_id" type="ExternalKey" target_class="DBServerInstance" jointype="" filter="SELECT DBServerInstance WHERE org_id = :this-&gt;org_id" sql="db_server_instance_id" is_null_allowed="false" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="db_server_instance_name" type="ExternalField" extkey_attcode="db_server_instance_id" target_attcode="name"/>
<field name="db_server_instance_version" type="ExternalField" extkey_attcode="db_server_instance_id" target_attcode="version"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "depends on":
$aRels = array(
"db_instances" => array("sQuery"=>"SELECT DBServerInstance AS db_server_inst JOIN DatabaseInstance AS db ON db.db_server_instance_id = db_server_inst.id WHERE db.id = :this->id", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>db_server_instance_id</item>
<item>db_server_instance_version</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>db_server_instance_id</item>
<item>db_server_instance_version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>db_server_instance_id</item>
<item>db_server_instance_version</item>
</items>
</list>
</presentation>
</class>
<class name="ApplicationSolution" category="bizmodel,searchable,configmgmt" parent="FunctionalCI" abstract="false" key_type="autoincrement" db_table="applicationsolution" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/solution.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="ci_list" type="LinkedSetIndirect" linked_class="lnkSolutionToCI" ext_key_to_me="solution_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
<field name="process_list" type="LinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="solution_id" ext_key_to_remote="process_id" count_min="0" count_max="0"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"process" => array("sQuery"=>"SELECT BusinessProcess AS p JOIN lnkProcessToSolution AS l1 ON l1.process_id = p.id WHERE l1.solution_id = :this->id", "bPropagate"=>true, "iDistance"=>3),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case "depends on":
$aRels = array(
"solution" => array("sQuery"=>"SELECT FunctionalCI AS ci JOIN lnkSolutionToCI AS l1 ON l1.ci_id = ci.id WHERE l1.solution_id = :this->id", "bPropagate"=>true, "iDistance"=>2),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>ci_list</item>
<item>process_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
</items>
</list>
</presentation>
</class>
<class name="BusinessProcess" category="bizmodel,searchable,configmgmt" parent="FunctionalCI" abstract="false" key_type="autoincrement" db_table="businessprocess" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/business-process.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="used_solution_list" type="LinkedSetIndirect" linked_class="lnkProcessToSolution" ext_key_to_me="process_id" ext_key_to_remote="solution_id" count_min="0" count_max="0"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "depends on":
$aRels = array(
"solution" => array("sQuery"=>"SELECT ApplicationSolution AS app JOIN lnkProcessToSolution AS l1 ON l1.solution_id = app.id WHERE l1.process_id = :this->id", "bPropagate"=>true, "iDistance"=>3),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>description</item>
<item>contact_list</item>
<item>document_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>used_solution_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>description</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
</items>
</list>
</presentation>
</class>
<class name="ConnectableCI" category="bizmodel,searchable,configmgmt" parent="FunctionalCI" abstract="true" key_type="autoincrement" db_table="connectableci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/server.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="brand" type="String" sql="brand" default_value="" is_null_allowed="true"/>
<field name="model" type="String" sql="model" default_value="" is_null_allowed="true"/>
<field name="serial_number" type="String" sql="serial_number" default_value="" is_null_allowed="true"/>
<field name="asset_ref" type="String" sql="asset_ref" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
</items>
</search>
<list>
<items>
<item>finalclass</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
</items>
</list>
</presentation>
</class>
<class name="NetworkInterface" category="bizmodel,searchable,configmgmt" parent="ConnectableCI" abstract="false" key_type="autoincrement" db_table="networkinterface" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s - %2$s">
<attributes>
<attribute name="device_id_friendlyname"/>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/interface.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="device_id"/>
<attribute name="device_name"/>
<attribute name="org_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="device_id" type="ExternalKey" target_class="Device" jointype="" filter="SELECT Device WHERE org_id = :this-&gt;org_id" sql="device_id" is_null_allowed="false" on_target_delete="DEL_AUTO">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="device_name" type="ExternalField" extkey_attcode="device_id" target_attcode="name"/>
<field name="logical_type" type="Enum" sql="logical_type" default_value="primary" is_null_allowed="false">
<values>
<value>backup</value>
<value>logical</value>
<value>port</value>
<value>primary</value>
<value>secondary</value>
</values>
</field>
<field name="physical_type" type="Enum" sql="physical_type" default_value="ethernet" is_null_allowed="false">
<values>
<value>atm</value>
<value>ethernet</value>
<value>framerelay</value>
<value>vlan</value>
</values>
</field>
<field name="ip_address" type="IPAddress" sql="ip_address" default_value="" is_null_allowed="true"/>
<field name="ip_mask" type="IPAddress" sql="ip_mask" default_value="" is_null_allowed="true"/>
<field name="mac_address" type="String" sql="mac_address" default_value="" is_null_allowed="true"/>
<field name="speed" type="Integer" sql="speed" default_value="" is_null_allowed="true"/>
<field name="duplex" type="Enum" sql="duplex" default_value="full" is_null_allowed="true">
<values>
<value>full</value>
<value>half</value>
<value>auto</value>
<value>unknown</value>
</values>
</field>
<field name="connected_if" type="ExternalKey" target_class="NetworkInterface" jointype="" filter="SELECT NetworkInterface WHERE org_id = :this-&gt;org_id" sql="connected_if" is_null_allowed="true" on_target_delete="DEL_AUTO">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="connected_name" type="ExternalField" extkey_attcode="connected_if" target_attcode="name"/>
<field name="connected_if_device_id" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_id"/>
<field name="connected_if_device_id_name" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_name"/>
<field name="link_type" type="Enum" sql="link_type" default_value="uplink" is_null_allowed="false">
<values>
<value>uplink</value>
<value>downlink</value>
</values>
</field>
<field name="connected_if_device_id_friendlyname" type="ExternalField" extkey_attcode="connected_if" target_attcode="device_id_friendlyname" is_null_allowed="true"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"connected_devices" => array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.id = :this->id AND if2.link_type='downlink'", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
<method name="UpdateConnectedInterface" static="false" access="protected" type="Overload-DBObject"><![CDATA[ protected function UpdateConnectedInterface()
{
$iPrevTargetIf = $this->m_aOrigValues['connected_if']; // The interface this interface was connected to
if ($iPrevTargetIf != 0)
{
// The interface was previosuly connected to another interface. Make sure that we reset this 'previously connected interface'
$oPrevConnectedIf = MetaModel::GetObject('NetworkInterface', $iPrevTargetIf, false);
if (!is_null($oPrevConnectedIf))
{
$oPrevConnectedIf->Set('connected_if', 0);
// Need to backup the current change, because it is reset when DBUpdateTracked is complete
$oCurrChange = self::$m_oCurrChange;
$oPrevConnectedIf->DBUpdateTracked($oCurrChange);
self::$m_oCurrChange = $oCurrChange;
}
}
$oConnIf = MetaModel::GetObject('NetworkInterface', $this->Get('connected_if'), false /* no exception if not found */);
if (!is_null($oConnIf))
{
$sLink = $this->Get('link_type');
$sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink';
if (($oConnIf->Get('connected_if') != $this->GetKey()) || ($sConnLink != $oConnIf->Get('link_type')))
{
// Something has to be changed on the connected interface...
if ($oConnIf->Get('connected_if') != $this->GetKey())
{
// It is connected to another interface: reset that third one...
$oThirdIf = MetaModel::GetObject('NetworkInterface', $oConnIf->Get('connected_if'), false);
if (!is_null($oThirdIf))
{
$oThirdIf->Set('connected_if', 0);
// Need to backup the current change, because it is reset when DBUpdateTracked is complete
$oCurrChange = self::$m_oCurrChange;
$oThirdIf->DBUpdateTracked($oCurrChange);
self::$m_oCurrChange = $oCurrChange;
}
}
// Connect the remote interface to the current one
$oConnIf->Set('connected_if', $this->GetKey());
$oConnIf->Set('link_type', $sConnLink);
// Need to backup the current change, because it is reset when DBUpdateTracked is complete
$oCurrChange = self::$m_oCurrChange;
$oConnIf->DBUpdateTracked($oCurrChange);
self::$m_oCurrChange = $oCurrChange;
}
}
}]]></method>
<method name="AfterInsert" static="false" access="protected" type="Overload-DBObject"><![CDATA[ protected function AfterInsert()
{
$this->UpdateConnectedInterface();
parent::AfterInsert();
}]]></method>
<method name="AfterUpdate" static="false" access="protected" type="Overload-DBObject"><![CDATA[ protected function AfterUpdate()
{
$this->UpdateConnectedInterface();
parent::AfterUpdate();
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>device_id</item>
<item>logical_type</item>
<item>physical_type</item>
<item>ip_address</item>
<item>ip_mask</item>
<item>mac_address</item>
<item>speed</item>
<item>duplex</item>
<item>link_type</item>
<item>connected_if</item>
<item>connected_if_device_id</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>device_id</item>
<item>logical_type</item>
<item>physical_type</item>
<item>ip_address</item>
<item>ip_mask</item>
<item>mac_address</item>
<item>connected_if_device_id</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>ip_address</item>
<item>importance</item>
<item>device_id</item>
<item>logical_type</item>
<item>physical_type</item>
<item>link_type</item>
<item>connected_if_device_id</item>
</items>
</list>
</presentation>
</class>
<class name="Device" category="bizmodel,searchable,configmgmt" parent="ConnectableCI" abstract="true" key_type="autoincrement" db_table="device" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/server.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="nwinterface_list" type="LinkedSet" linked_class="NetworkInterface" ext_key_to_me="device_id" count_min="0" count_max="0"/>
</fields>
<methods>
<method name="GetRelationQueries" static="true" access="public" type="Overload-DBObject"><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"applications" => array("sQuery"=>"SELECT SoftwareInstance AS app WHERE app.device_id = :this->id", "bPropagate"=>true, "iDistance"=>5),
"connected_devices" => array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.device_id = :this->id AND if2.link_type='downlink'", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case "depends on":
$aRels = array(
"connected_devices" => array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.device_id = :this->id AND if2.link_type='uplink'", "bPropagate"=>true, "iDistance"=>5),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></method>
</methods>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
</items>
</search>
<list>
<items>
<item>finalclass</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
</items>
</list>
</presentation>
</class>
<class name="PC" category="bizmodel,searchable,configmgmt" parent="Device" abstract="false" key_type="autoincrement" db_table="pc" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/laptop.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="cpu" type="String" sql="cpu" default_value="" is_null_allowed="true"/>
<field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
<field name="hdd" type="String" sql="hdd" default_value="" is_null_allowed="true"/>
<field name="os_family" type="String" sql="os_family" default_value="" is_null_allowed="true"/>
<field name="os_version" type="String" sql="os_version" default_value="" is_null_allowed="true"/>
<field name="application_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
<field name="patch_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>cpu</item>
<item>ram</item>
<item>hdd</item>
<item>os_family</item>
<item>os_version</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
<item>application_list</item>
<item>patch_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>os_family</item>
<item>os_version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>os_family</item>
</items>
</list>
</presentation>
</class>
<class name="MobileCI" category="bizmodel,searchable,configmgmt" parent="Device" abstract="true" key_type="autoincrement" db_table="mobileci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/mobile-phone.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields/>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
</items>
</list>
</presentation>
</class>
<class name="MobilePhone" category="bizmodel,searchable,configmgmt" parent="MobileCI" abstract="false" key_type="autoincrement" db_table="mobilephone" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/mobile-phone.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="number" type="String" sql="number" default_value="" is_null_allowed="true"/>
<field name="imei" type="String" sql="IMIE" default_value="" is_null_allowed="true"/>
<field name="hw_pin" type="String" sql="hw_pin" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>number</item>
<item>imei</item>
<item>hw_pin</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>number</item>
<item>imei</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
</items>
</list>
</presentation>
</class>
<class name="InfrastructureCI" category="bizmodel,searchable,configmgmt" parent="Device" abstract="true" key_type="autoincrement" db_table="infrastructureci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/server.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
<attribute name="location_id"/>
<attribute name="location_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="location_id" type="ExternalKey" target_class="Location" jointype="" filter="SELECT Location AS l WHERE l.org_id = :this-&gt;org_id" sql="location_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="location_name" type="ExternalField" extkey_attcode="location_id" target_attcode="name"/>
<field name="location_details" type="Text" sql="location_details" default_value="" is_null_allowed="true"/>
<field name="management_ip" type="IPAddress" sql="management_ip" default_value="" is_null_allowed="true"/>
<field name="default_gateway" type="String" sql="default_gateway" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>description</item>
<item>location_id</item>
<item>location_details</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>location_id</item>
<item>management_ip</item>
<item>default_gateway</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>location_id</item>
</items>
</list>
</presentation>
</class>
<class name="NetworkDevice" category="bizmodel,searchable,configmgmt" parent="InfrastructureCI" abstract="false" key_type="autoincrement" db_table="networkdevice" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/switch.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
<attribute name="location_id"/>
<attribute name="location_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="type" type="Enum" sql="type" default_value="switch" is_null_allowed="true">
<values>
<value>wanaccelerator</value>
<value>firewall</value>
<value>hub</value>
<value>loadbalancer</value>
<value>router</value>
<value>switch</value>
</values>
</field>
<field name="ios_version" type="String" sql="ios_version" default_value="" is_null_allowed="true"/>
<field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
<field name="snmp_read" type="String" sql="snmp_read" default_value="" is_null_allowed="true"/>
<field name="snmp_write" type="String" sql="snmp_write" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>description</item>
<item>location_id</item>
<item>location_details</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>type</item>
<item>ios_version</item>
<item>ram</item>
<item>snmp_read</item>
<item>snmp_write</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>location_id</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>type</item>
<item>ios_version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>location_id</item>
<item>type</item>
</items>
</list>
</presentation>
</class>
<class name="Server" category="bizmodel,searchable,configmgmt" parent="InfrastructureCI" abstract="false" key_type="autoincrement" db_table="server" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/server.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
<attribute name="location_id"/>
<attribute name="location_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="cpu" type="String" sql="cpu" default_value="" is_null_allowed="true"/>
<field name="ram" type="String" sql="ram" default_value="" is_null_allowed="true"/>
<field name="hdd" type="String" sql="hdd" default_value="" is_null_allowed="true"/>
<field name="os_family" type="String" sql="os_family" default_value="" is_null_allowed="true"/>
<field name="os_version" type="String" sql="os_version" default_value="" is_null_allowed="true"/>
<field name="application_list" type="LinkedSet" linked_class="SoftwareInstance" ext_key_to_me="device_id" count_min="0" count_max="0"/>
<field name="patch_list" type="LinkedSetIndirect" linked_class="lnkPatchToCI" ext_key_to_me="ci_id" ext_key_to_remote="patch_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>description</item>
<item>location_id</item>
<item>location_details</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>cpu</item>
<item>ram</item>
<item>hdd</item>
<item>os_family</item>
<item>os_version</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
<item>application_list</item>
<item>patch_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>location_id</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>os_family</item>
<item>os_version</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>location_id</item>
<item>os_family</item>
</items>
</list>
</presentation>
</class>
<class name="Printer" category="bizmodel,searchable,configmgmt" parent="InfrastructureCI" abstract="false" key_type="autoincrement" db_table="printer" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/printer.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
<attribute name="location_id"/>
<attribute name="location_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="type" type="Enum" sql="type" default_value="printer" is_null_allowed="true">
<values>
<value>mopier</value>
<value>printer</value>
</values>
</field>
<field name="technology" type="Enum" sql="technology" default_value="laser" is_null_allowed="true">
<values>
<value>laser</value>
<value>inkjet</value>
<value>tracer</value>
</values>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>description</item>
<item>location_id</item>
<item>location_details</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>type</item>
<item>technology</item>
<item>contact_list</item>
<item>document_list</item>
<item>solution_list</item>
<item>contract_list</item>
<item>ticket_list</item>
<item>nwinterface_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>description</item>
<item>location_id</item>
<item>location_details</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>type</item>
<item>technology</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>importance</item>
<item>brand</item>
<item>model</item>
<item>serial_number</item>
<item>asset_ref</item>
<item>location_id</item>
<item>management_ip</item>
<item>default_gateway</item>
<item>type</item>
<item>technology</item>
</items>
</list>
</presentation>
</class>
<class name="Group" category="bizmodel,searchable,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" db_table="group" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="name"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/group.png</icon>
<reconciliation>
<attributes>
<attribute name="name"/>
<attribute name="org_id"/>
<attribute name="owner_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="name" type="String" sql="name" default_value="" is_null_allowed="false"/>
<field name="status" type="Enum" sql="status" default_value="implementation" is_null_allowed="false">
<values>
<value>production</value>
<value>implementation</value>
<value>obsolete</value>
</values>
</field>
<field name="org_id" type="ExternalKey" target_class="Organization" jointype="" sql="org_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="owner_name" type="ExternalField" extkey_attcode="org_id" target_attcode="name"/>
<field name="description" type="Text" sql="description" default_value="" is_null_allowed="true"/>
<field name="type" type="String" sql="type" default_value="" is_null_allowed="true"/>
<field name="parent_id" type="HierarchicalKey" sql="parent_id" is_null_allowed="true" on_target_delete="DEL_MANUAL">
<dependencies>
<attribute name="org_id"/>
</dependencies>
</field>
<field name="parent_name" type="ExternalField" extkey_attcode="parent_id" target_attcode="name"/>
<field name="ci_list" type="LinkedSetIndirect" linked_class="lnkGroupToCI" ext_key_to_me="group_id" ext_key_to_remote="ci_id" count_min="0" count_max="0"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>type</item>
<item>description</item>
<item>parent_id</item>
<item>ci_list</item>
</items>
</details>
<search>
<items>
<item>name</item>
<item>status</item>
<item>org_id</item>
<item>type</item>
</items>
</search>
<list>
<items>
<item>status</item>
<item>org_id</item>
<item>type</item>
<item>parent_id</item>
</items>
</list>
</presentation>
</class>
<class name="lnkGroupToCI" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkgrouptoci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="group_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="group_id"/>
<attribute name="ci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="group_id" type="ExternalKey" target_class="Group" jointype="" sql="group_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="group_name" type="ExternalField" extkey_attcode="group_id" target_attcode="name"/>
<field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_MANUAL"/>
<field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
<field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
<field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>group_id</item>
<item>ci_id</item>
<item>ci_status</item>
<item>reason</item>
</items>
</details>
<search>
<items>
<item>group_id</item>
<item>ci_id</item>
<item>reason</item>
</items>
</search>
<list>
<items>
<item>group_id</item>
<item>ci_id</item>
<item>ci_status</item>
<item>reason</item>
</items>
</list>
</presentation>
</class>
<class name="lnkCIToDoc" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkcitodoc" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="ci_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="ci_id"/>
<attribute name="document_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
<field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
<field name="document_id" type="ExternalKey" target_class="Document" jointype="" sql="document_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="document_name" type="ExternalField" extkey_attcode="document_id" target_attcode="name"/>
<field name="document_type" type="ExternalField" extkey_attcode="document_id" target_attcode="type"/>
<field name="document_status" type="ExternalField" extkey_attcode="document_id" target_attcode="status"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>ci_id</item>
<item>ci_status</item>
<item>document_id</item>
<item>document_type</item>
<item>document_status</item>
</items>
</details>
<search>
<items>
<item>ci_id</item>
<item>document_id</item>
</items>
</search>
<list>
<items>
<item>ci_id</item>
<item>ci_status</item>
<item>document_id</item>
<item>document_type</item>
<item>document_status</item>
</items>
</list>
</presentation>
</class>
<class name="lnkCIToContact" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkcitocontact" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="ci_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon>images/contact.png</icon>
<reconciliation>
<attributes>
<attribute name="ci_id"/>
<attribute name="contact_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
<field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
<field name="contact_id" type="ExternalKey" target_class="Contact" jointype="" sql="contact_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="contact_name" type="ExternalField" extkey_attcode="contact_id" target_attcode="name"/>
<field name="contact_email" type="ExternalField" extkey_attcode="contact_id" target_attcode="email"/>
<field name="role" type="String" sql="role" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>ci_id</item>
<item>ci_status</item>
<item>contact_id</item>
<item>contact_email</item>
<item>role</item>
</items>
</details>
<search>
<items>
<item>ci_id</item>
<item>contact_id</item>
<item>role</item>
</items>
</search>
<list>
<items>
<item>ci_id</item>
<item>ci_status</item>
<item>contact_id</item>
<item>contact_email</item>
<item>role</item>
</items>
</list>
</presentation>
</class>
<class name="lnkSolutionToCI" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnksolutiontoci" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="solution_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="solution_id"/>
<attribute name="ci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="solution_id" type="ExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="solution_name" type="ExternalField" extkey_attcode="solution_id" target_attcode="name"/>
<field name="ci_id" type="ExternalKey" target_class="FunctionalCI" jointype="" sql="ci_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="ci_name" type="ExternalField" extkey_attcode="ci_id" target_attcode="name"/>
<field name="ci_status" type="ExternalField" extkey_attcode="ci_id" target_attcode="status"/>
<field name="utility" type="String" sql="utility" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>solution_id</item>
<item>ci_id</item>
<item>ci_status</item>
<item>utility</item>
</items>
</details>
<search>
<items>
<item>solution_id</item>
<item>ci_id</item>
<item>utility</item>
</items>
</search>
<list>
<items>
<item>solution_id</item>
<item>ci_id</item>
<item>ci_status</item>
<item>utility</item>
</items>
</list>
</presentation>
</class>
<class name="lnkProcessToSolution" category="bizmodel,configmgmt" parent="cmdbAbstractObject" abstract="false" key_type="autoincrement" is_link="1" db_table="lnkprocesstosolution" db_key_field="id" db_final_class_field="">
<properties>
<naming format="%1$s">
<attributes>
<attribute name="solution_id"/>
</attributes>
</naming>
<display_template></display_template>
<icon></icon>
<reconciliation>
<attributes>
<attribute name="solution_id"/>
<attribute name="process_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field name="solution_id" type="ExternalKey" target_class="ApplicationSolution" jointype="" sql="solution_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="solution_name" type="ExternalField" extkey_attcode="solution_id" target_attcode="name"/>
<field name="process_id" type="ExternalKey" target_class="BusinessProcess" jointype="" sql="process_id" is_null_allowed="false" on_target_delete="DEL_AUTO"/>
<field name="process_name" type="ExternalField" extkey_attcode="process_id" target_attcode="name"/>
<field name="reason" type="String" sql="reason" default_value="" is_null_allowed="true"/>
</fields>
<methods/>
<presentation>
<details>
<items>
<item>solution_id</item>
<item>process_id</item>
<item>reason</item>
</items>
</details>
<search>
<items>
<item>solution_id</item>
<item>process_id</item>
<item>reason</item>
</items>
</search>
<list>
<items>
<item>solution_id</item>
<item>process_id</item>
<item>reason</item>
</items>
</list>
</presentation>
</class>
</classes>