瀏覽代碼

Completed missing impact/dependency rules (Datacenter device depends on power connection, and PDU depending on power connection)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2561 a333f486-631f-4898-b8df-5754b55c2be0
romainq 12 年之前
父節點
當前提交
309c5395e2

+ 13 - 0
datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml

@@ -2000,6 +2000,19 @@
             {
               $aRels['SANSwitch'] = array("sQuery"=>"SELECT SANSwitch AS san JOIN lnkSanToDatacenterDevice AS l1 ON l1.san_id = san.id WHERE l1.datacenterdevice_id = :this->id", "bPropagate"=>true, "iDistance"=>10);
             }
+            if (class_exists('PowerConnection'))
+            {
+              $aRels['PowerA'] = array(
+                 "sQuery"=>"SELECT PowerConnection WHERE id = :this->powerA_id",
+					  "bPropagate"=>true,
+                 "iDistance"=>10
+              );
+              $aRels['PowerB'] = array(
+                 "sQuery"=>"SELECT PowerConnection WHERE id = :this->powerB_id",
+					  "bPropagate"=>true,
+                 "iDistance"=>10
+              );
+            }
 			return array_merge($aRels, parent::GetRelationQueries($sRelCode));
 			break;
 		default:

+ 28 - 4
datamodels/2.x/itop-datacenter-mgmt/datamodel.itop-datacenter-mgmt.xml

@@ -428,15 +428,12 @@
 			$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;
@@ -788,7 +785,34 @@
           <target_attcode>name</target_attcode>
         </field>
       </fields>
-      <methods/>
+      <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(
+			);
+			return array_merge($aRels, parent::GetRelationQueries($sRelCode));
+			break;
+			
+			case 'depends on':
+			$aRels = array(
+				"powerconnection" => array("sQuery"=>"SELECT PowerConnection WHERE id = :this->powerstart_id", "bPropagate"=>true, "iDistance"=>10),
+			);
+			return array_merge($aRels, parent::GetRelationQueries($sRelCode));
+			break;
+			
+			default:
+			return parent::GetRelationQueries($sRelCode);			
+		}
+	}]]></code>
+        </method>
+      </methods>
       <presentation>
         <details>
           <items>