This documentation is for WSO2 Private PaaS 4.1.0. View documentation for the latest release.
Page Comparison - Adding an Application (v.14 vs v.15) - WSO2 Private PaaS 4.1.0 - WSO2 Documentation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

You can add an application using the CLI tool, REST API or the PPaaS Console as shown below: 

Note
  • An application can only be multi-tenant, if all cartridges that correspond to the application are multi-tenant.
  • The artifact repository details are entered in a multi-tenant application definition. Instead, these details need to be passed in the payload at the time of application sign up.
Localtab Group
Localtab
activetrue
titleCLI

Adding an application via the CLI

Overview
CLI command
add-application
DescriptionAdd an application.
Command format
Code Block
add-application -p <JSON_FILE_PATH>
Info

The path to the JSON file that defines the application needs to be defined as the <JSON_FILE_PATH> value.

Parameter definition
Short optionLong optionDescriptionRequiredExample value
-p
--resource-pathFolder 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. 

Code Block
add-application -p <PRIVATE_PAAS_CARTRIDGES>/wso2am/1.9.0/samples/applications/wso2am-190-application/artifacts/wso2am-190-application.json
Sample output
Code Block
Application added successfully: [application] wso2am-190-application
Localtab
titleREST API

Adding an application via the REST API

Overview
DescriptionAdd an application definition.
Resource Path/applications
HTTP MethodPOST
Request/Response Formatapplication/json
Command format
Code Block
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
Info
  • The path to the JSON file that defines the application needs to be defined as the <JSON_PAYLOAD> value.
  • By default, <USERNAME>:<PASSWORD> is admin:admin.
  • By default, <PRIVATE_PAAS_HOST> is localhost. However, if you are using a public IP, the respective IP address or domain needs to be specified.
  • By default, <PRIVATE_PAAS_HTTPS_PORT> has been set to 9443. However, if the port offset has been incremented by n, the default port value needs to be incremented by n.
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. 

Code Block
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
Code Block
> 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

https://<PRIVATE_PAAS_HOST>:<PRIVATE_PAAS_HTTPS_PORT>/api/applications/<APPLICATION_ID>

Localtab
titlePPaaS Console

Adding an application via the PPaaS Console

Follow the instructions below to add an application:

  1. Click Applications on the home page.
  2. Click ADD APPLICATION. 
  3. Enter the required details to create the application.

    1. To define application details. For property definitions, see Application Resource Definition.

      1. Click on the Application.
      2. Define the Application ID and Alias for the application.
      3. Define the Startup Order based on the application you wish to create.

        1. Click  +Startup Order.

        2. Click +alias to add dependencies to the startup order.
          Example: cartridge.<CARTRIDGE_ALIAS>,group.<GROUP_ALIAS>

          Info
           When creating an application, you need to use the same cartridge alias and group alias, which you used when creating a cartridge group
      4. Define the Scaling Dependents based on the application you wish to create.
        1. Click  +Scaling Dependent
        2. Click +alias to add dependencies to the startup order.
          Example: cartridge.<ALIAS>,group.<ALIAS>
  4. Add dependencies to the application. 
    1. To add a cartridge to the application
      1. Click cartridges to expand the cartridge pane. This step can be skipped if the cartridge pane is already expanded.
      2. 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.
      3. Double click on the cartridge that you wish to add to the application for the selected cartridge to appear in the main pane.
      4. 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.
    2. To add a cartridge group to the application.
      1. Click Group to expand the group template pane. This step can be skipped if the group pane is already expanded.
      2. 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.
      3. 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.
      4. 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.
    3. Optionally, if you wish to delete a dependency.
      1. Right click on the respective cartridge or cartridge group and click Delete.
      2. Click Yes to confirm the deleting process.
    Repeat steps (a) and (b) based on the application that you wish to create. The overall topology view of the application appears in the main pane.
    If you wish to reposition the nodes in a more organized manner, click reposition nodes.
  5. Define component details.
    1. To define cartridge details.

      1. 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.
      2. Enter the required details. Make sure to give a unique Alias for each cartridge added.

      3. Click Update.

      Note

      The fields under artifactRepository must be updated when a cartridge belonging to the framework category is added (e.g., PHP cartridge and Tomcat cartridge).

    2. To define cartridge group details.
      1. 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.
      2. Enter the required details.  Make sure to give a unique Alias for each cartridge group added.
      3. Click Update.
    3. Optionally, if you wish to edit a dependency.
      1. Right click on the respective cartridge or group and click Edit
      2. Edit the required details in the component pane and click Update.
    Repeat steps (a) and (b) based on the application that you wish to define. The overall topology view of the application will appear in the main pane.
  6. Click SAVE to deploy the application.

 

 

Excerpt

Sample application definition JSON

  • An application can only be multi-tenant, if all cartridges that correspond to the application are multi-tenant.
  • The artifact repository details should not be entered in a multi-tenant application definition. Instead, these details need to be passed in the payload at the time of application sign up.
    1. to deploy the application.
    Panel

    The following are sample configurations that can be used in a JSON to define an application:

    Note

     

    ...

     

    Excerpt

    Sample application definition JSON

    Panel

    The following are sample configurations that can be used in a JSON to define an application:

    Code Block
    {
      "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"
        }
      }
    }

    ...