Download and import a product patch when network access is restricted

If you do not have remote server access to vRealize Suite Lifecycle Manager, you can log in to the My VMware portal to manually download the patch files to a local drive. Then you use the API to import the patch to vRealize Suite Lifecycle Manager.

Prerequisites

Procedure

  1. Log in to the My VMware portal https://customerconnect.vmware.com/patch/ and list the patches for your product.
  2. Download the product patch and place it in the /data folder on your vRealize Suite Lifecycle Manager appliance.
  3. Import the patch into vRealize Suite Lifecycle Manager.
    • To import a patch binary file, use the following request.
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/patch-binaries/import' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '{
          "filepath": "/data/vrlcm-vra-8.1.0-8.1.0.9712.patch",
          "name": "vrlcm-vra-8.1.0.0-8.1.0.9712.patch"
        }' | jq "."
    • To import a patch OVA binary file, use the following request.
      Note: The patch OVA binary file is only available for vRealize Automation.
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/patch-ova-binaries/import' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '{
          "filepath": "/data/vrlcm-vra-8.1.0-8.1.0.9712.ovabundle",
          "name": "vrlcm-vra-8.1.0.0-8.1.0.9712.ovabundle"
        }' | 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 "."
    After completion, vRealize Suite Lifecycle Manager has converted the imported patch binary into a wrapped patch file.
    ...
    },
      "outputMap": {},
      "state": "COMPLETED",
      "executionId": "61274f3c-20cc-47a1-90ec-130635edb7d1",
    ...
  6. List the 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 wrapped patch. A snippet of the response shows the patch ID, product ID, and product version of the patch and "patchDownloadStatus": "DOWNLOAD", so the patch is ready to apply.
    ...    
          "patchInfo": {
          "name": "vRealize Automation, version 8.0.1.9712",
          "summary": "vRSLCM wrapped vRealize Automation, version 8.0.1.9712 Patch1",
          "description": "vRSLCM wrapped vRealize Automation, version 8.0.1.7526 Patch1",
          "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.9712",
        "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.9712.patch",
       "patchSize": 6073307467,
       "patchSha256sum": "9fed5f30f7c2967cdaac3b914a49b3aaec6520c4er422b90cd5703f9794e5",
       "patchRunningcounter": 1,
       "patchStatus": "ACTIVE",
       "patchDownloadStatus": "DOWNLOADED",
       "extract": false,
       "patchCounter": "1"
    ...

What to do next

Apply the product patch. See Apply a product patch.