.. -*- mode: rst -*-

.. _server-plugins-probes-producttype:

producttype
===========

A probe to set up dynamic groups based on the producttype and possibly
some internal components of the system.

Defined products are product-name.

Defined component information is has_some_component. In the example
below, we can infer that we have Emulex Lightpulse gear and set the
group has_hardware_emulex_lightpulse.

.. code-block:: sh

    !/bin/sh
    #
    #

    PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
    # let's figure out what product type this is
    os=`uname -s`
    productname="product-no-dmidecode"

    if [ $os = "Linux" ] ; then
        productname=`dmidecode -s system-product-name 2>&1`
        case $productname in
        "PowerEdge M600")
            productname="product-bladem600"
            ;;
        "Sun Fire X4100 M2")
            productname="product-x4100m2"
            ;;
        "Sun Fire X4440")
            productname="product-x4440"
            ;;
        "VMware Virtual Platform")
            productname="product-vmware-vm"
            ;;
        *)
            productname="product-unknown"
            ;;
        esac

        # check for emulex lightpulse fiber channel HBA
        check_emulex_lightpulse=`lspci -d 10df: | grep -c LightPulse`
        if [ $check_emulex_lightpulse -gt 0 ]; then
            echo group:has_hardware_emulex_lightpulse
        fi

        # check for broadcom nics
        check_broadcom_nic=`lspci -d 14e4: | grep -c NetXtreme`
        if [ $check_broadcom_nic -gt 0 ]; then
            echo group:has_hardware_broadcom_nic
        fi

        # check for intel pro/1000 MT nics
        check_intel_pro1000mt_nic=`lspci -d 8086:1010 | wc -l`
        if [ $check_intel_pro1000mt_nic -gt 0 ]; then
            echo group:has_hardware_intel_pro1000mt_nic
        fi

    fi

    if [ $os = "SunOS" ] ; then
        case `uname -i` in
        SUNW,*)
            productname=`uname -i`
            ;;
        *)
            productname=product-unknown
            ;;
        esac
    fi

    echo group:$productname
