DataPower Buddy Features

DPBuddy provides dozens of different features to help you automate each and every DataPower-related task. Some of these features are listed on this page. Many tasks can be easily automated using DPBuddy's extensibility mechanism. If you are looking for a specific feature which is not explicitly listed here, please send us a question; chances are, DPBuddy can support it.

General Features

  • Automates all DataPower administration tasks — configuration export, configuration import, copying files to the appliance, deleting files on the appliance, backups, quiescence, firmware upgrade, monitoring and log management and many others.
  • Does not require any knowledge of DataPower CLI commands or SOMA/AMP XML management interface or XSLT.
  • Easy to get started — installation and configuration only takes a few minutes.
  • Easy-to-use command line interface.
  • DPBuddy can be used to implement a build/deployment process of any complexity, including the one recommended by IBM. A suggested process accompanied by detailed examples is documented in DPBuddy's User Guide.
  • DPBuddy comes with detailed documentation, samples and templates to quickly get you started.
  • Tight integration with Ant and Groovy/Gradle; Apache Maven is supported as well.
  • Works well with your build/deployment/configuration management tool of choice — Jenkins/Hudson, Rundeck, Chef, Puppet, Ansible, etc.
  • Super-flexible mechanism for managing environment-specific settings/properties. For example, common settings can be defined at a device level; more specific ones can be specified at a domain level. Exported DataPower configuration can embed a setting/variable inside an attribute or a text node.
  • Configuration settings can be encrypted. Encrypted settings can be referenced from transformation actions or directly from DataPower configuration.
  • Any DPBuddy command can be executed against multiple devices and/or domains by simply supplying a list of target environments. DPBuddy will execute commands against all the devices/domains in the list, and, in case of any errors, it will optionally rollback either just the failed domains or all the affected devices/domains.
  • Ability to easily create environment-neutral templates out of exported DataPower configuration files; Ant/Groovy/Gradle variables can be used anywhere in any file managed by DPBuddy.
  • Facilitates and simplifies integration with version control.
  • Powerful and easy-to-use XML transformation capabilities supported by all key DPBuddy commands (export, import, copy). You can add/delete/modify any XML element/attribute or text based on XPath or based on DataPower type and object names. DPBuddy also supports repeaters (loops) to produce configuration with variable number of items, which can be used for transforming load-balancing groups. Transformations can be used in addition to or in conjunction with DataPower deployment policies to prepare configuration and other files for deployment into target environment. Transformation declarations can be reused across multiple tasks or scripts. Defining the transformations requires no knowledge of XSLT.
  • All key commands support regular expression patterns defining what services, objects and files to apply the commands to. You can select objects based on matching object type (class) and/or object name. E.g., you can export only the objects with matching names and types or only the objects with matching names irrespective of their types.
  • All DPBuddy commands parse the response from the device and present it in a nicely formatted way; you never need to deal with raw XML or SOAP.
  • Sophisticated logic for validating the state of imported configuration — DPBuddy will check the operational state, verify that services are listening on ports and automatically pull the relevant error messages form DataPower logs in case of issues.
  • DPBuddy can be used directly from Eclipse for development of XSLT, GatewayScript and other DataPower-related artifacts.
  • SoapUI integration, ability to invoke DPBuddy's commands directly from SoapUI GUI.
  • Execution of all potentially disruptive DPBuddy commands is audited. DPBuddy creates an audit log of all changes made to a domain. The audit log is kept locally as well as in each domain where changes occurred. The audit log captures names of updated configuration objects, information about uploaded files, user names and other relevant data elements. The audit file can be created in JSON and/or XML format.

DataPower Configuration Import

  • Verification of service and object statuses and open ports after the import.
  • Automatic saving of the domain's configuration after the import.
  • Imported configuration and files can be transformed using simple XPath-based transformation functions on the client. Transformations can be applied to both XML and ZIP import formats. DPBuddy will automatically un-zip/re-zip archives when needed.
  • Any imported file can contain Ant and Groovy/Gradle variables that will be resolved automatically.
  • Support for deployment policies and the use of Ant/Groovy/Gradle variables (in addition to DataPower Version 6 variables).
  • Automatic domain quiescence before the import and un-quiescence after the import.
  • Detailed report explaining what objects and files have been imported.
  • Support for updating domain's comments to support version tracking.
  • Special "transformOnly" mode to help develop/troubleshoot transformation logic.

File Management

  • Ability to copy files to the appliance in bulk; supports all the capabilities of the regular Ant copy command.
  • DPBuddy's copy command automatically reproduces local directory structure on the device.
  • Ability to upload keys and certificates to the "cert://" filesystem
  • Any file can be transformed on the fly using DPBuddy's transformation capabilities.
  • References to variables are automatically resolved -- any XML file can contain a template variable.
  • "Delete" command can remotely delete files and directories based on matching regular expression patterns.
  • You can download multiple files, directories or directory trees from the device. The remote directory structure will be replicated locally.
  • XML/XSLT cache can be flushed automatically as part of the copy command.

State and Status Verification and Reporting

  • DPBuddy is able to verify the operational state of DataPower services and objects and report the objects that are not in the desired state. DPBuddy will automatically scan the DataPower log and display error messages related to the objects in question to facilitate troubleshooting. This function can be executed after importing configuration to ensure that all imported objects started successfully.
    Additionally, state and status verification functions can be used to perform operational monitoring of DataPower appliances.
  • DPBuddy is capable of querying the state of DataPower services and verifying that the services are actually listening on ports.
  • DPBuddy provides a generic "assertStatus" command that allows for retrieving run-time parameters of any object and validating that the parameters meet certain conditions. The conditions are defined using Groovy expressions.
  • Sophisticated query and reporting to list states of all or specific objects and services across multiple domains and devices.

Configuration Reports

  • Reports in CSV and Excel format containing configuration of all or specific objects/classes across multiple devices/domains.
  • Easy way to diff configuration: configuration report can include only the elements that have different values.

Checkpoints and Rollbacks

  • Checkpoints could be created automatically as part of configuration import.
  • Automatic rollback to a checkpoint in case of a failure. This is supported by all key DPBuddy commands, including "import", "copy" and others.
  • Support for rollbacks, including rollback to the last checkpoint.
  • Automatic deletion of older checkpoints.
  • Cleanup/deletion of checkpoints based on patterns.

Configuration Export

  • You can use regular expressions to define what objects and object types to export.
  • Export automatically formats exported XML configuration and removes unneeded elements. This makes it easy to keep DataPower configuration files under version control.
  • DPBuddy can automatically sort DataPower objects in the exported configuration file by their names and types. DataPower could arbitrarily re-order objects in the export file, which makes tracking changes difficult. DPBuddy solves this issue by on-the-fly sorting.
  • Exported configuration could be transformed on-the-fly to create "templatized" configuration files.
  • Support for zip and XML configuration formats.
  • Support for deployment policies (similar to the "Export Configuration" DataPower WebGUI screen).

Firmware Upgrades

  • DPBuddy automatically downloads a firmware image from the IBM website, installs it and reboot the device.
  • Domains can be automatically quiesced/un-quiesced.
  • DPBuddy can optionally wait for the completion of the reboot process and then verify that the services are up and running.

Log Analysis

  • Ability to "tail" remote DataPower logs and search for patterns. "tail" can be run in continuous mode similar to the "tail -f" Unix command.
  • You can tail the log from any domain or any device. It is also possible to tail logs across multiple domains; DPBuddy will consolidate relevant log entries.
  • Support for setting log levels on the device.
  • Ability to add a log entry to the DataPower log; useful for auditing/tracking purposes.

Quiescence Support

  • DPBuddy supports quiescence/un-quiescence of an entire domain or specific services. As with many other DPBuddy tasks, you can select the services using regular expressions.
  • DPBuddy will automatically wait for a configured period of time for all services and objects to reach their target operational state after quiescence/un-quiescence. DPBuddy will report all objects that failed to reach this state.

Backup/Restore Support

  • You can backup one or multiple domains with a single DPBuddy command; domains are selected based on patterns.
  • You can restore multiple domains; simply point DPBuddy to the backup file taken by the "backup" command.
  • Support for secure backups; secure backup files are automatically downloaded from the device for archiving once the backup is done.
  • Support for secure restore. DPBuddy can optionally wait for the appliance to complete the reboot process after restore.

Cache Management

  • Ability to flush stylesheet and XML document caches for one, multiple or all XML managers; useful for frequent file uploads during development.
  • You can use DPBuddy to flush DNS, RBM and various other DataPower caches.

Domain Management

  • Support for domain reset and restart.
  • Support for deleting/creating domains.

Extensibility

  • DPBuddy can be used from Groovy scripts and it can also be extended using Groovy.
  • All DPBuddy commands can be used from a shell/batch scripts; commands can include references to environment configuration properties.
  • DPBuddy's environment configuration file can be exported as a shell/batch file for easy access from any shell script.
  • DPBuddy can easily be extended by defining XML templates utilizing DataPower XML management interface (SOMA). The templates can be embedded inside DPBuddy tasks or defined externally.
  • For many tasks it is possible to simply supply the name of the SOMA action to DPBuddy's "action" command and provide child elements, if any.

Miscellaneous Functions

  • Ability to delete DataPower objects that match a regular expression with automatic detection and cleanup of the dependent objects.
  • Support for dynamic management of load-balancing group members, including disabling/enabling and addition of members.
  • Support for password aliases, which can be used in conjunction with encrypted settings.
  • Appliance reboot and restart with the ability to wait for the completion of the reboot.