Step 2: Run the Clone Operation

Once the checkpoint is confirmed, you can clone the current environment from a specified checkpoint by running the following steps:

When an environment is cloned, it replicates all the configuration and staged data used by the original environment. This process does not include data specific to the operational environment.

Also, clone is a long-term operation that will take up to 60 minutes and the target environment is unavailable during this period.

The schema is updated automatically as the best effort, but there is a chance it will fail when cloning across different major versions. In case of a failed clone, please submit a Service Request.
Environment specific operational data such as credentials and properties are not replicated. Data that is not replicated can be controlled through an external configuration. However, provisioning information is cloned.

Create a Clone

To create a clone of a specific checkpoint, submit the following work request:

HTTP Method

POST

Base URL

http://<app-deployment-name>/workRequest/create/clone

Content-Type

application/json

Request Body Example
{
"<name>": <checkpointValue>
}

In the body, replace name and checkpointValue with the name of the checkpoint that you have created and want to clone.

Response Example

The successful creation of the checkpoint returns a 200 OK response with the following response body:

  {
    "uuid": "<uuid>",
    "requestType": "clone",
    "status": "<statusType>",
    "requestInfo": "{<request_Information>}",
    "createdBy": "<user_name>",
    "createdAt": "2022-05-31T06:04:18.39486333Z",
    "updatedBy": null,
    "lastUpdatedAt": "2022-05-31T06:04:18.394870245Z",
    "confirm": "https://<app-deployment-name>/console/workRequest/confirm/{uuid}",
    "cancel": "https://<app-deployment-name>/console/workRequest/cancel/{uuid}"
}

Confirm the Clone Operation

To confirm the clone and save the configuration, submit the following GET request with the appropriate UUID:

HTTP Method

GET

Base URL

http://<app-deployment-name>/workRequest/confirm/{uuid}

Content-Type

application/json

Here, replace {uuid} with uuid value that returned by POST http://<app-deployment-name>/workRequest/create/clone.

Response Example
{
    "uuid": "<uuid>",
    "requestType": "clone",
    "status": "COMPLETED",
    "requestInfo": "{<request_Information>}",
    "createdBy": "<user_name>",
    "createdAt": "2022-05-17T06:02:14.908Z",
    "updatedBy": null,
    "lastUpdatedAt": "2022-05-17T06:16:54.409Z",
    "confirm": null,
    "cancel": null
}

You can also confirm the work request by clicking on the Confirm URL returned in the POST http://<app-deployment-name>/workRequest/create/clone response body. It will redirect you to the GET request body and then sends the request.

Verify the Status

To know the status of the clone, submit the following GET request with the appropriate UUID:

HTTP Method

GET

Base URL

http://<app-deployment-name>/workRequest/{uuid}

Content-Type

application/json

Here, replace {uuid} with uuid value that is returned by POST http://<app-deployment-name>/workRequest/create/clone.

Response Example
{
    "uuid": "<uuid>",
    "requestType": "<requestType>",
    "status": "COMPLETED",
    "requestInfo": "{<request_Information>}",
    "createdBy": "userName",
    "createdAt": "2022-05-17T06:02:14.908Z",
    "updatedBy": null,
    "lastUpdatedAt": "2022-05-17T06:16:54.409Z",
    "confirm": null,
    "cancel": null
}

The response contains the following types of status:

  • New: Returns if the checkpoint is newly created.

  • Confirmed: Returns if the checkpoint is in-progress state.

  • Completed: Returns if the replication of the environment is completed.

  • Canceled: Returns if a user cancels the operation.

  • Expired: Returns if created checkpoint is expired.

  • Error: Returns if an error occurs in the operation.

List Clone Operations

To retrieve the details of a previous clone operation, send the following request:

HTTP Method

GET

Base URL

http://<app-deployment-name>/clone/list

Content-Type

application/json

Response Example
[
    {
        "uuid": "<uuid>",
        "requestType": "<requestType>",
        "status": "<statusType>",
        "requestInfo": "{<request_Information>}",
        "createdBy": "<user_name>",
        "createdAt": "2022-04-25T06:41:56.422Z",
        "updatedBy": null,
        "lastUpdatedAt": "2022-05-12T11:25:50.718Z",
        "confirm": null,
        "cancel": null
    },
    {
        "uuid": "<uuid>",
        "requestType": "<requestType>",
        "status": "<statusType>",
        "requestInfo": "{<request_Information>}",
        "createdBy": "<user_name>",
        "createdAt": "2022-04-25T00:59:28.263Z",
        "updatedBy": null,
        "lastUpdatedAt": "2022-05-12T11:25:50.712Z",
        "confirm": null,
        "cancel": null
    },
    {
        "uuid": "<uuid>",
        "requestType": "<requestType>",
        "status": "<statusType>",
        "requestInfo": "{<request_Information>}",
        "createdBy": "<user_name>",
        "createdAt": "2022-04-26T08:09:09.376Z",
        "updatedBy": null,
        "lastUpdatedAt": "2022-04-26T08:14:44.992Z",
        "confirm": null,
        "cancel": null
    },
    {
        "uuid": "<uuid>",
        "requestType": "<requestType>",
        "status": "<statusType>",
        "requestInfo": "{<request_Information>}",
        "createdBy": "<user_name>",
        "createdAt": "2022-04-26T08:14:46.434Z",
        "updatedBy": null,
        "lastUpdatedAt": "2022-04-26T08:22:29.072Z",
        "confirm": null,
        "cancel": null
    },
]

Retrieve Specific Work Request

You can also retrieve the specific work request, by sending the following GET request with the appropriate UUID:

HTTP Method

GET

Base URL

http://<app-deployment-name>/workRequest/{uuid}

Content-Type

application/json

Response Example
{
  "createdAt": "2022-05-24T11:06:59.939Z",
  "createdBy": "<user_name",
  "lastUpdatedAt": "2022-05-24T11:06:59.939Z",
  "requestInfo": "{<request_Information>}",
  "requestType": "<request_type>",
  "status": <status_type>,
  "updatedBy": null,
  "uuid": "<uuid>",
  "cancel": "<url>",
  "confirm": "<url>"
}

List All Work Request

You can also retrieve all the work request, by sending the following GET request:

HTTP Method

GET

Base URL

http://<app-deployment-name>/workRequest/list

Content-Type

application/json

Response Example
[
    {
        "uuid": "<uuid>",
        "requestType": "<request_type>",
        "status": "COMPLETED",
        "requestInfo": "{<request_Information>}",
        "createdBy": "<user_name>",
        "createdAt": "2023-04-27T12:55:28.453285Z",
        "updatedBy": null,
        "lastUpdatedAt": "2023-04-27T13:00:47.29001Z",
        "confirm": null,
        "cancel": null
    },
    {
        "uuid": "<uuid>",
        "requestType": "<request_type>",
        "status": "ERRORED",
        "requestInfo": "{<request_Information>}"
        "createdBy": "<user_name>",
        "createdAt": "2023-05-01T18:23:57.40588Z",
        "updatedBy": null,
        "lastUpdatedAt": "2023-05-01T18:24:17.131344Z",
        "confirm": null,
        "cancel": null
    },