If a request to deploy or import a product fails, you use the Request APIs to get the error and inspect the response to find the problem. After you update your request body, you can retry your request.

Prerequisites

Procedure

  1. Assign a variable to the request ID for the product deployment or import.
    $requestId = <failed_deployment_or_import_request_ID>
  2. Using the request ID of the failed deployment or import request, get the cause of the error.
    curl -X GET '$url/lcm/request/api/v2/requests/$requestId/error-causes' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' | jq "."
  3. Examine the response. Look for an exception message that explains the problem and read the message that suggests how to correct the problem.
      {
        "messageId": "LCMVROPSYSTEM25000",
        "message": "Confirm that the specified node is a member of vRealize Operations Manager cluster and the node is online and accessible",
        "eventId": "89d5567a-f299-4d57-bee0-a768da0fe94e",
        "retry": true,
        "exceptionMessage": "Failed to get the vROps version during deployment discovery. Retry after verifying master node address and admin password.",
        "exceptionStackTrace": "com.vmware.vrealize.lcm.plugin.common.vrops.exceptions.DiscoveryException: Failed to get the vROps version during deployment discovery. Retry after verifying master node address and admin password.\n\tat com.vmware.vrealize.lcm.plugin.core.vrops.tasks.DeploymentsDiscoveryTask.execute(DeploymentsDiscoveryTask.java:149)\n\tat com.vmware.vrealize.lcm.automata.core.TaskThread.run(TaskThread.java:45)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)\n\tat java.base/java.lang.Thread.run(Unknown Source)\n",
        "properties": {
          "vropsMasterNodeIP": "lcm-34-241.sqa.local",
          "vropsAdminPassword": "locker:password:92d4276c-57b6-4d66-b6ef-db552b722fa5:Common-pwd"
        }
  4. Verify the primary node address and correct the error in the input. Use the request ID to retry the request.
    curl -X PATCH \
      '$url/lcm/request/api/v2/requests/$requestId/retry' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' \
      -d '{
        "messageId": "LCMVROPSYSTEM25000",
        "message": "Confirm that the specified node is a member of vRealize Operations Manager cluster and the node is online and accessible",
        "eventId": "89d5567a-f299-4d57-bee0-a768da0fe94e",
        "retry": true,
        "exceptionMessage": "Failed to get the vROps version during deployment discovery. Retry after verifying master node address and admin password.",
        "exceptionStackTrace": "com.vmware.vrealize.lcm.plugin.common.vrops.exceptions.DiscoveryException: Failed to get the vROps version during deployment discovery. Retry after verifying master node address and admin password.\n\tat com.vmware.vrealize.lcm.plugin.core.vrops.tasks.DeploymentsDiscoveryTask.execute(DeploymentsDiscoveryTask.java:149)\n\tat com.vmware.vrealize.lcm.automata.core.TaskThread.run(TaskThread.java:45)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)\n\tat java.base/java.lang.Thread.run(Unknown Source)\n",
        "properties": {
          "vropsMasterNodeIP": "lcm-35-141.sqa.local",
          "vropsAdminPassword": "locker:password:92d4276c-57b6-4d66-b6ef-db552b722fa5:Common-pwd"
        }' | jq "."

Results

If the request fails again, repeat the steps to get the cause of the error again. The response includes a new eventId. After you correct the error and you are ready to resubmit the retry request, the request body must include the new eventId.

What to do next

Verify that your product has been deployed or imported.