Node and Tool Filters


Tool filtering is a facility allowing the tool writer to control whether the tool is visible in the Tools menu when one or more nodes are selected. Most tools are platform dependent in that their successful execution depends on commands that are provided on some platforms but not on others. For example, the "bdf" tool depends on the bdf command, which is provided on HP-UX platforms, but is not available under that name on Linux platforms. A tool should only be visible in the Tools menu when the commands it requires to run are available on all the nodes selected. To do this, the tool specifies in a node filter expression the node attributes that must be possessed by all nodes it can run on.


The eq operator specifies that a node the tool can run on must have exactly the attribute value specified. It applies to any attribute name allowed in a node filter expression. The ge operator specifies that a node the tool can run on must have at least the attribute value specified. The lt operator specifies that a node the tool can run on must have a less than the value specified. The idea of a "greater than or equal to" or a "less than" relation only has meaning for numeric valued attributes. For nodes, the numeric valued attributes the filter expression can specify include the OSRevision and Protocol Support attributes, whose values are version numbers. The values permitted for version numbers and how they are compared is described in the Version Numbers section below. The attribute-name is one of the values listed in the tables below or a protocol name from the ProtocolSupport attribute of a node. The attribute-value is one of the possible node attribute values for attribute-name.



Attribute values are based on the Distributed Task Force (DMTF) Common Information Model (CIM). Usually these values are defined during the node identification process, which uses WBEM and SNMP to determine node attributes. For this release, valid OSName values are HPUX and LINUX. For an OSName value of HPUX,the OSRelease attribute values have the leading alphabetic field removed (for example B.11.11 is stored as 11.11). Valid ProcessorFamily values are pa-risc, ia32 and ia64. The ProccessorFamily attribute for a node may be empty if SNMP or WBEM returns a value that is not recognized. A node filter expression is used as part of an include filter expression. There are three types of include filter expressions, each allowing a different category of attribute names to be filtered on.
Category Filter Type Attributes Names Allowed
Operating System os OSName, OSVendor, OSRevision
Hardware hardware DeviceType, DeviceSubType, Model, ProcessorFamily
Protocol Support protocol any protocol name



If a tool contains more than one include filter of different types, the conditions of the filters are logically "and"ed together. A tool with both Operating System and Hardware dependencies could use the filter

If a tool contains more than one include filter of the same type, the conditions of the filters are logically "or"ed together.

Tool filtering depends on the attributes being filtered having a value defined on the nodes selected. For os and hardware filter types, if any attributes being filtered on are not defined for a node, the node is assumed to have the value required by the filter. Thus a node with none of the "os" or "hardware" attributes specified by a tool filter will be assumed capable of running the tool. The "protocol" filter type differs from this in that a missing attribute on a node will not allow the filter to pass.





The OSRevision and Protocol Support node attributes have values that are interpreted as version numbers if possible. A version number is a series of non-negative decimal numbers separated by period (.) characters. When comparing version numbers, the following rules are used:
  • The leftmost numbers in the series are most significant, so "1.0" is greater than "0.1".
  • Leading zeroes on the numbers are disregarded, so "003" is equal to "3".
  • Two adjacent period characters are interpreted as if they delimited the number zero, so "1.0.3" is equal to "1..3".
  • A beginning period character is interpreted as if preceeded by a zero, so ".9" is equal to "0.9".
  • Trailing zero numbers are disregarded, so "1.0.0" is equal to "1"