Fujitsu PRIMERGY Discovery Rule for Linux Server Seed

Fujitsu.Servers.PRIMERGY.LinuxSeed.Server.Discovery (Discovery)

Seed Discovery Rule for Fujitsu PRIMERGY Linux Servers. Any further server and components discovery is based on this first stage discovery outcome.

Knowledge Base article:

Summary

This is the Seed Discovery rule for Fujitsu PRIMERGY Linux Servers

Element properties:

TargetMicrosoft.Unix.Computer
EnabledTrue
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
Fujitsu.Servers.PRIMERGY.LinuxSeed.DS DataSource Fujitsu.Servers.PRIMERGY.LinuxSeed.TimedShellScript.Discovery.DataSource Default

Source Code:

<Discovery ID="Fujitsu.Servers.PRIMERGY.LinuxSeed.Server.Discovery" Target="Unix!Microsoft.Unix.Computer" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Fujitsu.Servers.PRIMERGY.LinuxSeed.Server"/>
</DiscoveryTypes>
<DataSource ID="Fujitsu.Servers.PRIMERGY.LinuxSeed.DS" TypeID="Fujitsu.Servers.PRIMERGY.LinuxSeed.TimedShellScript.Discovery.DataSource">
<Interval>28800</Interval>
<TargetSystem>$Target/Property[Type="Unix!Microsoft.Unix.Computer"]/PrincipalName$</TargetSystem>
<ShellScript>#!/bin/sh
# Fujitsu
# Copyright 2014-2019 FUJITSU LIMITED

FUJITSU="FUJITSU\|FTS\|FSC"
PRODUCT="PRIMERGY\|PRIMEQUEST"

# check if /sys/devices/virtual/dmi/id exists
if [ -d "/sys/devices/virtual/dmi/id" ]
then
# we can use /sys/devices/virtual/dmi/id
FSC=`cat /sys/devices/virtual/dmi/id/sys_vendor | grep -i "$FUJITSU" | wc -l | awk '$1 != "0" {print 1}'`
if [ "x$FSC" = "x1" ]
then
cat /sys/devices/virtual/dmi/id/product_name | grep -i "$PRODUCT" | wc -l | awk '$1 != "0" {print 1}'
fi
else
# check if /sys/class/dmi/id exists
if [ -d "/sys/class/dmi/id" ]
then
# we can use /sys/class/dmi/id/sys_vendor
FSC=`cat /sys/class/dmi/id/sys_vendor | grep -i "$FUJITSU" | wc -l | awk '$1 != "0" {print 1}'`
if [ "x$FSC" = "x1" ]
then
cat /sys/class/dmi/id/product_name | grep -i "$PRODUCT" | wc -l | awk '$1 != "0" {print 1}'
fi
else
# no /sys/devices/virtual/dmi/id, check if we can use lshal
HAL=`command -v lshal`
if [ "$HAL" = "" ]
then
# no lshal, check if we can use dmidecode
DMIDEC=`command -v dmidecode`
if [ "$DMIDEC" = "" ]
then
# cannot determine manufacturer
DATE=`date +"%Y-%m-%d %H:%M:%S"`
mkdir -p /tmp/Fujitsu/
echo "$DATE INFO 300 Linux Seed Discovery: cannot determine manufacturer" &amp;gt;&amp;gt; /tmp/Fujitsu/sviscom.log
else
# we can use dmidecode command
FSC=`dmidecode -s system-manufacturer | grep -i "$FUJITSU" | wc -l | awk '$1 != "0" {print 1}'`
if [ "x$FSC" = "x1" ]
then
dmidecode -s system-product-name | grep -i "$PRODUCT" | wc -l | awk '$1 != "0" {print 1}'
fi
fi
else
# we can use lshal command
FSC=`lshal | grep -i "system.vendor\|system.board.vendor\|system.hardware.vendor" | grep -i "$FUJITSU" | wc -l | awk '$1 != "0" {print 1}'`
if [ "x$FSC" = "x1" ]
then
lshal | grep -i "system.hardware.product" | grep -i "$PRODUCT" | wc -l | awk '$1 != "0" {print 1}'
fi
fi
fi
fi
</ShellScript>
<ScriptArguments/>
<Timeout>480</Timeout>
<UserName>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/UserName$</UserName>
<Password>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/Password$</Password>
<FilterExpression>
<RegExExpression>
<ValueExpression>
<XPathQuery>//*[local-name()="StdOut"]</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^1</Pattern>
</RegExExpression>
</FilterExpression>
<ClassId>$MPElement[Name="Fujitsu.Servers.PRIMERGY.LinuxSeed.Server"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name='Unix!Microsoft.Unix.Computer']/PrincipalName$</Name>
<Value>$Target/Property[Type="Unix!Microsoft.Unix.Computer"]/PrincipalName$</Value>
</Setting>
</Settings>
</InstanceSettings>
</DataSource>
</Discovery>