Server scripts and data model

The Turbonomic Actions application includes several scripts. You can identify them by the file name prefix, Turbonomic.

Request processor

The processor logic is implemented in the TurbonomicRequestProcessor server script. It includes dedicated methods for the following tasks:

  • Creating action records.

  • Creating, updating, and searching for action approvals.

  • Getting and creating entries in the Turbonomic Entity table.

  • Getting and updating entries in the Turbonomic Instance table.

The request processor uses the services of TurbonomicEntityMatcher for finding the configuration items of the corresponding Turbonomic entities and TurbonomicActionApprovalManager for action reconciliation purposes.

All data is written to the application tables by using the data access object scripts: TurbonomicActionDAO and TurbonomicChangeRequestDAO. These scripts rely on the import set mechanism to insert and update the table records.

Action Approval Manager

The Action Approval Manager is implemented in the TurbonomicActionApprovalManager script.

This module adds and updates action approval records in ServiceNow, based on the input set of Turbonomic actions that require external approval. When a new action approval record is created, a corresponding change request is also generated for it (if custom business rules are not in use). The ServiceNow administrator approves or cancels the change request, which automatically updates the state of its matching action approval. Turbonomic then decides whether to run the action, based on the APPROVED or REJECTED state of the action approval record found in ServiceNow.

Another major responsibility of the Action Approval Manager is to perform action reconciliation. Reconciliation is based on the Turbonomic action state and the state of the action’s corresponding action approval record in ServiceNow.

Entity Matcher

The action Entity Manager is implemented in the TurbonomicEntityMatcher script.

This module serves to find the corresponding Configuration Item (CI) in ServiceNow for a Turbonomic entity. Currently, the Turbonomic Actions application has matching capabilities for virtual machines that are hosted in vCenter, Hyper-V, AWS, or Azure environments. Turbonomic reserves the right to implement other entity-matching logic in future application releases.

Note:

If the default CI matching mechanism doesn’t work on the customer environment, you can implement a custom business rule for that purpose. For an example custom rule, see APPENDIX Implementing Custom CI Matching.

Data access objects

This module accesses data in the Turbonomic Actions application, and in ServiceNow.

The TurbonomicActionDAO script reads and writes records in tables that are installed as part of the Turbonomic Actions application. The TurbonomicChangeRequestDAO script reads and writes records in the change_request table that Service Now manages. When the module loads and stores this data, it uses the following scripts:

  • TurbonomicActionApproval

    Stores records from the Turbonomic Action Approval table.

  • TurbonomicActionApprovalState

    Stores all possible action approval states that are defined in the Turbonomic Action State table.

  • TurbonomicActionRecord

    Stores record data from the Turbonomic Action Record table.

  • TurbonomicChangeRequest

    Stores change request data that the Turbonomic Actions application requires.

  • TurbonomicChangeRequestState

    Defines the supported change request states.

  • TurbonomicEntity

    Stores the record data from the Turbonomic Entity table.

  • TurbonomicInstance

    Stores the records data from the Turbonomic Instance table.

Data model

The following are the most important tables that represent the data model for Turbonomic Actions.

  • Turbonomic Action Approval (x_turbo_turbonomic_turbonomic_action_approval)

  • Turbonomic Action Record (x_turbo_turbonomic_turbonomic_action_record)

  • Turbonomic Action Settings (x_turbo_turbonomic_turbonomic_settings)

  • Turbonomic Action State (x_turbo_turbonomic_turbonomic_action_state)

  • Turbonomic Entity (x_turbo_turbonomic_x_turbonomic_entity)

  • Turbonomic Instance (x_turbo_turbonomic_turbonomic_instance)

Matching import set tables to work with these tables are implemented, enabling the application to add or update the table data.