Product Documentation

Condition construct

You can make a component conditional by using a condition construct. The value of a conditional construct is a boolean expression that evaluates to true or false. If the condition is true, the component is used to build its configuration objects. If the condition is false, the component is skipped, and no configuration objects are created through it. The boolean expression is often based on parameter values.

Example:

components:
      -
        name: servicegroup-comp
        type: ns::servicegroup
        condition: $parameters.svc-server-ips
        properties:
              name: $parameters.name + "-svcgrp"
              servicetype: HTTP

In this example, if the user specifies a value for the optional parameter svc-server-ips, then the component, servicegroup-comp, is processed by the StyleBook engine. If the condition is false, that is, if the user does not provide a value to this parameter, a null value is assigned to this parameter and evaluates to false, then the StyleBook engine ignores the presence of this component, and no servicegroup is created.

Note that the boolean expression can be based on any valid expression supported in StyleBooks (for example, whether another component is present, or whether a parameter has a certain value).

The following example builds the configuration object of NITRO type ns::systemfile if the condition is evaluated to true.

Example:

     components
          -
            name: pem_key_files
            type: ns::systemfile
            condition: "$components.der-certificate-files-comp or $components.pem-certificate-files-comp"
            properties:
                   filecontent: $certificate.keyfile.contents
                   fileencoding: "BASE64"
                   filelocation: "/nsconfig/ssl"
                   filename: $certificate.keyfile.filename

In this example, the condition is a complex “OR” expression, where you want this configuration object to be created by the StyleBook only if two other components in the StyleBook have been processed (not skipped), therefore, creating a dependency between components.

Condition construct

In this article