PostgresMP.Unix.DataBaseDiscovery (Discovery)

Element properties:

TargetPostgresMP.Unix.Application
EnabledTrue
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Unix.Authoring.TimedShellScript.PropertyBag.Discovery.DataSource Default

Source Code:

<Discovery ID="PostgresMP.Unix.DataBaseDiscovery" Enabled="true" Target="PostgresMP.Unix.Application" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="PostgresMP.Unix.DataBase"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="UnixAuth!Unix.Authoring.TimedShellScript.PropertyBag.Discovery.DataSource">
<Interval>180</Interval>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/PrincipalName$</TargetSystem>
<ShellScript>
#!/bin/sh
DATABASE=postgres
USERNAME=postgres
$1/psql -U "${USERNAME}" "${DATABASE}" -w -t -A --record-separator=";" -c "SELECT pg_database.datname from pg_database where datistemplate='f'"
</ShellScript>
<ScriptArguments>$Target/Property[Type="PostgresMP.Unix.Application"]/psqlPath$</ScriptArguments>
<Timeout>30</Timeout>
<UserName>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/UserName$</UserName>
<Password>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/Password$</Password>
<PSScriptName>ATEST11.ps1</PSScriptName>
<PSScriptBody>
param([string]$StdOut,[string]$StdErr,[string]$ReturnCode)
$StdOut = $StdOut -replace '\n',''
if ($ReturnCode -eq "0"){
$api = New-Object -comObject 'MOM.ScriptAPI'
$StdOut.Split(";") | ForEach {
$nospace = $_.Replace(" ","_")
$bag = $api.CreatePropertyBag()
$bag.AddValue("NoSpaseName","$nospace")
$bag.AddValue("Dbname","$_")
$bag
}
}
</PSScriptBody>
<FilterExpression/>
<ClassId>$MPElement[Name="PostgresMP.Unix.DataBase"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name='Unix!Microsoft.Unix.Computer']/PrincipalName$</Name>
<Value>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/PrincipalName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name='PostgresMP.Unix.DataBase']/Dbname$</Name>
<Value>$Data/Property[@Name='Dbname']$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name='PostgresMP.Unix.DataBase']/hostName$</Name>
<Value>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/PrincipalName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name='System!System.Entity']/DisplayName$</Name>
<Value>$Data/Property[@Name='NoSpaseName']$</Value>
</Setting>
</Settings>
</InstanceSettings>
</DataSource>
</Discovery>