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
- 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": [ ... ] } ] }"
- 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
- (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.