You can add an application using the CLI tool, REST API or the PPaaS Console as shown below:
- An application can only be multi-tenant, if all cartridges that correspond to the application are multi-tenant.
- Instead of adding the artifact repository details in the multi-tenant application definition, you need to pass the details in the payload when signing up to the application.
Adding an application via the CLI
Overview
CLI command | add-application |
Description | Add an application. |
Command format | add-application -p <JSON_FILE_PATH> The path to the JSON file that defines the application needs to be defined as the |
Parameter definition
Short option | Long option | Description | Required | Example value |
---|---|---|---|---|
-p | --resource-path | Folder path where the JSON file that defines the application policy is stored. | yes | <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples/applications/ wso2am-190-application/artifacts/wso2am-190-application.json |
Example
Add the application defined in the <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples/applications/wso2am-190-application/artifacts/wso2am-190-application.json
file.
add-application -p <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples/applications/wso2am-190-application/artifacts/wso2am-190-application.json
Sample output
Application added successfully: [application] wso2am-190-application
Adding an application via the REST API
Overview
Description | Add an application definition. |
Resource Path | /applications |
HTTP Method | POST |
Request/Response Format | application/json |
Command format | curl -X POST -H "Content-Type: application/json" -d @'<JSON_PAYLOAD>' -k -v -u <USERNAME>:<PASSWORD> https://<PRIVATE_PAAS_HOST>:<PRIVATE_PAAS_HTTPS_PORT>/api/applications
|
Example
Add the application defined in the <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples/applications/wso2am-190-application/artifacts/wso2am-190-application.json
file.
cd <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples curl -X POST -H "Content-Type: application/json" -d @'applications/wso2am-190-application/artifacts/wso2am-190-application.json' -k -v -u admin:admin https://localhost:9443/api/applications
Sample output
> POST /api/applications HTTP/1.1 > Host: localhost:9443 > Authorization: Basic YWRtaW46YWRtaW4= > User-Agent: curl/7.43.0 > Accept: */* > Content-Type: application/json > Content-Length: 3193 > Expect: 100-continue > < HTTP/1.1 100 Continue < HTTP/1.1 201 Created < Date: Thu, 08 Oct 2015 09:30:12 GMT < Location: https://localhost:9443/api/applications/wso2am-190-application < Content-Type: application/json < Transfer-Encoding: chunked < Server: WSO2 Carbon Server < {"status":"success","message":"Application added successfully: [application] wso2am-190-application"}
You will come across the following HTTP status codes while adding an application:
HTTP status code | 201, 400, 409, 500 See the descriptions of the HTTP status codes here. |
Location header URL |
|
Adding an application via the PPaaS Console
Follow the instructions below to add an application:
- Click Applications on the home page.
- Click ADD APPLICATION.
- Enter the required details to create the application.
To define application details. For property definitions, see Application Resource Definition.
- Click on the Application.
- Define the Application ID and Alias for the application.
Define the Startup Order based on the application you wish to create.
Click +Startup Order.
Click +alias to add dependencies to the startup order.
Example:cartridge.<CARTRIDGE_ALIAS>,group.<GROUP_ALIAS>
When creating an application, you need to use the same cartridge alias and group alias, which you used when creating a cartridge group
- Define the Scaling Dependents based on the application you wish to create.
- Click +Scaling Dependent
- Click +alias to add dependencies to the startup order.
Example:cartridge.<ALIAS>,group.<ALIAS>
- Add dependencies to the application.
- To add a cartridge to the application
- Click cartridges to expand the cartridge pane. This step can be skipped if the cartridge pane is already expanded.
- Optionally, if you wish to view the details of a cartridge, click on the respective cartridge in the cartridge pane. The cartridge details will appear in the information pane.
- Double click on the cartridge that you wish to add to the application for the selected cartridge to appear in the main pane.
- Drag the application connector, which appears underneath the application in the shape of a rectangle, and drop it on top of the cartridge connector, which appears in the shape of a half circle, on top of the cartridge.
- To add a cartridge group to the application.
- Click Group to expand the group template pane. This step can be skipped if the group pane is already expanded.
- Optionally, if you wish to view the details of a cartridge group, click once on the respective cartridge group in the group pane. The topology view of the group will appear in the information pane.
- Double click on the cartridge group that you wish to add to the application for the selected cartridge group to appear in the main pane.
- Drag the application connector, which appears underneath the application in the shape of a rectangle, and drop it on top of the cartridge group connector, which appears in the shape of a half circle, on top of the cartridge group.
- Optionally, if you wish to delete a dependency.
- Right click on the respective cartridge or cartridge group and click Delete.
- Click Yes to confirm the deleting process.
- Right click on the respective cartridge or cartridge group and click Delete.
If you wish to reposition the nodes in a more organized manner, click reposition nodes.
- To add a cartridge to the application
- Define component details.
- To define cartridge details.
- Click on the respective cartridge, which is added to the application on the main pane, to expand the corresponding Components pane. This step can be skipped if the components pane is already expanded.
Enter the required details. Make sure to give a unique Alias for each cartridge added.
Click Update.
The fields under artifactRepository must be updated when a cartridge belonging to the framework category is added (e.g., PHP cartridge and Tomcat cartridge).
- To define cartridge group details.
- Click on the respective cartridge group, which is added to the application on the main pane, to expand the Components pane. This step can be skipped if the components pane is already expanded.
- Enter the required details. Make sure to give a unique Alias for each cartridge group added.
- Click Update.
- Optionally, if you wish to edit a dependency.
- Right click on the respective cartridge or group and click Edit.
- Edit the required details in the component pane and click Update.
- Right click on the respective cartridge or group and click Edit.
- To define cartridge details.
- Click SAVE to deploy the application.
Sample application definition JSON
{ "applicationId": "wso2am-190-application", "multiTenant": true, "alias": "wso2am-190-application", "components": { "groups": [ { "name": "keymanager-gw-manager-gw-worker", "alias": "keymanager-gw-manager-gw-worker", "groupMinInstances": 1, "groupMaxInstances": 1, "cartridges": [ { "type": "wso2am-190-gw-manager", "cartridgeMin": 1, "cartridgeMax": 1, "subscribableInfo": { "alias": "gateway-manager", "deploymentPolicy": "deployment-policy-1", "autoscalingPolicy": "autoscaling-policy-1" } }, { "type": "wso2am-190-gw-worker", "cartridgeMin": 1, "cartridgeMax": 1, "subscribableInfo": { "alias": "gateway-worker", "deploymentPolicy": "deployment-policy-1", "autoscalingPolicy": "autoscaling-policy-1" } }, { "type": "wso2am-190-km", "cartridgeMin": 1, "cartridgeMax": 1, "subscribableInfo": { "alias": "key-manager", "deploymentPolicy": "deployment-policy-1", "autoscalingPolicy": "autoscaling-policy-1" } } ] }, { "name": "pub-store-grp", "alias": "pub-store-grp", "groupMinInstances": 1, "groupMaxInstances": 1, "cartridges": [ { "type": "wso2am-190-pub", "cartridgeMin": 1, "cartridgeMax": 1, "subscribableInfo": { "alias": "publisher", "deploymentPolicy": "deployment-policy-1", "autoscalingPolicy": "autoscaling-policy-1" } }, { "type": "wso2am-190-store", "cartridgeMin": 1, "cartridgeMax": 1, "subscribableInfo": { "alias": "store", "deploymentPolicy": "deployment-policy-1", "autoscalingPolicy": "autoscaling-policy-1" } } ] } ], "dependencies": { "startupOrders": [ { "aliases": [ "group.keymanager-gw-manager-gw-worker", "group.pub-store-grp" ] } ], "terminationBehaviour": "terminate-none" } } }