9.9 Example: SCM Matching

The following HierarchyFile example uses nested generator statements to create an element hierarchy 4 levels deep from 4 generations of parent class names. Under the hierarchy built from class names, are two main group elements: Networking (with Switch and Router child elements) and Performance.

  • structure.parent.parent.parent.name

    • structure.parent.parent.name

      • structure.parent.name

        • structure.name

          • Networking

            • Switch

            • Router

          • Performance

<?xml version="1.0" standalone="no"?>
<!DOCTYPE hierarchy PUBLIC "-//NetIQ, Inc.//DTD hierarchy 2.0//EN" "http://www.ManagedObjects.com/dtds/hierarchy_2.0.dtd">
<hierarchy case="yes">

    <generator affected="no" class_from_field="structure.parent.parent.parent.objectClass" field="structure.parent.parent.parent.name">

        <generator affected="no" class_from_field="structure.parent.parent.objectClass" field="structure.parent.parent.name">

            <generator affected="no" class_from_field="structure.parent.objectClass" field="structure.parent.name">

                <generator affected="yes" class_from_field="structure.objectClass" field="structure.name">

                    <group name="Networking" class="net_lan" >
                        <group name="Switch" class="telcom_switch">
                            <param name="match.0.type" value="FIXED" />
                            <param name="match.0.expr" value="gen_device=${formula.util.encodeURL($parent.parent.name)}" />
                            <param name="match.0.root" value="gen_container=Switches/demo=SNMP+Manager/root=Elements" />
                        </group>
                        <group name="Router" class="device_router">
                            <generator field="#set($s=${structure.id}%32)$s" class="gen_port">
                                <param name="match.0.type" value="FIXED" />
                                <param name="match.0.expr" value="port=${name}/server=${formula.util.encodeURL($parent.parent.parent.name)}" />
                                <param name="match.0.root" value="gen_container=Routers/demo=SNMP+Manager/root=Elements" />
                                <param name="script" value="element.DisplaySourceElements=true" />
                            </generator>
                        </group>
                    </group>

                    <group name="Performance" class="gen_container" >
                        <param name="match.0.type" value="REGEXP" />
                        <param name="match.0.expr" value="[^\x2f]*/${parent.objectClass}=${formula.util.encodeURL(${formula.util.escapeRegExp($parent.name)})}" />
                        <param name="match.0.root" value="Hosts=Hosts/tec=Tivoli+T%2FEC/root=Elements" />
                        <param name="match.1.type" value="LDAP" />
                        <param name="match.1.expr" value="(cn=${parent.name})" />
                        <param name="match.1.root" value="gen_container=Hosts/script=Sitescope/root=Elements" />
                    </group>
                    <group name="Tickets" class="gen_action" >
                        <param name="match.0.type" value="CLASS" />
                        <param name="match.0.expr" value="(&amp;(cn=${parent.name})(objectClass=*))" />
                        <param name="match.0.root" value="remedy=ARS+Help+Desk/root=Elements" />
                    </group>

                </generator>

            </generator>

        </generator>

    </generator>
   
</hierarchy>