Add specific module for Datacenter related CIs

SVN:trunk[2348]
This commit is contained in:
Erwan Taloc
2012-10-24 16:02:21 +00:00
parent 4d4c9674fa
commit 5eb4b557e0
8 changed files with 1047 additions and 0 deletions

View File

@@ -0,0 +1,952 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<classes>
<class id="Rack" _delta="define">
<parent>PhysicalDevice</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>rack</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/rack.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="nb_u" xsi:type="AttributeInteger">
<sql>nb_u</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="device_list" xsi:type="AttributeLinkedSet">
<linked_class>DatacenterDevice</linked_class>
<ext_key_to_me>rack_id</ext_key_to_me>
<edit_mode>add_only</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
<field id="enclosure_list" xsi:type="AttributeLinkedSet">
<linked_class>Enclosure</linked_class>
<ext_key_to_me>rack_id</ext_key_to_me>
<edit_mode>add_only</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="nb_u">
<rank>80</rank>
</item>
<item id="serialnumber">
<rank>90</rank>
</item>
<item id="asset_number">
<rank>100</rank>
</item>
<item id="move2production">
<rank>110</rank>
</item>
<item id="purchase_date">
<rank>120</rank>
</item>
<item id="end_of_warranty">
<rank>130</rank>
</item>
<item id="description">
<rank>140</rank>
</item>
<item id="contacts_list">
<rank>150</rank>
</item>
<item id="documents_list">
<rank>160</rank>
</item>
<item id="tickets_list">
<rank>170</rank>
</item>
<item id="enclosure_list">
<rank>180</rank>
</item>
<item id="device_list">
<rank>190</rank>
</item>
<item id="providercontracts_list">
<rank>200</rank>
</item>
<item id="services_list">
<rank>210</rank>
</item>
</items>
</details>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="nb_u">
<rank>80</rank>
</item>
<item id="serialnumber">
<rank>90</rank>
</item>
<item id="asset_number">
<rank>100</rank>
</item>
<item id="move2production">
<rank>110</rank>
</item>
<item id="purchase_date">
<rank>120</rank>
</item>
<item id="end_of_warranty">
<rank>130</rank>
</item>
</items>
</search>
<list>
<items>
<item id="org_id">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="business_criticity">
<rank>30</rank>
</item>
<item id="location_id">
<rank>40</rank>
</item>
<item id="brand_id">
<rank>50</rank>
</item>
<item id="model_id">
<rank>60</rank>
</item>
<item id="nb_u">
<rank>70</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="Enclosure" _delta="define">
<parent>PhysicalDevice</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>enclosure</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/enclosure.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="org_id"/>
<attribute id="organization_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="rack_id" xsi:type="AttributeExternalKey">
<sql>rack_id</sql>
<target_class>Rack</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="rack_name" xsi:type="AttributeExternalField">
<extkey_attcode>rack_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="nb_u" xsi:type="AttributeInteger">
<sql>nb_u</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="device_list" xsi:type="AttributeLinkedSet">
<linked_class>DatacenterDevice</linked_class>
<ext_key_to_me>enclosure_id</ext_key_to_me>
<edit_mode>add_only</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
</fields>
<methods>
<method id="GetRelationQueries">
<static>true</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"DatacenterDevice" => array("sQuery"=>"SELECT DatacenterDevice WHERE enclosure_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></code>
</method>
</methods>
<presentation>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="rack_id">
<rank>60</rank>
</item>
<item id="brand_id">
<rank>70</rank>
</item>
<item id="model_id">
<rank>80</rank>
</item>
<item id="nb_u">
<rank>90</rank>
</item>
<item id="serialnumber">
<rank>100</rank>
</item>
<item id="asset_number">
<rank>110</rank>
</item>
<item id="move2production">
<rank>120</rank>
</item>
<item id="purchase_date">
<rank>130</rank>
</item>
<item id="end_of_warranty">
<rank>140</rank>
</item>
<item id="description">
<rank>150</rank>
</item>
<item id="contacts_list">
<rank>160</rank>
</item>
<item id="documents_list">
<rank>170</rank>
</item>
<item id="tickets_list">
<rank>180</rank>
</item>
<item id="device_list">
<rank>190</rank>
</item>
<item id="providercontracts_list">
<rank>200</rank>
</item>
<item id="services_list">
<rank>210</rank>
</item>
</items>
</details>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
<item id="asset_number">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="purchase_date">
<rank>110</rank>
</item>
<item id="end_of_warranty">
<rank>120</rank>
</item>
</items>
</search>
<list>
<items>
<item id="org_id">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="business_criticity">
<rank>30</rank>
</item>
<item id="location_id">
<rank>40</rank>
</item>
<item id="brand_id">
<rank>50</rank>
</item>
<item id="model_id">
<rank>60</rank>
</item>
<item id="serialnumber">
<rank>70</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="ElectricalConnection" _delta="define">
<parent>PhysicalDevice</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>true</abstract>
<key_type>autoincrement</key_type>
<db_table>electricalconnection</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/powersource.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="org_id"/>
<attribute id="organization_name"/>
</attributes>
</reconciliation>
</properties>
<fields/>
<methods>
<method id="GetRelationQueries">
<static>true</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[ public static function GetRelationQueries($sRelCode)
{
switch ($sRelCode)
{
case "impacts":
$aRels = array(
"DatacenterDevice" => array("sQuery"=>"SELECT DatacenterDevice WHERE powerA_id = :this->id OR powerB_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
"pdu" => array("sQuery"=>"SELECT PDU WHERE powerstart_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case 'depends on':
$aRels = array(
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]></code>
</method>
</methods>
<presentation>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
<item id="asset_number">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="purchase_date">
<rank>110</rank>
</item>
<item id="end_of_warranty">
<rank>120</rank>
</item>
<item id="description">
<rank>130</rank>
</item>
<item id="contacts_list">
<rank>140</rank>
</item>
<item id="documents_list">
<rank>150</rank>
</item>
<item id="providercontracts_list">
<rank>160</rank>
</item>
<item id="services_list">
<rank>170</rank>
</item>
</items>
</details>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
<item id="asset_number">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="purchase_date">
<rank>110</rank>
</item>
<item id="end_of_warranty">
<rank>120</rank>
</item>
</items>
</search>
<list>
<items>
<item id="finalclass">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="Arrival" _delta="define">
<parent>ElectricalConnection</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>arrival</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/powerstart.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="org_id"/>
<attribute id="organization_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="pdus_list" xsi:type="AttributeLinkedSet">
<linked_class>PDU</linked_class>
<ext_key_to_me>powerstart_id</ext_key_to_me>
<edit_mode>add_only</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
<item id="asset_number">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="purchase_date">
<rank>110</rank>
</item>
<item id="end_of_warranty">
<rank>120</rank>
</item>
<item id="description">
<rank>130</rank>
</item>
<item id="pdus_list">
<rank>140</rank>
</item>
<item id="contacts_list">
<rank>150</rank>
</item>
<item id="documents_list">
<rank>160</rank>
</item>
<item id="tickets_list">
<rank>170</rank>
</item>
<item id="providercontracts_list">
<rank>180</rank>
</item>
<item id="services_list">
<rank>190</rank>
</item>
</items>
</details>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="brand_id">
<rank>60</rank>
</item>
<item id="model_id">
<rank>70</rank>
</item>
<item id="serialnumber">
<rank>80</rank>
</item>
<item id="asset_number">
<rank>90</rank>
</item>
<item id="move2production">
<rank>100</rank>
</item>
<item id="purchase_date">
<rank>110</rank>
</item>
<item id="end_of_warranty">
<rank>120</rank>
</item>
</items>
</search>
<list>
<items>
<item id="org_id">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="business_criticity">
<rank>30</rank>
</item>
<item id="location_id">
<rank>40</rank>
</item>
<item id="brand_id">
<rank>50</rank>
</item>
<item id="model_id">
<rank>60</rank>
</item>
<item id="serialnumber">
<rank>70</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="PDU" _delta="define">
<parent>ElectricalConnection</parent>
<properties>
<category>bizmodel,searchable</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>pdu</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon>images/pdu.png</icon>
<reconciliation>
<attributes>
<attribute id="name"/>
<attribute id="org_id"/>
<attribute id="organization_name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="rack_id" xsi:type="AttributeExternalKey">
<sql>rack_id</sql>
<target_class>Rack</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="rack_name" xsi:type="AttributeExternalField">
<extkey_attcode>rack_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="powerstart_id" xsi:type="AttributeExternalKey">
<filter><![CDATA[SELECT ElectricalConnection WHERE id != :this->id AND location_id = :this->location_id]]></filter>
<dependencies>
<attribute id="location_id"/>
</dependencies>
<sql>powerstart_id</sql>
<target_class>ElectricalConnection</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="powerstart_name" xsi:type="AttributeExternalField">
<extkey_attcode>powerstart_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="rack_id">
<rank>60</rank>
</item>
<item id="powerstart_id">
<rank>70</rank>
</item>
<item id="brand_id">
<rank>80</rank>
</item>
<item id="model_id">
<rank>90</rank>
</item>
<item id="serialnumber">
<rank>100</rank>
</item>
<item id="asset_number">
<rank>110</rank>
</item>
<item id="move2production">
<rank>120</rank>
</item>
<item id="purchase_date">
<rank>130</rank>
</item>
<item id="end_of_warranty">
<rank>140</rank>
</item>
<item id="description">
<rank>150</rank>
</item>
<item id="contacts_list">
<rank>160</rank>
</item>
<item id="documents_list">
<rank>170</rank>
</item>
<item id="tickets_list">
<rank>180</rank>
</item>
<item id="providercontracts_list">
<rank>190</rank>
</item>
<item id="services_list">
<rank>200</rank>
</item>
</items>
</details>
<search>
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="status">
<rank>30</rank>
</item>
<item id="business_criticity">
<rank>40</rank>
</item>
<item id="location_id">
<rank>50</rank>
</item>
<item id="powerstart_id">
<rank>60</rank>
</item>
<item id="brand_id">
<rank>70</rank>
</item>
<item id="model_id">
<rank>80</rank>
</item>
<item id="serialnumber">
<rank>90</rank>
</item>
<item id="asset_number">
<rank>100</rank>
</item>
<item id="move2production">
<rank>110</rank>
</item>
<item id="purchase_date">
<rank>120</rank>
</item>
<item id="end_of_warranty">
<rank>130</rank>
</item>
</items>
</search>
<list>
<items>
<item id="org_id">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="business_criticity">
<rank>30</rank>
</item>
<item id="location_id">
<rank>40</rank>
</item>
<item id="brand_id">
<rank>50</rank>
</item>
<item id="model_id">
<rank>60</rank>
</item>
<item id="serialnumber">
<rank>70</rank>
</item>
</items>
</list>
</presentation>
</class>
</classes>
<menus>
<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
<definition>
<cells>
<cell id="0" _delta="must_exist">
<dashlets>
<dashlet id="2" xsi:type="DashletBadge" _delta="define">
<rank>1</rank>
<class>Rack</class>
</dashlet>
<dashlet id="3" xsi:type="DashletBadge" _delta="define">
<rank>2</rank>
<class>Enclosure</class>
</dashlet>
<dashlet id="10" xsi:type="DashletBadge" _delta="define">
<rank>9</rank>
<class>ElectricalConnection</class>
</dashlet>
</dashlets>
</cell>
</cells>
</definition>
</menu>
</menus>
</itop_design>

View File

@@ -0,0 +1,29 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* Localized data
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN US', 'English', 'English', array(
// Dictionary entries go here
));
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,66 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-datacenter-mgmt/2.0.0',
array(
// Identification
//
'label' => 'Datacenter Management',
'category' => 'business',
// Setup
//
'dependencies' => array(
'itop-config-mgmt/2.0.0'
),
'mandatory' => false,
'visible' => true,
// Components
//
'datamodel' => array(
'model.itop-datacenter-mgmt.php',
),
'webservice' => array(
),
'data.struct' => array(
// add your 'structure' definition XML files here,
),
'data.sample' => array(
// add your sample data XML files here,
),
// Documentation
//
'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
'doc.more_information' => '', // hyperlink to more information, if any
// Default settings
//
'settings' => array(
// Module specific settings go here, if any
),
)
);
?>