Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel

Table of Contents
maxlevel2

Summary

The Universal Extension developer will create a new Universal Extension-based Universal Template, declaring:

...

To create a Universal Extension, see Creating a Universal Template.

Agent Registration

All communication between the Universal Controller and the Universal Extension is managed through UAG; therefore, any registering agent that meets the release criteria can be a Universal Extension provider.

In order for the Universal Controller to know which Universal Extensions are supported by a registering agent, each Agent will report this information in the hello message handshake.

Universal Extension Deployment

Deployment of Universal Extensions is managed by the Universal Controller.

...

Note
titleNote

It is important to review the Universal Agent configuration option, EXTENSION_ACCEPT_LIST, if you want to prohibit an agent from accepting deployment of any extension or if you want to limit deployment to specific extensions.

This allows full customization of the deployment approach, allowing agent extension configuration to be tailored based on corporate policy.

For automatic deployment of Universal Extensions to all registered agents, ensure that your agents are all installed with an accept any extension (default) configuration.

On-Registration Extension Deployment

On registration deployment of accepted Universal Extensions will commence immediately upon successful agent registration, depending on the configuration of the EXTENSION_DEPLOY_ON_REGISTRATION UAG configuration option.

On-Demand Extension Deployment

For Agents that are configured to accept extensions, but are not configured for on-registration deployment, their accepted extensions will be deployed only on-demand at task instance run time.

If on-demand deployment of an extension is required, the task instance will transition to the Queued Status with the Deploy Extension Status Attribute.

Upon successful deployment, the Deploy Extension Status Attribute will be cleared and the task instance will transition to the Running Status.

If the deployment is unsuccessful, the the Deploy Extension Status Attribute will be cleared and the task instance will transition to the Start Failure Status.

If an extension cannot be deployed to the destination agent due to the extension not being an accepted extension, the task instance will transition to Undeliverable Status.

Once the agent configuration has been updated, and the agent restarted, on-demand deployment can commence and the task instance will transition to Running Status upon successful deployment, as described above.

Universal Template/Extension Definition

The Universal Template definition will be enhanced to allow differentiating between a Universal Task that is executed by UAG in the form of a Script, and a Universal Task that is executed by a Universal Extension.

...

  • Universal Template Details

    • Use Common Script

    • Linux/Unix Script

    • Windows Script

    • Windows Script File Type

Output Only Field

A Universal Extension may need to send back runtime attributes associated with a task instance.

...

Output Only fields will be rendered as read-only on the Universal Task Instance form, and not shown on the Universal Task form.

Output Only Field Validation

Text
  • The value cannot be more than 255 characters for text fields and 4000 characters for large text fields.

  • The following warning will be logged in the uc.log if the output field update is rejected by the controller.

    • Output Fields: Field value for field with template id uuid and field name "field-name" cannot be more than [255|4000] characters. {field-value}

Integer
  • The value must be an integer between -2147483648 and 2147483647, inclusive.

  • The following warning will be logged in the uc.log if the output field update is rejected by the controller.

    • Output Fields: Field value "field-value" for field with template id uuid and field name "field-name" is not a valid integer.

Float
  • The value must be a valid double-precision float.

  • The following warning will be logged in the uc.log if the output field update is rejected by the controller.

    • Output Fields: Field value "field-value" for field with template id uuid and field name "field-name" is not a valid float.

Boolean
  • Any value other than true will be evaluated as false.

Preserve Output On Re-run

When Restriction is Output Only, an option to Preserve Output On Re-run can be specified.

On task instance Re-run, all Output Only field values are cleared, by default. To change this behavior, on a per field basis, enable the Preserve Output On Re-run option.

Extension Status

A field can be specified as Extension Status if Restriction is Output Only. Only one field can be specified as Extension Status per Universal Template.

...

Note

If the designated Extension Status Output Only field is changed in a universal template, the Extension Status of any pre-existing instances for that template will not be updated , until the universal extension sent sends back an update for the new Extension Status Output Only field.


Text Field Text Type

For Extension-based Universal Templates only, a Text Type option will be introduced for Universal Template Fields of type Text.

...

  • The field value must be parsable at definition time, or at runtime, if the field contains an unresolved variable or function.

  • The field value will passed to the Universal Extension as its designated type.

Dynamic Choice Field

Choice field types need to support dynamic, Universal Extension-derived options.

...

From the Universal Task form, dynamic choice field options will be populated through a request/response mechanism, initiated by Universal Controller to the Universal Extension.

Dynamic Commands

A Universal Extension may support additional operations against a task instance, therefore, we need to allow for defining such operations, which in the Universal Controller we refer to as commands.

...

Name

Unique command name, adhering to the same naming convention as a Universal Template field name.

Label

User friendly display name for the command, to be displayed within the client.

Supported Status(es)

Specifies the task instance status (or statuses) that the dynamic command should be enabled for.

Dependent Fields

The administrator can select zero or more Universal Template fields that are required by the command. The values of those fields will be included in the command request.

Timeout

Specifies an optional command timeout, in seconds, if the command requires longer than the System-level default of 60 seconds.

If the Controller (server) does not receive a command response from the Extension prior to the timeout being reached, a timeout message will be sent to the client (user interface), and displayed in the Console:

Command "command-name" on task instance "instance-name" with id instance-uuid timed out.

Execution Option

Specification for whether the command runs out-of-process execution or in-process execution.

AsynchronousIf Execution Option is in-process; Specification for whether the command runs synchronously or asynchronously.

Command Permission

Users must have Universal (or ALL) command permission and Read permission for the Universal Task Instance, assigned by the Task Instance permission type, for authorization to execute a Universal dynamic command.

Universal Output

To allow for a Universal Extension-based Universal Task to contribute its own unique output upon job completion, the Controller added support for an EXTENSION output type that the Universal Extension can optionally return upon job completion.

Python Application Attachment

The Python Application implementing the Universal Extension must be packaged in a zip file, containing both an extension.py and an extension.yml.

...

During the upload process, the extension.yml metadata will be parsed and made available from the Universal Template Metadata fields.

Import/Export Template

The Import/Export Template feature supports importing/exporting a Universal Template as a zip file.

...

Export

To export an existing Universal Template as a zip file, click the Export Template button in the Universal Template Details.

(You can also click Export Template in the Action menu that displays for that Universal Template record.)

The exported Universal Template has the following filename format:

unv-tmplt-UniversalTemplateName-extensionVersion.zip{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl

ImportTo import a Universal Template zip file, click the Import Template… button on the Universal Templates list.

Release Levels

Export Template sets the following release level attributes in the Universal Template JSON:

...

Cluster Node release level is 7.0.0.0, which does not meet the minimum release level of 7.0.0.1 for the Template.

List Import/Export

The List Import/Export feature continues to support exporting the Universal Task and Universal Template, as it has in previously releases.

...

The template 'template-name1' specifies an extension name 'extension-name' that is already associated with template 'template-name2'.

Log Level

Each registered Agent within the Universal Controller displays its configured Log Level, with one of the following options.

...