Before creating a vRealize Suite environment, you pre-validate the create environment request. You use the output from the pre-validation request to obtain a pre-validation report.

Prerequisites

Satisfy the following conditions before performing any tasks for this use case.
  • Use POST /lcm/api/v1/login to log in to vRealize Suite Lifecycle Manager.
  • Verify that you have a valid authentication token that matches your login credentials. See Request an Authentication Token.

Procedure

  1. Run a request to pre-validate your environment.
    The following input example includes a snippet for the vRealize Log Insight product and amended code sections for other products.
    curl -X POST "https://LCM-HostName/lcm/api/v1/action/prevalidate/create/environment" \
      -H "accept: application/json" \
      -H "x-xenon-auth-token: $token" \
      -H "content-type: application/json" \
      -d "{
        "requestId": "null",
        "environmentId": "",
        "infrastructure": {
          "sourceLink": "",
          "properties": {
            "bindPassword": "",
            "dataCenterName": "Datacenter-Name",
            "vcHostname": "vCenter Server Host name",
            "environmentId": "",
            "masterVidmAdminUserName": "",
            "netmask": "Network-Netmask",
            "environmentName": "vRealize Suite Large Advance",
            "clusterName": "VC-Datacenter-Name#VC-Cluster-Name",
            "enableTelemetry": "true",
            "dnsServers": "Network-DNS-Server-IPs",
            "diskFormat": "Thin",
            "baseDN": "",
            "vcPassword": "vCenter Server Password",
            "defaultPassword": "vRealize Suite Products password",
            "adminEmail": "cloud admin email address",
            "adName": "",
            "certificateChain": "----BEGIN CERTIFICATE---\nMIIG3zC\...\n---END CERTIFICATE----",
            "masterKeyPassphrase": "",
            "datastoreName": "VC Datastore Name",
            "masterVidmAdminPassword": "",
            "masterVidmEnabled": "",
            "uberAdmin": "",
            "license": "",
            "privateKey": "----BEGIN RSA PRIVATE KEY---\nMIIEpQIBAAKCA\...\n---END RSA PRIVATE KEY----",
            "bindDN": "",
            "vmNetwork": "Network-Portgroup",
            "masterPrivateKey": "----BEGIN RSA PRIVATE KEY---\nMIIEpQIBAAKCA\...\n---END RSA PRIVATE KEY----",
            "masterVidmHostName": "",
            "groupDN": "",
            "masterVidmCloudAdminGroup": "",
            "vcUsername": "vCenter Server Username",
            "domain": "",
            "acceptEULA": "true",
            "keyPassphrase": "",
            "gateway": "Network-Gateway",
            "searchpath": "",
            "masterCertificateChain": "----BEGIN CERTIFICATE---\nMIIG3zC\...\n---END CERTIFICATE----"
          }
        },
        "encoded": false,
        "products": [
          {
            "id": "vrli",
            "version": "4.5.0",
            "clusterVIP": [],
            "properties": {
              "vrliClusterVips": "vRLI-Cluster-IP#vRLI-Cluster-IP-Hostname"
            },
            "nodes": [
              {
                "sourceLink": "",
                "type": "vrli-master",
                "properties": {
                  "cluster": "VC-Datacenter-Name#VC-Cluster-Name",
                  "vrliLicenseKey": "",
                  "installerLocation": "/data/productlinks/vrli/4.5.0/install/vrli.ova",
                  "dns": "Network-DNS-Server-IPs",
                  "ipAddress": "vRLI-IP",
                  "vCenterHost": "vCenter Server Host name",
                  "storage": "VC Datastore Name",
                  "userName": "vCenter Server Username",
                  "masterVidmAdminPassword": "",
                  "uberAdmin": "",
                  "network": "Network-Portgroup",
                  "masterVidmEnabled": "",
                  "vrliAdminEmail": "",
                  "hostname": "vRLI-Hostname",
                  "password": "vCenter Server Password",
                  "masterVidmHostName": "",
                  "masterVidmAdminUserName": "",
                  "netmask": "Network-Netmask",
                  "domain": "",
                  "name": "S1-vrli-master",
                  "diskFormat": "Thin",
                  "vrliClusterVips": "vRLI-Cluster-IP#vRLI-Cluster-IP-Hostname",
                  "searchpath": "",
                  "gateway": "Network-Gateway"
                }
              },
              {
                "sourceLink": "",
                "type": "vrli-worker",
                "properties": {
                  "cluster": "VC-Datacenter-Name#VC-Cluster-Name",
                  "installerLocation": "/data/productlinks/vrli/4.5.0/install/vrli.ova",
                  "ipAddress": "",
                  "dns": "Network-DNS-Server-IPs",
                  "vCenterHost": "vCenter Server Host name",
                  "storage": "VC Datastore Name",
                  "userName": "vCenter Server Username",
                  "network": "Network-Portgroup",
                  "hostname": "",
                  "password": "vCenter Server Password",
                  "netmask": "Network-Netmask",
                  "domain": "",
                  "name": "S1-vrli-worker-01",
                  "diskFormat": "Thin",
                  "gateway": "Network-Gateway",
                  "searchpath": ""
                }
              },
              {
                "sourceLink": "",
                "type": "vrli-worker",
                "properties": {
                  "cluster": "VC-Datacenter-Name#VC-Cluster-Name",
                  "installerLocation": "/data/productlinks/vrli/4.5.0/install/vrli.ova",
                  "ipAddress": "",
                  "dns": "Network-DNS-Server-IPs",
                  "vCenterHost": "vCenter Server Host name",
                  "storage": "VC Datastore Name",
                  "userName": "vCenter Server Username",
                  "network": "Network-Portgroup",
                  "hostname": "",
                  "password": "vCenter Server Password",
                  "netmask": "Network-Netmask",
                  "domain": "",
                  "name": "S1-vrli-worker-02",
                  "diskFormat": "Thin",
                  "gateway": "Network-Gateway",
                  "searchpath": ""
                }
              }
            ]
          },
          {
            "id": "vra",
            "version": "7.3.0",
            "clusterVIP": [
              {
                "type": "vra",
                "hostname": "vRA-LoadBalancer-Hostname",
                "ipAddress": "vRA-LoadBalancer-IP"
              },
              {
                "type": "iaas-web",
                "hostname": "IaaS-Web-LoadBalancer-Hostname",
                "ipAddress": "IaaS-Web-LoadBalancer-IP"
              },
              {
                "type": "iaas-manager",
                "hostname": "IaaS-Manager-Service-LoadBalancer-Hostname",
                "ipAddress": "IaaS-Manager-Service-LoadBalancer-IP"
              }
            ],
            "properties": {
              "windowsPassword": "",
              "windowsUsername": ""
            },
            "nodes": [
            ...
            ]
          },
          {
            "id": "vrbc",
            "version": "7.3.0",
            "clusterVIP": [],
            "properties": {
              "currency": "USD - US Dollar"
            },
            "nodes": [
            ...
            ]
          },
          {
            "id": "vrops",
            "version": "6.6.1",
            "clusterVIP": [],
            "properties": {
              "ntpServerIP": "NTP Server IP"
            },
            "nodes": [
            ...
            ]
          }
        ]
      }" 
  2. Examine the response.
    • If there are issues in the Data validation or Infrastructure validation, "status": "FAILED" appears in the response. The following snippet is from an example response.
      {
        "rootValidations": [
          {
            "id": null,
            "checkName": "Data validation",
            "status": "FAILED",
            "recommendations": null,
            "resultDescription": null,
            "elementType": null,
            "childElements": [{
                "id": null,
                "checkName": "Input schema",
                "status": "PASSED",
                "recommendations": null,
                "resultDescription": null,
                "elementType": null,
                "childElements": [{
                    "id": null,
                    "checkName": "Input schema validation",
                    "status": "PASSED",
                    "recommendations": null,
                    "resultDescription": "Success. all the schema validations passed",
                    "elementType": null,
                    "childElements": null,
                    "checktype": "ERROR"
                }],
                "checktype": null
            },
            {
                "id": null,
                "checkName": "Input format",
                "status": "FAILED",
                "recommendations": null,
                "resultDescription": null,
                "elementType": null,
                "childElements": [{
                    "id": null,
                    "checkName": "Product property validation for vra",
                    "status": "FAILED",
                    "recommendations": ["Make sure that provided field values are valid"],
                    "resultDescription": "<timeSyncMode> is undefined or empty",
                    "elementType": null,
                    "childElements": null,
                    "checktype": "ERROR"
                },
                {
                    "id": null,               
                    "checkName": "vRBC currency check",
                    "status": "PASSED",
                    "recommendations": null,
                    "resultDescription": "vRBC currency validation"\
                    "elementType": null,
                    "childElements": null,
                    "checktype": "ERROR"
                },
                {
                    "id": null,				
                    "checkName": "Product property validation for vrbc",				
                    "status": "FAILED",				
                    "recommendations": ["Make sure that provided field values are valid"],				
                    "resultDescription": "<timeSyncMode> is undefined or empty",				
                    "elementType": null,				
                    "childElements": null,				
                    "checktype": "ERROR"			
                },			
                {				
                    "id": null,				
                    "checkName": "Product property validation for vrops",				
                    "status": "FAILED",				
                    "recommendations": ["Make sure that provided field values are valid"],				
                    "resultDescription": "<timeSyncMode> is undefined or empty",				
                    "elementType": null,				
                    "childElements": null,				
                    "checktype": "ERROR"			
                },			
                {				
                   "id": null,				
                   "checkName": "Product property validation for vrli",				
                   "status": "FAILED",				
                   "recommendations": ["Make sure that provided field values are valid"],				
                   "resultDescription": "<timeSyncMode> is undefined or empty",				
                   "elementType": null,				
                   "childElements": null,				
                   "checktype": "ERROR"			
                },			
                {				
                   "id": null,				
                   "checkName": "Product property validation for vrni",				
                   "status": "FAILED",				
                   "recommendations": ["Make sure that provided field values are valid"],				
                   "resultDescription": "<ntpServer> is undefined or empty",				
                   "elementType": null,				
                   "childElements": null,				
                   "checktype": "ERROR"
                }],
                "checktype": null
            }],
            "checktype": null
        }],
        "manualValidations": null,
        "overallStatus": false,
        "requestState": null,
        "lastUpdateTimeMillis": 0,
        "startTimeMillis": 0,
        "requestId": null
      }
    • If there are no issues with the validation checks, the response is short and the output includes:
      • id = Environment Pre-validate Request ID
      • status = Environment Pre-validate Status
  3. (Optional) Monitor the status of the request with the Environment Pre-validate Request ID.
    curl -X GET "https://LCM-HostName/lcm/api/v1/request/status/<Environment-Prevalidate-Request-ID>" -H "accept: application/json" -H "x-xenon-auth-token: $token"

What to do next

If there are issues with the validation checks, use the Environment Pre-validate Request ID to retrieve a pre-validation report of your environment. See Retrieve Pre-Validation Report for Environment Creation.