Product Documentation

Create a Stylebook to perform non-CRUD operations

Jun 07, 2018

StyleBooks manage NetScaler configurations by computing the necessary configuration objects on the NetScaler instances. These objects are added, updated or removed from the instance each time you create or update a ConfigPack. That is when you specify the “desired state.”

However, some NetScaler configuration objects support a few operations other than create, update or delete (CRUD operations). For example, a load balancer object (lbvserver) or a NetScaler feature object (nsfeature) can support the “enable” or “disable” operation. Similarly, NetScaler certkeys support the “link” and “unlink” operation to link or unlink a certificate to another certificate. These operations on NetScaler objects are called as non-CRUD operations. This section describes how to perform non-CRUD operations on configuration objects that support them using StyleBooks.

Note: The binding between configuration objects (for example, bind a certkey to a lbvserver) is not considered a non-CRUD operation. This is because Nitro bindings are represented as configuration objects in their own right. These objects are created and deleted like any other NetScaler configuration object.

Supporting the non-CRUD operations

A new construct called "meta-properties" is added in the component at the same level as the “properties” construct. The only attribute supported in this construct currently is called “action” This attribute can take values like “enable” or “disable” that are supported by that configuration object.



      name: my-lbvserver-comp

      type: ns::lbvserver


          action: enable


          name: $

          servicetype: HTTP

          ipv46: $parameters.ip

          port: 80

          lbmethod: $

In the above example, the "my-lbvserver-comp" component is of type "ns::lbvserver." The "ns" is the prefix that refers to the namespace netscaler.nitro.config and version 10.5 that you had specified in the import-stylebooks section. The "lbvserver" is a NITRO resource in this namespace. As an implicit action, the lbvserver is first created by the StyleBook; then the “enable” operation is performed on it.

The action specified in the meta-properties is performed on the configuration object only during the creation of the ConfigPack. Updates to the ConfigPack do not perform non-CRUD actions.

Note: The value of the action attribute cannot be a StyleBook expression that is evaluated dynamically.