From ae1be5a53b7551aa77d6d31ccd4dbb480cccd8c8 Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Thu, 6 Dec 2012 16:54:16 +0000 Subject: [PATCH] New module to link storage and virtualization SVN:trunk[2542] --- ...del.itop-bridge-virtualization-storage.xml | 94 +++++++++++++++++++ ...ule.itop-bridge-virtualization-storage.php | 46 +++++++++ .../datamodel.itop-storage-mgmt.xml | 15 +++ .../datamodel.itop-virtualization-mgmt.xml | 23 ++++- 4 files changed, 175 insertions(+), 3 deletions(-) create mode 100644 datamodels/2.x/itop-bridge-virtualization-storage/datamodel.itop-bridge-virtualization-storage.xml create mode 100644 datamodels/2.x/itop-bridge-virtualization-storage/module.itop-bridge-virtualization-storage.php diff --git a/datamodels/2.x/itop-bridge-virtualization-storage/datamodel.itop-bridge-virtualization-storage.xml b/datamodels/2.x/itop-bridge-virtualization-storage/datamodel.itop-bridge-virtualization-storage.xml new file mode 100644 index 000000000..b677db83a --- /dev/null +++ b/datamodels/2.x/itop-bridge-virtualization-storage/datamodel.itop-bridge-virtualization-storage.xml @@ -0,0 +1,94 @@ + + + + + cmdbAbstractObject + + bizmodel,configmgmt + false + autoincrement + lnkvirtualdevicetovolume + id + + + %1$s + + + + + + + + + + + + + + volume_id + LogicalVolume + false + DEL_AUTO + + + volume_id + name + + + virtualdevice_id + VirtualDevice + false + DEL_AUTO + + + virtualdevice_id + name + + + size_used + + true + + + + +
+ + + 10 + + + 20 + + + 30 + + +
+ + + + 10 + + + 20 + + + + + + + 10 + + + 20 + + + 30 + + + +
+
+
+
\ No newline at end of file diff --git a/datamodels/2.x/itop-bridge-virtualization-storage/module.itop-bridge-virtualization-storage.php b/datamodels/2.x/itop-bridge-virtualization-storage/module.itop-bridge-virtualization-storage.php new file mode 100644 index 000000000..fcdd0f52a --- /dev/null +++ b/datamodels/2.x/itop-bridge-virtualization-storage/module.itop-bridge-virtualization-storage.php @@ -0,0 +1,46 @@ + '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( + ), + ) +); + + +?> diff --git a/datamodels/2.x/itop-storage-mgmt/datamodel.itop-storage-mgmt.xml b/datamodels/2.x/itop-storage-mgmt/datamodel.itop-storage-mgmt.xml index 4e759fc2f..c47f7b2b0 100644 --- a/datamodels/2.x/itop-storage-mgmt/datamodel.itop-storage-mgmt.xml +++ b/datamodels/2.x/itop-storage-mgmt/datamodel.itop-storage-mgmt.xml @@ -1414,6 +1414,14 @@ server_id + + lnkVirtualDeviceToVolume + volume_id + 0 + 0 + virtualdevice_id + + @@ -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 @@ 70 + + 80 + diff --git a/datamodels/2.x/itop-virtualization-mgmt/datamodel.itop-virtualization-mgmt.xml b/datamodels/2.x/itop-virtualization-mgmt/datamodel.itop-virtualization-mgmt.xml index aab85cb8b..fe494f494 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/datamodel.itop-virtualization-mgmt.xml +++ b/datamodels/2.x/itop-virtualization-mgmt/datamodel.itop-virtualization-mgmt.xml @@ -79,6 +79,9 @@ 90 + + 100 + @@ -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 @@ 80 + + 90 + + + 100 + @@ -365,6 +376,9 @@ 110 + + 115 + 120 @@ -507,6 +521,9 @@ 90 + + 95 + 100 @@ -908,7 +925,7 @@ - +