http://{mmc base}/api/deployments
Managing Deployments Using REST APIs
The management console provides REST APIs that you can use to programmatically access much of the console’s functionality. Among the operations that you can request with the REST APIs are operations related to managing deployments. This includes deploying, undeploying, creating, updating, and deleting deployments inside a server or cluster.
See Using the Management Console APIs for an overview of the REST APIs, including a basic example of use, and a summary of returned status codes and error handling codes. |
This page provides a brief description of each REST API for managing deployments, an HTTP method to invoke the API, and a usage example. The examples show how to invoke the API using cURL, the command line HTTP tool.
Note: The notation \{mmc base} refers to the console base address. The console base address used in the examples is http://localhost:8080/mmc and configured with the default username and password (admin:admin).
The table below summarizes the REST APIs for managing deployments:
Task | Resource | Description | HTTP Invocation Method |
---|---|---|---|
Get All Deployments |
\{mmc base}/api/deployments |
Gets all deployments |
GET |
Get a Single Deployment |
\{mmc base}/api/deployments/<deploymentId> |
Gets one deployment |
GET |
Create a Deployment |
\{mmc base}/api/deployments |
Creates a deployment |
POST |
Add Applications/Servers |
\{mmc base}/api/deployments/<deploymentId>/add |
Adds applications or servers to the deployment |
PUT |
Remove Applications/Servers |
\{mmc base}/api/deployments/<deploymentId>/remove |
Removes applications and servers from a deployment |
PUT |
Delete a Deployment |
\{mmc base}/api/deployments/<deploymentId> |
Deletes an entire deployment |
DELETE |
Deploy a Deployment |
\{mmc base}/api/deployments/<deploymentId>/deploy |
Deploys one or more specified deployments |
POST |
Redeploy a Deployment |
\{mmc base}/api/deployments/<deploymentId>/redeploy |
Redeploys one or more specified deployments |
POST |
Undeploy a Deployment |
\{mmc base}/api/deployments/<deploymentId>/undeploy |
Undeploys one or more specified deployments |
POST |
Get All Deployments
Returns a list of all deployments on the specified server. If no server is specified, the API returns a list of all deployments on all servers.
HTTP Method:
GET
URL:
Parameters:
serverId: An optional parameter that specifies the ID of the server from which the deployments are listed. If not specified, this parameter is set to all
. If the specified ID is not a valid server ID, the JSON returned is an empty list.
Example:
Request:
curl --basic -u admin:admin http://localhost:8080/mmc/api/deployments
JSON Response:
The returned JSON contains the following fields:
-
total: Number of deployments.
-
data: A list containing information about each deployment.
-
name: Name of the deployment.
-
id: ID of the deployment.
-
lastModified: Date indicating the last time the deployment was modified. The date format is:
%day, %dayNumber %month %year %hour:%minutes:%seconds %timeZone
. -
status: The current status of the deployment. Possibles status values are:
DEPLOYED
,UNDEPLOYED
,IN_PROGRESS
,SUCCESSFUL
,FAILED
, andDELETING
. -
href: Link to the current deployment screen in the Management Console.
-
servers: Lists the IDs for all the servers assigned to the deployment.
-
clusters: List the IDs for all clusters assigned to the deployment.
-
clustersNames: List all the names for all clusters assigned to the deployment.
-
reconciled: Boolean value indicating the reconciled status of the deployment.
-
applications: Lists IDs for all the applications that are assigned to the deployment.
Response:
{
"data": [
{
"applications": [
"local$1b8ee6e2-043c-403c-b404-af3aa74d6f92"
],
"clusterIds": [],
"clusterNames": [],
"href": "http://localhost:8080/mmc/api/deployments/local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"id": "local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"lastModified": "Mon, 5 Sep 2011 12:19:15 GMT-03:00",
"name": "Example",
"reconciled": false,
"servers": [
"local$3a99adfe-e942-4b52-b082-1a351de01420"
],
"status": "UNDEPLOYED"
}
],
"total": 1
}
Get a Single Deployment
Returns information about a specific deployment.
HTTP Method:
GET
URL:
http://{mmc base}/api/deployments/{deploymentId}
Parameters:
deploymentID: The ID of the deployment.
Example:
The following example shows how to list the deployment whose ID is local$06d1e159-7297-475f-b84e-d83cc6d0540c:
Request:
curl --basic -u admin:admin http://localhost:8080/mmc/api/deployments/'local$06d1e159-7297-475f-b84e-d83cc6d0540c'
Response:
The returned JSON contains the following fields:
-
name: Name of the deployment.
-
id: ID of the deployment.
-
lastModified: Date indicating the last time the deployment was modified. The date format is:
%day, %dayNumber %month %year %hour:%minutes:%seconds %timeZone
. -
status: The current status of the deployment. Possibles status values are:
DEPLOYED
,UNDEPLOYED
,IN_PROGRESS
,SUCCESSFUL
,FAILED
, andDELETING
. -
href: Link to the current deployment screen in the management console.
-
servers: Lists the IDs for all the servers assigned to the deployment.
-
reconciled: Boolean value indicating the reconciled status of the deployment.
-
applications: Lists IDs for all the applications that are assigned to the deployment.
{
"applications": [
"local$1b8ee6e2-043c-403c-b404-af3aa74d6f92"
],
"clusterIds": [],
"clusterNames": [],
"href": "http://localhost:8080/mmc/api/deployments/local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"id": "local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"lastModified": "Mon, 5 Sep 2011 12:19:15 GMT-03:00",
"name": "Example",
"reconciled": false,
"servers": [
"local$3a99adfe-e942-4b52-b082-1a351de01420"
],
"status": "UNDEPLOYED"
}
Create a Deployment
Creates a deployment with the specified deployment name, on the specified servers and for the applications, and saves the deployment on the console. The input values are specified using JSON. The returned JSON contains the information about the newly created deployment.
HTTP Method:
POST
http://{mmc base}/api/deployments
JSON Input Fields:
-
name: Name of the deployment to be created.
-
servers: List of server valid ID. If a server ID is not valid, an error message is returned with with the invalid ID.
-
clusters: List of valid clusters IDs. If a cluster ID is not valid, an error message is returned with with the invalid ID.
-
serversNames: List of server names.
-
clusterNames: List of cluster names.
applications: List of valid application IDs to be assigned to the new deployment. If an application ID is not valid, an error message is returned with with the invalid ID.
applicationsNames: List of applications names.
The only restriction about the JSON request is that must be a name specified and at least one target (server, serverName, cluster or clusterName) and at least one application (applications, applicationsNames).
Example:
Request:
curl --basic -u admin:admin -d '{"name" : "Example" , "serversNames": [ "mule0" ], "applications": [ "local$75e22cd7-ce94-422a-9987-aa0403713e3e" ] }' --header 'Content-Type: application/json' http://localhost:8080/mmc/api/deployments
Response:
{
"applications": [
"local$1b8ee6e2-043c-403c-b404-af3aa74d6f92"
],
"clusterIds": [],
"clusterNames": [],
"href": "http://localhost:8080/mmc/api/deployments/local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"id": "local$97e3c184-09ed-423e-a5a5-9b94713a9e36",
"lastModified": "Mon, 5 Sep 2011 12:19:15 GMT-03:00",
"name": "Example",
"reconciled": false,
"servers": [
"local$3a99adfe-e942-4b52-b082-1a351de01420"
],
"status": "UNDEPLOYED"
}
The returned JSON contains the following fields:
-
name: Name of the deployment just created.
-
id: ID of the new deployment.
-
lastModified: Date when the deployment was created. The date format is:
%day, %dayNumber %month %year %hour:%minutes:%seconds %timeZone
. -
status: The current status of the deployment, which is
UNDEPLOYED
. -
href: Link to the current deployment screen in the management console.
-
servers: Lists the IDs for all the servers that are assigned to the deployment.
-
reconciled: Boolean value indicating the reconciled status of the deployment.
-
applications: Lists IDs for all the applications that are assigned to the deployment.
Add Applications/Servers
Adds applications or servers that are already in the repository to the deployment. The input values are specified using JSON. The resulting JSON contains the updated information about the deployment. Be aware that the resulting deployment has a different ID than the original deployment.
HTTP Method:
PUT
URL:
http://{mmc base}/api/deployments/{deploymentId}/add
JSON Input Fields:
-
name: (Optional) A new name for the deployment. If no name field is specified, the name of the deployment remains the same.
-
servers: List of server IDs to be assigned to the specified deployment. If the list contains a non-existing ID, an error message is returned with the invalid ID.
-
applications: List of application IDs to be assigned to the specified deployment. If the list contains a non-existing ID, an error message is returned with the invalid ID.
Here is an example of JSON input:
{ "applications": [ "appId1", "appId2" .. ], "servers": [ "serverId0", "serverId1" .. ], "name": "new example name" } |
Example:
Request:
curl --basic -u admin:admin -X PUT -d '{"applications": [ "local$51928b35-778b-4bcb-9190-340c2bb5fe59" ], "servers": [ "local$2796fd32-10f3-44ea-809b-f06ebbeeb2ad" ]}' --header 'Content-Type: application/json' http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'/add
Response:
The returned JSON contains the following fields:
-
name: Name of the updated deployment. If no name field was entered in the input JSON, the name remains the same as it was prior to the update.
-
id: ID of the updated deployment.
-
lastModified: Date when the deployment was updated. The date format is:
%day, %dayNumber %month %year %hour:%minutes:%seconds %timeZone
. -
status: The current status of the deployment.
-
href: Link to the current deployment screen in the management console.
-
servers: Lists the IDs for all the servers that are assigned to the deployment after the update.
-
reconciled: Boolean value indicating the reconciled status of the deployment.
-
applications: Lists IDs for all the applications that are assigned to the deployment after the update.
Remove Applications/Servers
Removes applications or servers from a deployment. The resulting JSON contains the information about the deployment after being modified. Be aware that the resulting deployment will have a different ID than it had before the operation.
HTTP Method:
DELETE
URL:
http://{mmc base}/api/deployments/{deploymentId}/remove
JSON Input Fields:
-
servers: List of server IDs that will be removed from the specified deployment. If the list contains a server ID that is not assigned to the deployment, that server ID will be ignored.
-
applications: List of application IDs that will be removed from the specified deployment. If the list contains an application ID that is not assigned to the deployment, the application ID will be ignored.
Here is an example of JSON input:
{ "applications": [ "appId1", "appId2" .. ], "servers": [ "serverId0", "serverId1" ..]} |
Example:
Request:
curl --basic -u admin:admin -X PUT -d '{"servers": ["local$4c9b276a-86f8-4553-b5d3-759a5b915891"], "applications":["local$ed4f9df8-a937-4bd4-8cc4-c32e78edb0cb"]}' --header 'Content-Type: application/json' http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'/remove
Response:
The returned JSON contains the following fields:
-
name: Name of the modified deployment.
-
id: New ID for the modified deployment.
-
lastModified: Date of the last modification of the deployment. The format is: "%day, %dayNumber %month %year %hour:%minutes:%seconds %timeZone".
-
status: The current status of the deployment.
-
href: Link to the current deployment screen in management console.
-
servers: List of all the servers IDs that are assigned to the deployment after removing the specified servers and applications.
-
reconcilied: Boolean for the reconciled status of the deployment.
-
applications: List of all the application IDs that are still assigned to the deployment after removing the specified servers and applications.
Deploy a Deployment
Redeploys one or more specified deployments.
HTTP Method:
POST
URL:
http://{mmc base}/api/deployments/{deploymentId}/deploy
Parameters:
-
id: The ID of the deployment (or deployments) to be deployed.
Example:
Request:
curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'/deploy
Response:
The specified deployments are redeployed.
Redeploy a Deployment
Redeploys one or more specified deployments.
HTTP Method:
POST
URL:
http://{mmc base}/api/deployments/{deploymentId}/redeploy
Parameters:
-
id: The ID of the deployment (or deployments) to be redeployed.
Example:
Request:
curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'/redeploy
Response:
The specified deployments are redeployed.
Undeploy a Deployment
Undeploys one or more specified deployments.
HTTP Method:
POST
URL:
Parameters:
-
id: The ID of the deployment (or deployments) to be undeployed.
Example:
Request:
curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'/undeploy
Response:
The specified deployments are undeployed.
Delete a Deployment
Deletes one or more specified deployments.
HTTP Method:
DELETE
URL:
http://{mmc base}/api/deployments/{deploymentId}
Parameters:
-
id: The ID of the deployment (or deployments) to be deleted.
Example:
Request:
curl --basic -u admin:admin -X DELETE http://localhost:8080/mmc/api/deployments/'local$97e3c184-09ed-423e-a5a5-9b94713a9e36'
Response:
The specified deployments are deleted.