identify

The section “identify” is used to specify how the properties of a classe’s device can be retrieved. Under the “identify”, there is another section with the keyword “properties”, that contains “property readers” for the different properties.

identify:
  properties:
    vendor:
      - detection: constant
        value: "AudioCodes"
    serial_number:
      - detection: snmpget
        oid: ".1.3.6.1.2.1.47.1.1.1.1.11.67112960"

In this case we have two property readers: “vendor” and “serial number”. Property readers are used to read out and to normalize it after. Every property reader can consist of the following parameters:

   Parameters        :  Description
----------------------------------------------------------------------------------
1. pre_condition  :  Condition has to hold true to be able to read out data
2. detection      :  Describes how to retrieve the value
3. operators      :  list of operators to be used on the value after retrieving it

The conditions of “pre_condition” can be built exactly like the conditions in match The “detection” value can be one of the following:

   Value             :  Parameters
---------------------------------------------------------------------------
1. SysDescription  :  pre_condition (optional), operators (optional)
2. SysObjectID     :  pre_condition (optional), operators (optional)
3. snmpget         :  pre_condition (optional), operators (optional), oid
4. constant        :  pre_condition (optional), operators (optional), value

There are three different operator types:

1. operator:
    type               : "filter"
    filter_method      : method result is filtered with
    value              : comparison value when filtering
    return_on_mismatch : boolean that indicates if value is returned also when 
                         filter fails
2. operator:
    type               : "switch
    switch_method      : method that specifies a case
    cases              : list of switch cases

The third type is called “modify”:

3. operator:
    type                : "modify"
    modify_method       : Method how to modify the retrieved value
    ...

The further parameters of this operator depend on the that is chosen:

Method              : Description
----------------------------------------------------------------------------------
1. regexReplace     : replace subtsrings with help of a regex
2. regexSubmatch    : cut out substrings with a regex and a format
3. toUpperCase      : change all letters to capital letters
4. toLowerCase      : change all letters to small letters
5. addPrefix        : add a prefix
6. addSuffix        : add a suffix
7. multiply         : multipy value with another one
8. divide           : divide value by another one
9. map              : 1 to 1 mapping from original value to a new one
10. insertReadValue : read other value and put it together with the current value

Method              : Parameters
----------------------------------------------------------------------------------
1. regexReplace     : regex, replace
2. regexSubmatch    : regex, format
3. toUpperCase      : /
4. toLowerCase      : /
5. addPrefix        : value (prefix)
6. addSuffix        : value (suffix)
7. multiply         : value (prop-reader)
8. divide           : value (prop-reader)
9. map              : ignore_on_mismatch (optional), mappings (key + value)
10. insertReadValue : read_value (prop-reader), format (how to put values together)