Release Notes
Universal Controller release 7.1.0.0 contains the following high-level features. For a complete list of all the included features and fixes please refer to the Universal Controller 7.1.x Maintenance list.
Application Integration
Backlog | Title | Description |
---|---|---|
B-12809 | Update SAP LOW and HIGH data types to support up to 255 characters. | Note Please make sure you are using the RFC 7.5 Library alongside with the Universal Agent 7.1.0.0 when using this Feature. Any combination other than that might lead to situations where the unavailability of the High option will not be detected and USAP will not identify truncating the field length as SAP enhancements are not present to support the exceeded Length of the Variant Field. USAP has been modified to support the enhanced variant structures when available. For NW RFC, this is relatively easy. We can check for the existence of the enhanced structures prior to calling the function module and act accordingly. For classic RFC, it is more difficult. We have no way to determine ahead of time whether the function module in question has been updated with the enhanced variant structures. Therefore, for classic RFC, we will have to assume the enhanced structures are available on an initial call and automatically downgrade to non-enhanced structures on failure. If the user specifies a variant HIGH/LOW field that exceeds the maximum size supported by the function module involved in an operation, USAP will terminate with exit code 202.
|
Universal Integration Platform
Backlog | Title | Description |
B-13831 | UIP: Add support for Cancel command within Universal Extension framework | The Universal Integration platform has been enhanced to all cancelling Extension based processes within UIP. The current behavior for cancelling an Extension instance (or any agent based task instance) is as follows:
The result is that the Extension instance is terminated without any knowledge of the termination. In order to give the Extension process a chance to respond to the cancel command, a new extension_cancel() method has been added to the Universal Extension API. This is an optional method that can be implemented by the Extension developer. If implemented, extension_cancel() will be called by the UniversalExtension base class when UAG receives a Cancel command from the Controller. Within the extension_cancel() method, the Extension developer can perform whatever actions are needed or appropriate before the process is cancelled. However, Extension will not have unlimited time to perform these actions. The specific amount of time available for the cancel operation will be controlled by a UAG configuration option: Cancel Timeout (see below). With the implementation of this backlog, the cancel behavior for Extension instances changes to the following:
|
B-13908 | UIP: Add support for in-process Dynamic Commands | This backlog adds the ability to run a Dynamic Command within the running process of the task instance on which the command is called. Currently, Dynamic Commands always run in a separate process. Dynamic Commands support custom functionality and it cannot be known what use cases will be implemented. However, there are three general scenarios that must be considered.
The Dynamic Command functionality was enhanced to support two main execution options that can be selected by the Extension developer:
The Extension developer specifies the execution options at the Universal Template level in the Controller. |
B-13821 | UIP: Enhance "requires_python" logic to support '*' wildcard in clauses | UIP Extensions now allow usage of Wildcard in clause to implement a simpler way of identifying specific Python requirements. UIP Extensions allow extension developers to specify if a certain version of Python is required using the For example, to target all Python 2.7.x binaries, the developer would have to specify the following The solution allows wildcards for the |
B-13860 | UIP: Refactor logging API | The Universal Extension repository contains a Instead of passing instances, the user is now able to import the logger in The solution allows users to get access to the logger using the following import: Note To preserve compatibility, passing in an instance of the logger still works. |
B-13820 | UIP: Allow Extension config options to be set at install time or via Broker startup | Enhance UIP to allow certain configuration Options as part of the Install or Broker startup process. Three configuration options are available to control Universal Extension behavior:
Currently, the only way to set these options is by updating the UAG Server configuration file and then refreshing or restarting the Agent. Because a static configuration is not necessarily desirable for an option like this, providing ways to override the configuration on an ad-hoc or dynamic basis is needed. The ways in which such requirements were satisfied for similar features was to allow them to be set at install time and at Agent startup time, via options in the ubrokerd script and/or the ubroker application’s command line interface.. To satisfy the requirement above, the following enhancements are provided in this release:
|
B-13822 | UIP: Allow usermode installs to discover the Python distribution provided by a system mode-installed Agent | Enhanced UIP to allow a user Mode Agent to take advantage of an, already installed, Python environment provided by a System-install Agent. During Python discovery (i.e., the process by which UAG Server looks for a Python interpreter that satisfies a Universal Extension’s version requirements), UAG Server always looks for the Python distribution provided by the system-mode Universal Agent install. UAG Server looks for this Python in a file system location that is relative to UAG Server’s installation directory. Because usermode installs do no provide the Python distribution, any Agent-supplied distribution will not be found. While this problem exists for Linux/Unix usermode installs a change in the UAG Server discovery implementation is only necessary for Windows. If someone wishes to use the Agent’s Python distribution, they can simply take the tarball from the Agent distribution file and extract it under the usermode installation directory. A similar solution is not available for Windows. Note that the user can also configure the extension_python_list option to look for an Agent-supplied Python distribution in any location. This means that making the change for Windows is simply a change for convenience. The system mode Universal Agent install for Windows records has its install location in the Windows system registry, via the installation_directory value under HKLM\SOFTWARE\Stonebranch. That is a highly-reliable value that system-mode and usermode installs may use to locate the Agent’s Python distribution. |
B-13846 | UIP: New Credential "Token" Universal Extension Support | Implemented a new “Credential token” to better support large Stokes provided by certain applications. Some web/cloud services require authentication tokens that may be 3-4 Kb in length. The requirement is to implement support of token fields in Resolvable Credentials with maximum length at least 4096 bytes. The Credential Token must be passed to Universal Extension and its value must be scrubbed from any visible output of a task instance. The ‘state’ dictionary of a Universal Extension Task is populated with the new credential variable “[credential variable name].token” along with previously supported ‘*.user’, ‘*.password’, ‘*.pasphrase’ and ‘*.keyLocation’. Total cumulative length of all encrypted fields passed to the task (password + passphrase + token) cannot exceed 65535 characters. The previous limit was 2052 bytes. The limit if used in the command of a regular task is 4096 characters of command length. |
B-13819 | UIP: Expose configuration options that allow custom Python discovery paths | A new configuration option for UAG Server was implemented for the UA 7.0.0.0 release. This option, extension_python_list, is currently recognized by UAG Server but no information about its use was made available. This was done to reduce the development and testing complexities around exposing any configurable option. However, providing users with the ability to configure this option is needed for usability and flexibility. Information about this option must be made public and the ability to configure the option in a flexible, secure way must be provided. To satisfy the requirement above, the following enhancements are provided:
|
B-13989 | UIP: Provide access to Extension APIs at install time | Simplification of uploading an Extension to the Controller. So far, with every change, the process of manually building and uploading the Extension has to be repeated. A tool has been created to make this process faster and convenient. In addition to building and uploading the Extension, the tool should offer functionality that allows users to:
The Solution is a CLI Utility called uip-cli with a list of parameters associated:
|
B-14255 | UIP: Implement init command support for CLI |