Data center discovery
UCPManagementPack.DataCenterDiscovery (Discovery)
Description for the new discovery.
Element properties:
Object Discovery Details:
Member Modules:
Source Code:
<Discovery ID="UCPManagementPack.DataCenterDiscovery" Target="Windows!Microsoft.Windows.Computer" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="UCPManagementPack.PodDiscoveryEntity"/>
<DiscoveryRelationship TypeID="Windows!Microsoft.Windows.ComputerHostsComputerRole"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="UCPManagement.TimedPowerShell.DiscoveryProvider" RunAs="System!System.PrivilegedMonitoringAccount">
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverDataCenter.ps1</ScriptName>
<ScriptBody><Script>
# Seed discovery script
param($sourceId, $managedEntityId, $managementIps, $domain, $username, $password)
$api = new-object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $sourceId, $managedEntityId)
$api.LogScriptEvent("DiscoverDataCenter.ps1", 100, 0, "Starting seed discovery")
if (![String]::IsNullOrEmpty($managementIps)) {
$managementIps.Split(",").Trim() | foreach {
$api.LogScriptEvent("DiscoverDataCenter.ps1", 100, 0, "Creating POD with IP " + $_ + "...")
# Create POD instance
$instance = $discoveryData.CreateClassInstance("$MPElement[Name='UCPManagementPack.PodDiscoveryEntity']$")
$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", "$Target/Property[Type='Windows!Microsoft.Windows.Computer']/PrincipalName$")
$instance.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Pod $_")
$instance.AddProperty("$MPElement[Name='UCPManagementPack.PodDiscoveryEntity']/Name$", "Pod $_")
$instance.AddProperty("$MPElement[Name='UCPManagementPack.PodDiscoveryEntity']/ManagementIp$", "$_")
$discoveryData.AddInstance($instance)
}
# Return discovery data
$api.LogScriptEvent("DiscoverDataCenter.ps1", 100, 0, "Completed seed discovery")
} else {
$api.LogScriptEvent("DiscoverDataCenter.ps1", 100, 0, "No management IPs specified!")
}
$discoveryData
</Script></ScriptBody>
<ManagementIps/>
<TimeoutSeconds>300</TimeoutSeconds>
<SourceId>$MPElement$</SourceId>
<ManagedEntityId>$Target/Id$</ManagedEntityId>
</DataSource>
</Discovery>