Add generation of propertiesMatch condition

Update the mako template to generate conditions within the FanDefinition
sections when a condition is defined for a fan. Each supported condition
function's parameters are generated within a `getCondParams` mako
method, allowing easy support of additional conditions with differing
parameters.

Tested:
    A given condition's function and parameters generate correctly
    No condition function is generated on a fan where not defined

Resolves: openbmc/openbmc#2976

Change-Id: I3f0b30702fdcef6749929d85543270863eb26381
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/monitor/example/monitor.yaml b/monitor/example/monitor.yaml
index 7676fde..59be7e6 100644
--- a/monitor/example/monitor.yaml
+++ b/monitor/example/monitor.yaml
@@ -30,6 +30,15 @@
 #      offset [The offset to add to calculate the expected fan speed.
 #              Default is 0 for fan speed target;
 #              Customized value for pwm target]
+#  condition: [optional condition function to create fan functional monitoring]
+#    name: [The name of an available condition function]
+#    properties: [The properties used in the condition function]
+#        - object: [Object path of property to use]
+#          interface: [Interface of property to use]
+#          property:
+#              name: [Property name]
+#              type: [Property data type]
+#              value: [Property value to check condition against]
 #
 #sensor_trust_groups:
 # - class: [Group class name
@@ -63,6 +72,16 @@
 #    sensors:
 #      - name: fan0
 #        has_target: true
+#    # Only create fan functional properties and monitor on air cooled
+#    condition:
+#      name: propertiesMatch
+#      properties:
+#        - object: /xyz/openbmc_project/inventory/system/chassis
+#          interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+#          property:
+#            name: WaterCooled
+#            type: bool
+#            value: false
 #sensor_trust_groups:
 # - class: NonzeroSpeed
 #    group: