DCM is a package for dealing with IBM DataPower configuration management. It provides an Ant-based command line tool and a plugin for IBM UrbanCode Deploy (UCD).
Prerequisites
- JDK 1.6 or later is required to build. An equivalent JRE is supported if using a prebuilt plugin.
- Apache Ant (1.8.1 or later, 1.9.9 will be packaged with UCD plugin)
Building
After you obtain the source either via a Git client or by downloading the repository zip file, you can build the code using Apache Ant. Enter the dcm directory and issue the command below (assumes Apache Ant is in the path):
ant
The UCD plugin will be found in dist/datapower-vdev.zip
See Quick Start in the wiki for more details on installation.
Download
The latest plugin distributable and command line interface can be found under the Releases Tab.
Download the datapower-v*.zip
plugin and follow these installation directions to use the Datapower plugin in IBM UrbanCode Deploy.
Download the dcm.jar
file and place it in an accessible location to use the dcm command line interface.
Follow the wiki guide for detailed directions on how to use the plugin and CLI.
Contributing
If you want to contribute to the project, you will need to fill in the appropriate Contributor License agreement which can be found under the CLA directory. Follow the directions inside the document so that any submissions can be properly accepted into the repository.
License
The code is licensed under the terms of the Apache License 2.0. See the acompanying Apache-2.0-License.txt for further details.
DCM Ant Target List
Complete list of current DCM target commands. (* = matching plug-in step)
-
backup-device* - Backup all domains on a device (minus key/certificate files)
-
backup-domains* - Backup one or more domains on a device (minus key/certificate files)
-
certificate-from-def - upload a cert (or multiple certs) based on a dcm:definition (with Crypto Certificate objects, of course)
-
check-access - check whether the device is accessible and that the userid/password works
-
checkpoint-delete* - delete the specified checkpoint
-
checkpoint-restore* - restore from the specified checkpoint
-
checkpoint-save* - create/overwrite the specified checkpoint
-
create-tam-files - Create TAM files based on a whole bunch of parameters
-
clean - delete any temp files created by this ant script
-
domain-create* - ensure the domain exists
-
domain-delete* - delete the domain
-
domain-init - delete and recreate the domain, then upload the standard files
-
domain-quiesce* - quiesce all the services in the domain
-
domain-recreate - delete and recreate the domain, then save
-
domain-reset - clear all the objects from the domain (but not files)
-
domain-restart* - restart the domain
-
domain-unquiesce* - unquiesce all the services in the domain
-
download-files* - Download target files or all files from a filestore
-
export-object* - export an object i.e. service
-
export-objects* - export objects based on a dcm:definition file
-
firmware-rollback - Rollback to the previous firmware (and filesystem contents!)
-
firmware-update - Update to a new level of firmware
-
flush-document-cache* - Flush a domain's document cache
-
flush-stylesheet-cache* - Flush a domain's stylesheet cache
-
host-alias-remove* - remove a specific host alias
-
host-alias-set* - create/overwrite a host alias
-
idcred-from-def* - create an idcred object based on a dcm:definition
-
idcred-from-key-and-cert - create an idcred object after uploading matching key and certificate files
-
idcred-from-p12 - create an idcred object after uploading a #PKCS12 file containing matching key and certificate
-
import-changed - import a specified .zip or .xcfg file into the domain, making changes along the way
-
import-from-def* - ditto
-
import-dpo* - import a specified .zip or .xcfg file into the domain, making changes along the way
-
key-from-def - upload a key (or multiple keys) based on a dcm:definition (with Crypto Key objects, of course)
-
key-create - generate a private key, a public key and a self-signed certificate
-
load-balancer-group-from-def* - create/overwrite a load balancer group object
-
ltpa-password - prompt the console user for the LTPA shared-secret password
-
main (default target) - execute the import-changed and save targets (in that order)
-
objects-from-def - create, delete, or modify objects based on dcm:object-* elements
-
object-status - check the opstate of objects are as required based on a dcm:definition file
-
password-alias-create - Create PasswordAlias object
-
password-alias-update - Update password in PasswordAlias object
-
raw-mgmt-call* - make a raw management (SOMA or AMP etc) call based on raw request file input
-
reboot - make an appliance reboot request
-
restore-backup* - Restore one or more domains from backup file (see Backup Device or Backup Domains)
-
save* - save the domain
-
secure-backup-device - secure backup of device
-
service-quiesce - quiesce a service
-
service-unquiesce - unquiesce a service
-
service-status - get the opstate of a service
-
upload-dir* - upload an entire directory
-
upload-from-def* - upload files specified in dcm:definition/dcm:upload elements
-
valcred-from-def* - create a valcred object based on a dcm:definition
-
valcred-from-dir - create a valcred object from a set of certificates in a directory