Apply a product patch

If you used vRealize Suite Lifecycle Manager to install a vRealize Suite product and that product releases a patch, you can use the vRealize Suite Lifecycle Manager API to apply the patch.

Using vRealize Suite Lifecycle Manager to apply product patches is convenient, because the patch is automatically applied to all product environments such as staging or production.

For most products, you can also apply the patch directly to the product outside of vRealize Suite Lifecycle Manager. However for vRealize Automation, you must use vRealize Suite Lifecycle Manager to apply the patched product binary that includes the OVA.

This procedure shows how to apply a patch for vRealize Automation.

Prerequisites

Procedure

  1. List patch binaries.
    curl -X GET \
      '$url/lcm/lcops/api/v2/settings/patch-binaries' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' | jq "."
    Examine the response to find the patch that you want and to verify that it has been downloaded. A snippet of the response shows the patch ID, product ID, and product version of the patch binary and "patchDownloadStatus": "DOWNLOAD".
    ...    
          "patchInfo": {
          "name": "vRealize Automation, version 8.0.1.7526",
          "summary": "vRSLCM wrapped vRealize Automation, version 8.0.1.7526 Patch4",
          "description": "vRSLCM wrapped vRealize Automation, version 8.0.1.7526 Patch4",
          "kbUrl": "https://kb.vmware.com/s/article/76805",
          "eulaFile": null,
          "category": "bugfix",
          "urgency": "critical",
          "releaseType": "patch",
          "releaseDate": 1590039695062,
          "additionaInfo": {}
        },
        "metadataId": "vrlcm-vra-8.0.1-8.0.1.7526",
        "metadataVersion": "1",
        "patchId": "c0a13037-3906-43b8-8eb3-7f73e76c3ea8",
        "patchBundleCreationDate": 1590039921132,
        "selfPatch": false,
        "product": {
          "productId": "vra",
          "productName": "vRealize Automation",
          "productVersion": "8.0.1",
          "supportedVersions": [
            "8.0.1"
          ],
       ...
       },
       "patchFileName": "vrlcm-vra-8.0.1.7526.patch",
       "patchSize": 6073307467,
       "patchSha256sum": "9fed5f30f7c2967cdaac3b914a49b3aaec6520c4er422b90cd5703f9794e5",
       "patchRunningcounter": 1,
       "patchStatus": "ACTIVE",
       "patchDownloadStatus": "DOWNLOAD",
       "extract": false,
       "patchCounter": "4"
    ...
  2. Assign the patch ID variable.
    patchId = "c0a13037-3906-43b8-8eb3-7f73e76c3ea8"
  3. Apply the product patch.
    curl -X POST \
      '$url/lcm/lcops/api/v2/environments/$environmentId/products/$productId/patches/$patchId' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' | jq "."
    The request triggers the API. The response shows the request ID.
    {
        "requestId":"1dac194a-6e1f-4772-a97d-af300ad5086c"
    }
  4. Assign the request ID variable.
    requestId = "1dac194a-6e1f-4772-a97d-af300ad5086c"
    
  5. Track your request.
    curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
    The request might take some time. After completion, the product is patched.
    ...
    },
      "outputMap": {},
      "state": "COMPLETED",
      "executionId": "60609f3c-20cc-47a1-90ec-130635edb7d1",
    ...