mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
New module to link storage and virtualization
SVN:trunk[2542]
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
|
||||
<classes>
|
||||
<class id="lnkVirtualDeviceToVolume" _delta="define">
|
||||
<parent>cmdbAbstractObject</parent>
|
||||
<properties>
|
||||
<category>bizmodel,configmgmt</category>
|
||||
<abstract>false</abstract>
|
||||
<key_type>autoincrement</key_type>
|
||||
<db_table>lnkvirtualdevicetovolume</db_table>
|
||||
<db_key_field>id</db_key_field>
|
||||
<db_final_class_field/>
|
||||
<naming>
|
||||
<format>%1$s</format>
|
||||
<attributes>
|
||||
<attribute id="volume_id"/>
|
||||
</attributes>
|
||||
</naming>
|
||||
<display_template/>
|
||||
<icon/>
|
||||
<reconciliation>
|
||||
<attributes>
|
||||
</attributes>
|
||||
</reconciliation>
|
||||
</properties>
|
||||
<fields>
|
||||
<field id="volume_id" xsi:type="AttributeExternalKey">
|
||||
<sql>volume_id</sql>
|
||||
<target_class>LogicalVolume</target_class>
|
||||
<is_null_allowed>false</is_null_allowed>
|
||||
<on_target_delete>DEL_AUTO</on_target_delete>
|
||||
</field>
|
||||
<field id="volume_name" xsi:type="AttributeExternalField">
|
||||
<extkey_attcode>volume_id</extkey_attcode>
|
||||
<target_attcode>name</target_attcode>
|
||||
</field>
|
||||
<field id="virtualdevice_id" xsi:type="AttributeExternalKey">
|
||||
<sql>virtualdevice_id</sql>
|
||||
<target_class>VirtualDevice</target_class>
|
||||
<is_null_allowed>false</is_null_allowed>
|
||||
<on_target_delete>DEL_AUTO</on_target_delete>
|
||||
</field>
|
||||
<field id="virtualdevice_name" xsi:type="AttributeExternalField">
|
||||
<extkey_attcode>virtualdevice_id</extkey_attcode>
|
||||
<target_attcode>name</target_attcode>
|
||||
</field>
|
||||
<field id="size_used" xsi:type="AttributeString">
|
||||
<sql>size_used</sql>
|
||||
<default_value/>
|
||||
<is_null_allowed>true</is_null_allowed>
|
||||
</field>
|
||||
</fields>
|
||||
<methods/>
|
||||
<presentation>
|
||||
<details>
|
||||
<items>
|
||||
<item id="volume_id">
|
||||
<rank>10</rank>
|
||||
</item>
|
||||
<item id="virtualdevice_id">
|
||||
<rank>20</rank>
|
||||
</item>
|
||||
<item id="size_used">
|
||||
<rank>30</rank>
|
||||
</item>
|
||||
</items>
|
||||
</details>
|
||||
<search>
|
||||
<items>
|
||||
<item id="volume_id">
|
||||
<rank>10</rank>
|
||||
</item>
|
||||
<item id="virtualdevice_id">
|
||||
<rank>20</rank>
|
||||
</item>
|
||||
</items>
|
||||
</search>
|
||||
<list>
|
||||
<items>
|
||||
<item id="volume_id">
|
||||
<rank>10</rank>
|
||||
</item>
|
||||
<item id="virtualdevice_id">
|
||||
<rank>20</rank>
|
||||
</item>
|
||||
<item id="size_used">
|
||||
<rank>30</rank>
|
||||
</item>
|
||||
</items>
|
||||
</list>
|
||||
</presentation>
|
||||
</class>
|
||||
</classes>
|
||||
</itop_design>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'itop-bridge-virtualization-storage/2.0.0',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Links between virtualization and storage',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
//
|
||||
'dependencies' => array(
|
||||
),
|
||||
'mandatory' => false,
|
||||
'visible' => false,
|
||||
'auto_select' => 'SetupInfo::ModuleIsSelected("itop-storage-mgmt") && SetupInfo::ModuleIsSelected("itop-virtualization-mgmt")',
|
||||
|
||||
// Components
|
||||
//
|
||||
'datamodel' => array(
|
||||
'model.itop-bridge-virtualization-storage.php',
|
||||
),
|
||||
'data.struct' => array(
|
||||
//'data.struct.itop-change-mgmt.xml',
|
||||
),
|
||||
'data.sample' => array(
|
||||
//'data.sample.itop-change-mgmt.xml',
|
||||
),
|
||||
|
||||
// Documentation
|
||||
//
|
||||
'doc.manual_setup' => '',
|
||||
'doc.more_information' => '',
|
||||
|
||||
// Default settings
|
||||
//
|
||||
'settings' => array(
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||
@@ -1414,6 +1414,14 @@
|
||||
<ext_key_to_remote>server_id</ext_key_to_remote>
|
||||
<duplicates/>
|
||||
</field>
|
||||
<field id="virtualdevices_list" xsi:type="AttributeLinkedSetIndirect">
|
||||
<linked_class>lnkVirtualDeviceToVolume</linked_class>
|
||||
<ext_key_to_me>volume_id</ext_key_to_me>
|
||||
<count_min>0</count_min>
|
||||
<count_max>0</count_max>
|
||||
<ext_key_to_remote>virtualdevice_id</ext_key_to_remote>
|
||||
<duplicates/>
|
||||
</field>
|
||||
</fields>
|
||||
<methods>
|
||||
<method id="GetRelationQueries">
|
||||
@@ -1429,6 +1437,10 @@
|
||||
// Actually this should be limited to the Software instances based on a DBServer Application type...
|
||||
"server" => array("sQuery"=>"SELECT Server AS s JOIN lnkServerToVolume AS l1 ON l1.server_id=s.id WHERE l1.volume_id = :this->id", "bPropagate"=>true, "iDistance"=>5),
|
||||
);
|
||||
if (class_exists('VirtualDevice'))
|
||||
{
|
||||
$aRels["virtualdevice"] = array("sQuery"=>"SELECT VirtualDevice AS vd JOIN lnkVirtualDeviceToVolume AS l1 ON l1.virtualdevice_id=vd.id WHERE l1.volume_id = :this->id", "bPropagate"=>true, "iDistance"=>5);
|
||||
}
|
||||
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
|
||||
break;
|
||||
|
||||
@@ -1469,6 +1481,9 @@
|
||||
<item id="servers_list">
|
||||
<rank>70</rank>
|
||||
</item>
|
||||
<item id="virtualdevices_list">
|
||||
<rank>80</rank>
|
||||
</item>
|
||||
</items>
|
||||
</details>
|
||||
<search>
|
||||
|
||||
@@ -79,6 +79,9 @@
|
||||
<item id="applicationsolution_list">
|
||||
<rank>90</rank>
|
||||
</item>
|
||||
<item id="logicalvolumes_list">
|
||||
<rank>100</rank>
|
||||
</item>
|
||||
</items>
|
||||
</details>
|
||||
<search>
|
||||
@@ -167,15 +170,17 @@
|
||||
case "impacts":
|
||||
$aRels = array(
|
||||
"virtualmachine" => array("sQuery"=>"SELECT VirtualMachine WHERE virtualhost_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
|
||||
|
||||
);
|
||||
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
|
||||
break;
|
||||
|
||||
case 'depends on':
|
||||
$aRels = array(
|
||||
|
||||
);
|
||||
if (class_exists('LogicalVolume'))
|
||||
{
|
||||
$aRels["logicalvolume"] = array("sQuery"=>"SELECT LogicalVolume AS lv JOIN lnkVirtualDeviceToVolume AS l1 ON l1.volume_id=lv.id WHERE l1.virtualdevice_id = :this->id", "bPropagate"=>true, "iDistance"=>5);
|
||||
}
|
||||
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
|
||||
break;
|
||||
|
||||
@@ -212,6 +217,12 @@
|
||||
<item id="applicationsolution_list">
|
||||
<rank>80</rank>
|
||||
</item>
|
||||
<item id="logicalvolumes_list">
|
||||
<rank>90</rank>
|
||||
</item>
|
||||
<item id="virtualmachine_list">
|
||||
<rank>100</rank>
|
||||
</item>
|
||||
</items>
|
||||
</details>
|
||||
<search>
|
||||
@@ -365,6 +376,9 @@
|
||||
<item id="applicationsolution_list">
|
||||
<rank>110</rank>
|
||||
</item>
|
||||
<item id="logicalvolumes_list">
|
||||
<rank>115</rank>
|
||||
</item>
|
||||
<item id="virtualmachine_list">
|
||||
<rank>120</rank>
|
||||
</item>
|
||||
@@ -507,6 +521,9 @@
|
||||
<item id="applicationsolution_list">
|
||||
<rank>90</rank>
|
||||
</item>
|
||||
<item id="logicalvolumes_list">
|
||||
<rank>95</rank>
|
||||
</item>
|
||||
<item id="hypervisor_list">
|
||||
<rank>100</rank>
|
||||
</item>
|
||||
@@ -908,7 +925,7 @@
|
||||
</items>
|
||||
</list>
|
||||
</presentation>
|
||||
</class>
|
||||
</class>
|
||||
</classes>
|
||||
<menus>
|
||||
<menu id="ConfigManagementOverview" xsi:type="DashboardMenuNode" _delta="must_exist">
|
||||
|
||||
Reference in New Issue
Block a user