Recently, when I was preparing my script, I wanted to learn about the low-level vRealize Automation deployment process. That’s why I decided to delve into the logs, into the code, and spend a couple of nights preparing an article on this topic for you. I had a lot of fun creating and reviewing it. And in fact, I’ll tell you honestly that this is just a snippet of a large project I’m working on. I hope that around the holidays I will be able to say something more about it and you will smile as much as I do when I think about it
I think that’s enough teaser about the future project and now let’s get to the point. The deployment process has 12 steps and I will walk through the step-by-step process of deploying the tool, configuring it, and using it to automate the deployment of a sample application. By the end of this article, you will have a solid understanding of what vRealize Automation Standard deployment looks like at a very low level, and how it can help your organization achieve greater efficiency and productivity. the entire article will present the payload for each step, the tasks that are performed, a short description of the classes, and a short description of the whole thing. So, without further ado, let’s dive in!
Stage 1: Check Product Prerequisites
PAYLOAD
{
"symbolicName" : "createenvironmentprerequisitecheck",
"displayName" : null,
"productVersion" : null,
"priority" : 0,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "createenvironmentprerequisitecheck",
"type" : null,
"componentVersion" : null,
"properties" : {
"__isInstallerRequest" : "true",
"isImport" : null,
"productVersion" : "8.11.1",
"productProperties" : "{\"license\":\"XXXX-XXXX-XXXX-XXXX\",\"nodeSize\":\"medium\",\"vraK8ClusterCidr\":\"\",\"vraK8ServiceCidr\":\"\",\"fipsMode\":\"false\",\"enableTelemetry\":\"false\"}",
"productId" : "vra",
"isVcfUser" : "false",
"isVcfEnabledEnv" : "false"
}
},
"priority" : 0
} ]
}
STEPS
{
"symbolicName": "createenvironmentprerequisitecheck",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Check Product Prerequisites",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask",
"properties": {},
"uiProperties": {
"displayText": "Start Prerequisites Check",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::node::c.v.v.l.d.c.t.StartCheckPrerequisitesTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckImportPrerequisitesTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckImportPrerequisitesTask",
"properties": {},
"uiProperties": {
"displayText": "Check Import Prerequisites",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::node::c.v.v.l.d.c.t.CheckImportPrerequisitesTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask",
"properties": {},
"uiProperties": {
"displayText": "Check Environment Prerequisites",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::node::c.v.v.l.d.c.t.CheckEnvironmentPrerequisitesTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Finish Prerequisites Check",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "onProceedToImportPrerequisites",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask",
"destination": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckImportPrerequisitesTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Proceed to Import Prerequisites Check",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::edge::name::onProceedToImportPrerequisites::source::c.v.v.l.d.c.t.StartCheckPrerequisitesTask"
}
},
{
"name": "onSkipImportPrerequisites",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask",
"destination": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Skip Import Prerequisites Check",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::edge::name::onSkipImportPrerequisites::source::c.v.v.l.d.c.t.StartCheckPrerequisitesTask"
}
},
{
"name": "onImportPrerequisitesCheckSuccess",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckImportPrerequisitesTask",
"destination": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Import Prerequisites Check Complete",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::edge::name::onImportPrerequisitesCheckSuccess::source::c.v.v.l.d.c.t.CheckImportPrerequisitesTask"
}
},
{
"name": "onEnvPrerequisitesCheckSuccess",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Environment Prerequisites Check Complete",
"displayKey": "vmf::sm::createenvironmentprerequisitecheck::edge::name::onEnvPrerequisitesCheckSuccess::source::c.v.v.l.d.c.t.CheckEnvironmentPrerequisitesTask"
}
}
]
}
TASKS FROM STEPS
- Start Prerequisites Check com.vmware.vrealize.lcm.drivers.commonplugin.task.StartCheckPrerequisitesTask
The method attempts to retrieve the configuration properties for the product and components using the “componentSpec” and “productSpec” variables.
If an exception occurs during the execution of the method, it is caught and logged using the logger, and then a failed event is injected with a message code of “LCMCOMMON10000”. (“Exception occurred while starting checking prerequisites”)
- Check Import Prerequisites com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckImportPrerequisitesTask
the method checks whether a skip flag is present in the product properties, or if the product is “vrni”, “vidm”, or “vrbc”. If any of these conditions are true, the method logs an informational message and injects an event called “onImportPrerequisitesCheckSuccess”.
If the product is not excluded and is a VCF environment, the method retrieves information about all existing environments and checks whether any of them contain an instance of the same product. If an instance is found, the method calls the “validateUniqueProductInstance” method to determine whether it is a unique instance, and throws an exception if it is not.
Finally, the method injects an event called “onImportPrerequisitesCheckSuccess”.
- Check Environment Prerequisites com.vmware.vrealize.lcm.drivers.commonplugin.task.CheckEnvironmentPrerequisitesTask
The class has two main methods: execute
and checkVra8EnvPrerequisites
. The execute
the method starts by logging the task execution, then checks whether the componentSpec
variable is null, and if so, initializes it to the first component in the productSpec
. Then, it retrieves the product ID and product properties from the componentSpec
, and based on the product ID, it calls the corresponding method to check the prerequisites. Finally, it injects an event to signal the success of the task or, in case of an exception, an event with a corresponding error message.
The checkVra8EnvPrerequisites
method is used to check environment prerequisites for vRealize Automation 8.0 and above. It starts by retrieving the properties productProperties maps from the componentSpec. Then, it retrieves the VMware Identity Manager (VIDM) environment and product information by calling the getEnvironmentByName and JsonUtil.jsonStringToObject methods, respectively. After that, it checks the VIDM version against the required VIDM version for the given vRealize Automation version and throws a VidmRequiredForVraException exception if the VIDM version is not compatible. Finally, it checks whether the vRealize Automation version is compatible with the current environment, and throws an VrbAuthTypeVraVersionInvalidException
exception if it is not.
SHORT DESCRIPTION
JSON code describes a state machine for checking prerequisites for creating a vRealize Automation environment. The state machine consists of four nodes and four edges that represent the actions and conditions needed to transition from one state to another.
The start state of the state machine is “StartCheckPrerequisitesTask”, which is used to initiate the prerequisite check process. From there, the state machine transitions to the “CheckImportPrerequisitesTask” state if the “onProceedToImportPrerequisites” edge is triggered, which represents a request to check the import prerequisites. Alternatively, if the “onSkipImportPrerequisites” edge is triggered, the state machine skips the import prerequisite check and transitions directly to the “CheckEnvironmentPrerequisitesTask” state.
After the import prerequisites are checked, the state machine transitions to the “CheckEnvironmentPrerequisitesTask” state. If this check is successful, the state machine transitions to the final state, which is represented by the “FinalTask” node. If any error occurs during the prerequisite check process, the state machine transitions to an error state, which is not defined in this JSON code.
Stage 2: Check Product Prerequisites
PAYLOAD
{
"symbolicName" : "vravainstall",
"displayName" : null,
"productVersion" : null,
"priority" : 1,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravainstall",
"type" : null,
"componentVersion" : null,
"properties" : {
"cluster" : "Cluster",
"isFreshInstall" : "true",
"useContentRepo" : "true",
"certificateVmid" : "",
"certificateAlias" : "",
"__version" : "8.11.1",
"enableTelemetry" : "false",
"vraK8ServiceCidr" : "",
"rootPassword" : "JXJXJXJX",
"__vravaDeploymentOptions" : null,
"ip" : "192.168.100.112",
"dns" : "192.168.100.101",
"version" : "8.11.1",
"masterVidmEnabled" : "false",
"contentLibraryItemId" : null,
"domain" : "vworld.domain.local",
"folderName" : "group-v2001(OnPrem)",
"isVcfEnabledEnv" : "false",
"vrniLicense" : "",
"cafeHostNamePrimary" : "vra.vworld.domain.local",
"hostName" : "vra.vworld.domain.local",
"cafeRootPasswordPrimary" : "JXJXJXJX",
"installerLocation" : "http://localhost:8080/repo/productBinariesRepo/vra/8.11.1/install/vra.ova",
"regionName" : "default",
"diskMode" : "thin",
"vCenterHost" : "vcsa.vworld.domain.local",
"storage" : "Data-01",
"__authenticationInfo" : null,
"network" : "VM Network",
"nodeSize" : "medium",
"dataCenterVmid" : "5f1b084d-c93e-4ee1-b322-58434033aa67",
"netmask" : "255.255.255.0",
"zoneName" : "default",
"vcPassword" : "JXJXJXJX",
"defaultPassword" : "JXJXJXJX",
"resourcePool" : "",
"__isCavaDeployment" : "false",
"vmName" : "vra",
"certificateChain" : "",
"__productId" : "vra",
"ntp" : "",
"vCenterName" : "Default-VC",
"vraK8ClusterCidr" : "",
"__isInstallerRequest" : "true",
"privateKey" : "JXJXJXJX",
"vcUsername" : "Administrator@vsphere.local",
"fipsMode" : "false",
"timeSyncMode" : null,
"acceptEULA" : "true",
"isVcfUser" : "false",
"gateway" : "192.168.100.4",
"searchpath" : "vworld.domain.local"
}
},
"priority" : 1
} ]
}
STEPS
{
"symbolicName": "vravainstall",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaDeploymentTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Install vRealize Automation",
"displayKey": "vmf::sm::vravainstall"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaDeploymentTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaDeploymentTask",
"properties": {},
"uiProperties": {
"displayText": "Start vRealize Automation Deployment",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.StartVraVaDeploymentTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaScaleoutOvaValidationTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaScaleoutOvaValidationTask",
"properties": {},
"uiProperties": {
"displayText": "Install validation for vRealize Automation",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.VraVaScaleoutOvaValidationTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"properties": {},
"uiProperties": {
"displayText": "Kubernetes Internal network range (CIDR) Validation",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.VraVaKubernetesCidrValidationTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask",
"properties": {},
"uiProperties": {
"displayText": "Validate deploy inputs",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.ValidateDeployInputsTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"properties": {},
"uiProperties": {
"displayText": "Deploy OVF using Content Library Item",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.c.v.c.DeployOvfTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"properties": {},
"uiProperties": {
"displayText": "Deploy OVF",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.DeployOvfTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask",
"properties": {},
"uiProperties": {
"displayText": "Upgrade virtual machine compatibility",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.UpgradeVMCompatibilityTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"properties": {},
"uiProperties": {
"displayText": "Power on virtual machine",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.PowerOnVmTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check Guest tools status",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.GuestToolsStatusCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check Hostname/IP status",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.HostnameIpStatusCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check for First boot completion of vRealize Automation",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.c.v.t.VraVaPostInstallCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravainstall::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnDeploymentInitialized",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaDeploymentTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaScaleoutOvaValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Deployment initiated",
"displayKey": "vmf::sm::vravainstall::edge::name::OnDeploymentInitialized::source::c.v.v.l.p.c.v.t.StartVraVaDeploymentTask"
}
},
{
"name": "OnSuccessfullyUpdatingVraInstallerLocation",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaScaleoutOvaValidationTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Updating vRA installer location success",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfullyUpdatingVraInstallerLocation::source::c.v.v.l.p.c.v.t.VraVaScaleoutOvaValidationTask"
}
},
{
"name": "OnVraVaKubernetesCidrValidationSuccess",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Kubernetes Internal network range (CIDR) Validation Success",
"displayKey": "vmf::sm::vravainstall::edge::name::OnVraVaKubernetesCidrValidationSuccess::source::c.v.v.l.p.c.v.t.VraVaKubernetesCidrValidationTask"
}
},
{
"name": "OnSuccessfullyValidatingInputs",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Validating Deploy inputs Success",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfullyValidatingInputs::source::c.v.v.l.p.c.v.t.ValidateDeployInputsTask"
}
},
{
"name": "OnSelectingContentLibraryItemDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask",
"destination": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Content library item option selected for deployment",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSelectingContentLibraryItemDeployment::source::c.v.v.l.p.c.v.t.ValidateDeployInputsTask"
}
},
{
"name": "OnChoosingForUpgradingVmCompatibility",
"source": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Option for Upgrade virtual machine compatibility chosen",
"displayKey": "vmf::sm::vravainstall::edge::name::OnChoosingForUpgradingVmCompatibility::source::c.v.v.l.c.v.c.DeployOvfTask"
}
},
{
"name": "OnSuccessfulOvfDeployment",
"source": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Deployment of OVF success",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfulOvfDeployment::source::c.v.v.l.c.v.c.DeployOvfTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.c.v.c.DeployOvfTask"
}
},
{
"name": "OnChoosingForUpgradingVmCompatibility",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Option for Upgrade virtual machine compatibility chosen",
"displayKey": "vmf::sm::vravainstall::edge::name::OnChoosingForUpgradingVmCompatibility::source::c.v.v.l.p.c.v.t.DeployOvfTask"
}
},
{
"name": "OnSuccessfulOvfDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Deployment of OVF success",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfulOvfDeployment::source::c.v.v.l.p.c.v.t.DeployOvfTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.p.c.v.t.DeployOvfTask"
}
},
{
"name": "OnUpgradeVmCompatibilityTaskCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Upgrading virtual machine compatibility complete",
"displayKey": "vmf::sm::vravainstall::edge::name::OnUpgradeVmCompatibilityTaskCompletion::source::c.v.v.l.p.c.v.t.UpgradeVMCompatibilityTask"
}
},
{
"name": "OnSuccessFullyPoweringOnVm",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Powering on virtual machine complete",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessFullyPoweringOnVm::source::c.v.v.l.p.c.v.t.PowerOnVmTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.p.c.v.t.GuestToolsStatusCheckTask"
}
},
{
"name": "OnSuccessfullyCheckingGuestToolsStatus",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "On Successfully Checking Guest Tools Status",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfullyCheckingGuestToolsStatus::source::c.v.v.l.p.c.v.t.GuestToolsStatusCheckTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.p.c.v.t.HostnameIpStatusCheckTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.p.c.v.t.PowerOnVmTask"
}
},
{
"name": "OnSuccessfulIpHostnameStatuscheck",
"source": "com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Checking Hostname/IP status complete",
"displayKey": "vmf::sm::vravainstall::edge::name::OnSuccessfulIpHostnameStatuscheck::source::c.v.v.l.p.c.v.t.HostnameIpStatusCheckTask"
}
},
{
"name": "RetriggerWholeDeployment",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate inputs and Re-trigger the deployment of OVF",
"displayKey": "vmf::sm::vravainstall::edge::name::RetriggerWholeDeployment::source::c.v.v.l.p.c.v.t.VraVaPostInstallCheckTask"
}
},
{
"name": "OnDeployVraVaTaskCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Deploying vRealize Automation complete",
"displayKey": "vmf::sm::vravainstall::edge::name::OnDeployVraVaTaskCompletion::source::c.v.v.l.p.c.v.t.VraVaPostInstallCheckTask"
}
}
]
}
TASKS FROM STEPS
- Start vRealize Automation Deployment com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaDeploymentTask
This class initializes the deployment of a vRealize Automation virtual appliance (VA) by setting the component specification and triggering an event to indicate the initialization of the deployment.
- Install validation for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaScaleoutOvaValidationTask
that class is responsible for validating and populating a new installer location for a vRealize Automation (vRA) virtual appliance (VA). The method retrieves some configuration properties, such as the location of a knowledge base article and whether or not to skip validation. It then checks whether validation should be skipped or not, and if it should not be skipped, it proceeds to validate the OVA file by making use of SSH to connect to the virtual appliance and check its details. If the validation is successful, the method sets some properties on an ScaleOutValidationResult
object and triggers an event to indicate that the new installer location has been successfully updated. If an error occurs during the validation, the method sets an error message on the ScaleOutValidationResult
object and triggers an event to indicate that the validation failed. Finally, the method adds the ScaleOutValidationResult
object to the list of results for this operation.
- Kubernetes Internal network range (CIDR) Validation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaKubernetesCidrValidationTask
This code represents a task in vRealize Automation (vRA) that validates the Cluster CIDR and Service CIDR for a vRA VA Cluster. It first retrieves the values of the cluster CIDR and service CIDR from the component specification of the vRA VA Cluster. Then, it checks whether the vRA version is above 8.2.0, and if so, it skips the CIDR validation. If the CIDR validation is not skipped, it checks whether both the cluster CIDR and service CIDR are provided. If not, it throws an exception. Next, it checks if the validation is to be skipped based on a configuration parameter. If it is, the task ends successfully. If the validation is not skipped, it validates that the host address count for both the service CIDR and cluster CIDR is greater than a specified value. If it is not, it throws an exception. It also validates that the service CIDR and cluster CIDR are not of the same subnet or of subnet one another. If they are, it throws an exception.
- Validate deploy inputs com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.ValidateDeployInputsTask
The code first validates the input parameters provided by the user and checks if the required parameters are present. Then, it tries to connect to the vCenter Server using the given credentials and validates the inputs such as datastore, network, cluster, etc. If all inputs are valid, the code reads the OVF/OVA file and deploys the virtual appliance.
The code uses various exceptions to handle errors such as InvalidLogin, InvalidLocale, EsxHostNotProvidedException, EsxHostNotFoundException, InvalidNetworkDetails, ClusterNotFoundException, DataStoreNotProvidedException, DataStoreNotFoundException, NetworkNotProvidedException, InvalidMoidException, InvalidEntityTypeException, InvalidProperty, and ResourcePoolNotFoundException.
- Deploy OVF using Content Library Item com.vmware.vrealize.lcm.core.vsphere65Plus.contentlibrary.DeployOvfTask
This is a code that is used for deploying an OVF package in a vSphere environment. It contains several methods for handling exceptions that may occur during the deployment process. The setRetryAndDefaultValues() method sets the name of the virtual machine to be deployed. The getVmidFromResponse() method retrieves the ID of the deployed virtual machine from the response of the deployment process. The getUpdatedLibraryItemId() method retrieves the updated content library ID for the deployed virtual machine. The queryOvfPackageAndGetDeploymentSpec() method queries the OVF package and retrieves the deployment specification for the virtual machine. The prepareDeploymentSpec() method prepares the deployment specification for the virtual machine. The getPropKey() method retrieves the property key from the property specification. The retry() method retries the deployment if certain errors occur during the deployment process..
- Deploy OVF
com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.DeployOvfTask
The code is a class that handles the deployment of virtual appliances in VMware vSphere. It handles the deployment of OVF packages, which are essentially a collection of files that describe a virtual machine and its associated resources. The class uses the vSphere API to interact with the vSphere server and perform various operations such as creating datastores, uploading files, creating VMs, and so on. It also handles various error scenarios that may arise during the deployment process and logs error messages accordingly. The code also injects various events to indicate the progress of the deployment process.
- Upgrade virtual machine compatibility com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.UpgradeVMCompatibilityTask
This method performs an operation to upgrade the virtual machine compatibility in the vSphere environment. The method attempts to upgrade the virtual machine’s compatibility to the latest version available in the environment using the VsphereGuestOSOperation.upgradeVMCompatibility()
method. If the operation is successful, the method logs a message indicating success, otherwise, it logs a message indicating failure.
- Power on virtual machine com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.PowerOnVmTask
The specific code segment is implementing a task for powering on a virtual machine. The task involves connecting to vCenter, retrieving the virtual machine object, and attempting to power it on. If the operation fails, the task will retry a specified number of times with a specified wait time before ultimately failing and raising an error event.
The code also handles a number of exceptions that may arise during the task execution, including ConnectionException, InvalidLocale, InvalidLogin, TaskInProgress, InvalidState, InsufficientResourcesFault, VmConfigFault, FileFault, InvalidMoidException, and InvalidEntityTypeException.
- Check Guest tools status com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.GuestToolsStatusCheckTask
the main method executes the logic of the class. It starts by initializing some variables, getting the vCenter details, and connecting to the vCenter. It then checks the guest tools status of a virtual machine and retries a specified number of times with a specified wait time if the tools are not running. If the retry attempts are exhausted, an error event is injected.
- Check Hostname/IP status com.vmware.vrealize.lcm.plugin.core.vsphere.tasks.HostnameIpStatusCheckTask
the method begins by logging a message and setting an exception message. It then retrieves configuration properties and initializes a connection to vSphere. If the connection is successful, the method uses the CoreUtility class to check the hostname and IP status of the virtual machine with a retry count and wait time. If the check fails, the method logs an error message and injects a failed event with the relevant error code and message.
If the check succeeds, the method retrieves information about the virtual machine, including its status, version, and host system. It also calls the updateScaleUpProperties() method to update scaling properties for the virtual machine. Finally, the method injects a successful event.
The updateScaleUpProperties() method retrieves the IP address and product ID of the virtual machine and uses the CoreUtility class to retrieve information about the virtual machine. It then updates the scaling properties of the virtual machine and adds the updated properties to the results.
- Check for First boot completion of vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPostInstallCheckTask
The class performs the following tasks: Checks if the componentSpec
is null, if so, it sets it to the first component of productSpec
. Determines if the virtual appliance should be powered on or not based on the componentSpec
. Retrieves the vRA virtual appliance parameters, such as hostName
, rootPassword
, and ntp
. Performs a check to verify that the vRA virtual appliance has completed its first boot. If it fails, it adds the necessary parameters for retrying the deployment and injects a failed event with a specific error code. If the ntp
parameter is not blank and the vRA version is greater than or equal to 8.2.0, it updates the enhanced request with the new ntp
value. Injects an “OnDeployVraVaTaskCompletion” event to signal the completion of the deployment.
SHORT DESCRIPTION
The JSON file defines a state machine for the installation of vRealize Automation (vRA) using the VMware vSphere platform. A state machine is a way to define the behavior of a system by specifying a set of states and the events that cause the system to transition from one state to another.
The state machine defined in this file consists of a set of events, each of which is associated with a source state and a destination state. When an event occurs, the system transitions from the source state to the destination state. Each event also has a set of properties that can be used to pass data between the different states.
The states in this state machine represent different phases of the vRA installation process. These phases include:
vRealize Automation (vRA) Pre-installation task
vSphere host validation
Validating vRA Deployment inputs
Deploying vRA OVF template
Post-Deployment Tasks
Each state is associated with a set of properties and UI properties, which provide information about the state and allow for customization of the installation process.
Stage 3: Set license for vRealize Automation
PAYLOAD
{
"symbolicName" : "vravasetlicense",
"displayName" : null,
"productVersion" : null,
"priority" : 2,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravasetlicense",
"type" : null,
"componentVersion" : null,
"properties" : {
"__isCavaDeployment" : "false",
"cafeHostNamePrimary" : "vra.vworld.domain.local",
"isFreshInstall" : "true",
"cafeRootPasswordPrimary" : "JXJXJXJX",
"__vravaDeploymentOptions" : null,
"__productId" : "vra",
"vraK8ClusterCidr" : "",
"version" : "8.11.1",
"__version" : "8.11.1",
"license" : "XXXX-XXXX-XXXX-XXXX",
"nodeSize" : "medium",
"fipsMode" : "false",
"isVcfUser" : "false",
"isVcfEnabledEnv" : "false",
"vraK8ServiceCidr" : "",
"licenseRef" : null
}
},
"priority" : 2
} ]
}
STEPS
{
"symbolicName": "vravasetlicense",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Set license for vRealize Automation",
"displayKey": "vmf::sm::vravasetlicense"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask",
"properties": {},
"uiProperties": {
"displayText": "Initialize set license for vRealize Automation",
"displayKey": "vmf::sm::vravasetlicense::node::c.v.v.l.p.c.v.t.VraVaInitLicenseTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask",
"properties": {},
"uiProperties": {
"displayText": "Set license for vRealize Automation",
"displayKey": "vmf::sm::vravasetlicense::node::c.v.v.l.p.c.v.t.VraVaSetLicenseTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravasetlicense::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnLicenseInitCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Initializing set license complete",
"displayKey": "vmf::sm::vravasetlicense::edge::name::OnLicenseInitCompletion::source::c.v.v.l.p.c.v.t.VraVaInitLicenseTask"
}
},
{
"name": "OnLicenseSetCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Setting license complete",
"displayKey": "vmf::sm::vravasetlicense::edge::name::OnLicenseSetCompletion::source::c.v.v.l.p.c.v.t.VraVaSetLicenseTask"
}
}
]
}
TASKS FROM STEPS
- Initialize set license for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask
the method that retrieves the licenseRef
property from the componentSpec
object, and stores the value in the license
variable. It then injects an event indicating whether the license retrieval was successful or not.
- Set license for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask
the class that represents a task for setting the license for vRealize Automation (vRA). The task uses various properties, including the hostname, root password, and license key, obtained from the componentSpec
object. It also uses a PreludeEndpoint
object to perform the license setting operation. If the operation fails, an event with a corresponding error message is injected.
SHORT DESCRIPTION
This is a state machine flow for setting a license for vRealize Automation. The flow consists of three nodes, two states, and one final state. The initial state is “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitLicenseTask” which initializes the process of setting the license. The second node is “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask” which sets the license for vRealize Automation. The final state is “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask” which represents the end of the process.
There are two edges in this flow. The first edge is “OnLicenseInitCompletion” which starts at the initial state and ends at the “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask” state. This edge represents the completion of the initialization process for setting the license. The second edge is “OnLicenseSetCompletion” which starts at the “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLicenseTask” state and ends at the final state. This edge represents the completion of the license setting process.
Stage 4: Install certificate on vRealize Automation
PAYLOAD
{
"symbolicName" : "vravainstallcertificate",
"displayName" : null,
"productVersion" : null,
"priority" : 3,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravainstallcertificate",
"type" : null,
"componentVersion" : null,
"properties" : {
"__isCavaDeployment" : "false",
"cafeHostNamePrimary" : "vra.vworld.domain.local",
"isFreshInstall" : "true",
"cafeRootPasswordPrimary" : "JXJXJXJX",
"__vravaDeploymentOptions" : null,
"certificateChain" : "",
"__productId" : "vra",
"certificateAlias" : "",
"vraK8ClusterCidr" : "",
"version" : "8.11.1",
"privateKey" : "JXJXJXJX",
"__version" : "8.11.1",
"nodeSize" : "medium",
"fipsMode" : "false",
"isVcfUser" : "false",
"isVcfEnabledEnv" : "false",
"vraK8ServiceCidr" : ""
}
},
"priority" : 3
} ]
}
STEPS
{
"symbolicName": "vravainstallcertificate",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Install certificate on vRealize Automation",
"displayKey": "vmf::sm::vravainstallcertificate"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask",
"properties": {},
"uiProperties": {
"displayText": "Initialize install certificate on vRealize Automation",
"displayKey": "vmf::sm::vravainstallcertificate::node::c.v.v.l.p.c.v.t.VraVaInstallCertificateInitTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask",
"properties": {},
"uiProperties": {
"displayText": "Validate certificate for vRealize Automation",
"displayKey": "vmf::sm::vravainstallcertificate::node::c.v.v.l.p.c.v.t.VraVaValidateCertificateTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask",
"properties": {},
"uiProperties": {
"displayText": "Install certificate on vRealize Automation",
"displayKey": "vmf::sm::vravainstallcertificate::node::c.v.v.l.p.c.v.t.VraVaInstallCertificateTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravainstallcertificate::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnVravaInstallInitCertificateCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Installation of certificate on vRealize Automation initiated",
"displayKey": "vmf::sm::vravainstallcertificate::edge::name::OnVravaInstallInitCertificateCompletion::source::c.v.v.l.p.c.v.t.VraVaInstallCertificateInitTask"
}
},
{
"name": "OnVravaValidateCertificateCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Validation of certificate for vRealize Automation complete",
"displayKey": "vmf::sm::vravainstallcertificate::edge::name::OnVravaValidateCertificateCompletion::source::c.v.v.l.p.c.v.t.VraVaValidateCertificateTask"
}
},
{
"name": "OnVravaInstallCertificateCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Installation of certificate on vRealize Automation complete",
"displayKey": "vmf::sm::vravainstallcertificate::edge::name::OnVravaInstallCertificateCompletion::source::c.v.v.l.p.c.v.t.VraVaInstallCertificateTask"
}
},
{
"name": "OnGoToCertificateValidateTask",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to validate certificate",
"displayKey": "vmf::sm::vravainstallcertificate::edge::name::OnGoToCertificateValidateTask::source::c.v.v.l.p.c.v.t.VraVaInstallCertificateTask"
}
}
]
}
TASKS FROM STEPS
- Initialize install certificate on vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask
class is responsible for initializing the installation of a certificate on vRealize Automation (vRA). The class contains a method called execute()
which retrieves the certificate value from the vRA component properties and logs it. The certificate is obtained through a call to getProperties()
the method of the component object in the componentSpec. If the certificate is successfully retrieved, the method injectEventValue(true) is called which injects an event called “OnVravaInstallInitCertificateCompletion”. If an exception is caught during the certificate retrieval process, the method injectEventValue(true) is still called, but with false the parameter injects a “Failed” event.
- Validate certificate for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask
This class represents a task to validate the certificate of a vRealize Automation (vRA) installation. It retrieves the necessary properties such as the vRA hostname, root password, key passphrase, certificate chain, and private key from the component specification. If the component specification belongs to vRA 8.0.0, the validation is skipped. Otherwise, the task connects to the vRA VA using SSH and validates the certificate using the SHA-256 parameter. If the validation fails, an error message is logged and a failed event is injected. If the validation is successful, the certificate information is stored in the properties and an event indicating the successful completion of the task is injected. The class also provides a retry method that retries the task after updating the properties. If the retry is successful, the certificate information is updated in the enhanced request.
- Install certificate on vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask
It contains methods for installing a certificate on a vRealize Automation (vRA) Virtual Appliance (VA).
The class has several private fields, including a logger, a ProductSpecification object named productSpec, a ComponentDeploymentSpecification object named componentSpec, a String named certificate, a CertificateResponseDTO object named certificateDto, and a LockerApiContainer object named lockerApiContainer. It also has a List of Strings named retryParams.
The class has a public method named execute() that installs a certificate on the vRA VA. The method retrieves information about the vRA VA from the componentSpec field, including the hostname, root password, key passphrase, certificate chain, private key, and deployment options. It then uses a PreludeEndpoint object to connect to the vRA VA and install the certificate.
SHORT DESCRIPTION
This is a state machine flow that installs a certificate on vRealize Automation. The state machine is named “vravainstallcertificate”
There are four nodes in this state machine, including “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask”, “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask”, “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask”, and “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask”.
The edges define the flow between the nodes. There are four edges defined in this state machine, including “OnVravaInstallInitCertificateCompletion”, “OnVravaValidateCertificateCompletion”, “OnVravaInstallCertificateCompletion”, and “OnGoToCertificateValidateTask”.
“com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateInitTask” node and goes to the “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask” node. This edge is triggered when the initialization of certificate installation is complete.
“com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaValidateCertificateTask” node and goes to the “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInstallCertificateTask” node. This edge is triggered when the validation of the certificate for vRealize Automation is complete.
Stage 5: Initialize vRealize Automation cluster
PAYLOAD
{
"symbolicName" : "vravainitializecluster",
"displayName" : null,
"productVersion" : null,
"priority" : 4,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravainitializecluster",
"type" : null,
"componentVersion" : null,
"properties" : {
"cafeHostNamePrimary" : "vra.vworld.domain.local",
"isFreshInstall" : "true",
"cafeRootPasswordPrimary" : "JXJXJXJX",
"vidmPrimaryNodeRootPassword" : "JXJXJXJX",
"baseTenantId" : "idm",
"__version" : "8.11.1",
"nodeSize" : "medium",
"masterVidmAdminUserName" : "admin",
"vraK8ServiceCidr" : "",
"__isCavaDeployment" : "false",
"__vravaDeploymentOptions" : null,
"__productId" : "vra",
"uberAdminUserType" : "LOCAL",
"vraK8ClusterCidr" : "",
"version" : "8.11.1",
"masterVidmAdminPassword" : "JXJXJXJX",
"uberAdmin" : "admik",
"masterVidmEnabled" : "true",
"uberAdminPassword" : "JXJXJXJX",
"masterVidmHostName" : "idm.vworld.domain.local",
"fipsMode" : "false",
"isVcfUser" : "false",
"isVcfEnabledEnv" : "false",
"authProviderHostnames" : "idm.vworld.domain.local",
"vidmPrimaryNodeHostname" : "idm.vworld.domain.local"
}
},
"priority" : 4
} ]
}
STEPS
{
"symbolicName": "vravainitializecluster",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.vidm.core.task.StartVidmGenericTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Initialize vRealize Automation cluster",
"displayKey": "vmf::sm::vravainitializecluster"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.StartVidmGenericTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.StartVidmGenericTask",
"properties": {},
"uiProperties": {
"displayText": "Start VMware Identity Manager Generic",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.StartVidmGenericTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmInstanceAvailabilityCheckTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmInstanceAvailabilityCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check for VMware Identity Manager instance availability",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.VidmInstanceAvailabilityCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmLoginTokenCheckTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmLoginTokenCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check for VMware Identity Manager login token",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.VidmLoginTokenCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmHealthCheck4vRATask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmHealthCheck4vRATask",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager health check for vRealize Automation",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.VidmHealthCheck4vRATask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmSuperUserAvailabilityCheckTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmSuperUserAvailabilityCheckTask",
"properties": {},
"uiProperties": {
"displayText": "Check for VMware Identity Manager Default Configuration User Availability",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.VidmSuperUserAvailabilityCheckTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask",
"properties": {},
"uiProperties": {
"displayText": "Configure Load Balancer for vRealize Automation",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.p.c.v.t.VraVaSetLoadBalancerTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetVidmTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetVidmTask",
"properties": {},
"uiProperties": {
"displayText": "Configure VMware Identity Manager for vRealize Automation",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.p.c.v.t.VraVaSetVidmTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask",
"properties": {},
"uiProperties": {
"displayText": "Initialize vRealize Automation",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.p.c.v.t.VraVaInitializeTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaUpdateCertificateInInventoryTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaUpdateCertificateInInventoryTask",
"properties": {},
"uiProperties": {
"displayText": "Update vRealize Automation certificate in vRealize Lifecycle Manager inventory",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.p.c.v.t.VraVaUpdateCertificateInInventoryTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateAllowedRedirectsTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateAllowedRedirectsTask",
"properties": {},
"uiProperties": {
"displayText": "Update VMware Identity Manager Allowed redirects",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.v.c.t.VidmUpdateAllowedRedirectsTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravainitializecluster::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnVidmGenericInitialized",
"source": "com.vmware.vrealize.lcm.vidm.core.task.StartVidmGenericTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmInstanceAvailabilityCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager flow initialized",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmGenericInitialized::source::c.v.v.l.v.c.t.StartVidmGenericTask"
}
},
{
"name": "OnVidmInstanceAvailabilityCheckSuccess",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmInstanceAvailabilityCheckTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmLoginTokenCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager Instance Availability Check Success",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmInstanceAvailabilityCheckSuccess::source::c.v.v.l.v.c.t.VidmInstanceAvailabilityCheckTask"
}
},
{
"name": "OnVidmLoginTokenCheckSuccess",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmLoginTokenCheckTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmHealthCheck4vRATask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager Login Token Check Success",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmLoginTokenCheckSuccess::source::c.v.v.l.v.c.t.VidmLoginTokenCheckTask"
}
},
{
"name": "OnVidmHealthCheckTaskCompletion",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmHealthCheck4vRATask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmSuperUserAvailabilityCheckTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager Health Check complete",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmHealthCheckTaskCompletion::source::c.v.v.l.v.c.t.VidmHealthCheck4vRATask"
}
},
{
"name": "OnVidmSuperUserAvailabilitySuccess",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmSuperUserAvailabilityCheckTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetVidmTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "VMware Identity Manager Default Configuration User Availability Success",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmSuperUserAvailabilitySuccess::source::c.v.v.l.v.c.t.VidmSuperUserAvailabilityCheckTask"
}
},
{
"name": "OnLoadBalancerSetCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Configuring load balancer complete",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnLoadBalancerSetCompletion::source::c.v.v.l.p.c.v.t.VraVaSetLoadBalancerTask"
}
},
{
"name": "OnSetVIDMVaCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetVidmTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Configuring VMware Identity Manager complete",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnSetVIDMVaCompletion::source::c.v.v.l.p.c.v.t.VraVaSetVidmTask"
}
},
{
"name": "OnInitilizeVaCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaUpdateCertificateInInventoryTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Initializing vRealize Automation Complete",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnInitilizeVaCompletion::source::c.v.v.l.p.c.v.t.VraVaInitializeTask"
}
},
{
"name": "OnInitilizeVaReturnToLBTask",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Return to Configure load balancer operation",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnInitilizeVaReturnToLBTask::source::c.v.v.l.p.c.v.t.VraVaInitializeTask"
}
},
{
"name": "OnVravaCertificateInventoryCompletion",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaUpdateCertificateInInventoryTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateAllowedRedirectsTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Update vRealize Automation certificate in vRealize Lifecycle Manager inventory completion",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVravaCertificateInventoryCompletion::source::c.v.v.l.p.c.v.t.VraVaUpdateCertificateInInventoryTask"
}
},
{
"name": "OnVidmUpdateAllowRedirectSuccess",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateAllowedRedirectsTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Updating VMware Identity Manager Allow redirect success",
"displayKey": "vmf::sm::vravainitializecluster::edge::name::OnVidmUpdateAllowRedirectSuccess::source::c.v.v.l.v.c.t.VidmUpdateAllowedRedirectsTask"
}
}
]
}
TASKS FROM STEPS
- Check for VMware Identity Manager instance availability com.vmware.vrealize.lcm.vidm.core.task.VidmInstanceAvailabilityCheckTask
The method first logs a message saying that it is starting a task to check the availability of a vIDM instance. It then checks whether a component specification has been set for the task, and if not, sets it to the first component in the product specification.
Next, it retrieves a map of properties associated with the component and creates a list of mandatory properties that must be present. The code then uses a utility class called VidmInputValidatorUtil
to validate the mandatory properties. If any mandatory properties are missing, it logs an error message and injects a failed event with a specific error code (“LCMVIDM71129”).
If all mandatory properties are present, the code retrieves the hostname, maximum timeout value, and wait time value from the properties map. If either the maximum timeout value or the wait time value is not present, default values are used instead.
Finally, the code tries to connect to the vIDM instance using the getVidmEndPoint()
method from another utility class called VidmInstallTaskUtil
. If the connection succeeds, the code injects an event indicating success (“OnVidmInstanceAvailabilityCheckSuccess”). If the connection fails, the code logs an error message and injects a failed event with a different error code (“LCMVIDM71020”)
- Check for VMware Identity Manager login token com.vmware.vrealize.lcm.vidm.core.task.VidmLoginTokenCheckTask
the method starts the task by getting the mandatory properties required for the task and validating if they are present or not. If any mandatory property is missing, it injects a failed event with the error code “LCMVIDM71129” and then extracts the hostname, admin user, admin password, tenant, and other configuration properties required to log in to the vIDM instance. It then loops through the login check maximum retries and tries to log in to the vIDM instance using the provided credentials. If the login is successful, it injects an event with the code “OnVidmLoginTokenCheckSuccess”. If the login fails, it logs the error message and sleeps for a configured time before retrying. If the maximum login retries are exhausted, it injects a failed event with the error code “LCMVIDM71022”.The getConfigProperty() method retrieves the configuration property values for the specified key from the vIDM task configuration properties and the component properties.
- VMware Identity Manager health check for vRealize Automation com.vmware.vrealize.lcm.vidm.core.task.VidmHealthCheck4vRATask
It checks the health status of a vIDM instance by validating the login credentials and checking the status of all the nodes in the vIDM cluster. The code uses the VidmServerRestUtil class to log in to the vIDM instance and make a GET request to the cluster instance API endpoint to retrieve the health status. The health status is checked by calling the checkStatusOfAllNodes method, which iterates through the list of cluster instances and checks if their status is “Active”. If the health check fails, the code retries a certain number of times with a specified sleep interval between retries. If the maximum number of retries is reached and the health status is still not obtained, an LCMVIDM73101 event is raised.
- Check for VMware Identity Manager Default Configuration User Availability com.vmware.vrealize.lcm.vidm.core.task.VidmSuperUserAvailabilityCheckTask
The purpose of this task is to check if the vIDM super user is available or not. If the super user is not available, the task injects a failed event, and if the super user is available, the task injects a success event.
The code first gets the necessary properties from the component specification and validates them. Then, it tries to log in to the vIDM using the admin credentials provided in the properties. If the login fails, the task injects a failed event. If the login succeeds, the task tries to find the super user by searching for the user using the vIDM user search API. If the user is found, the task injects a success event. If the user is not found, the task retries for a maximum number of times specified in the configuration properties.
The code also has a helper method getConfigProperty
that gets the configuration property values from the configuration property service if it’s available, and returns the property value either from the component properties or the configuration property service.
- Configure Load Balancer for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetLoadBalancerTask
the task that sets the load balancer (LB) for a VMware vRealize Automation (vRA) Virtual Appliance (VA). The task takes various inputs as properties, such as the primary vRA VA’s Cafe HostName and root password, and the load balancer hostname, and whether to install a load balancer certificate or not.
The task uses a prelude endpoint to communicate with the vRA VA over SSH and sets the LB using the VraPreludeInstallHelper.setLoadBalancer()
method. If the issetLBCert
flag is set, it also installs the load balancer certificate using the VraPreludeInstallHelper.installLoadBalancerCertificate()
method.
If the LB setting is successful, the task injects an “OnLoadBalancerSetCompletion” event. If it fails, the task injects a “Failed” event and logs an error message with a corresponding error code.
- Configure VMware Identity Manager for vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSetVidmTask
the task that sets the vIDM (VMware Identity Manager) on a vRA (VMware vRealize Automation) VA (virtual appliance). The task sets the vIDM hostname, user password, and admin for the vRA. It also checks if a root certificate is required for the vIDM and sets it if needed. If the task fails, it injects a failed event with a specific error code and message. The error code is used to identify the type of failure. The task has methods to set the component and product specification and to inject an event with a result (either success or failure).
- Initialize vRealize Automation com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaInitializeTask
This method initializes some variables and parameters, such as the hostname, root password, and deployment options for the virtual appliance. It then runs a script on the virtual appliance, waits for the script to complete, and checks the output of the script to determine whether the initialization was successful or not. If it was successful, the method calls another method named injectEventValue()
with a parameter of true
. If it was not successful, the method calls injectFailedEventWithLocale()
with an error message and some parameters to retry the initialization.
- Update vRealize Automation certificate in vRealize Lifecycle Manager inventory com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaUpdateCertificateInInventoryTask
The code defines a method “execute()” that starts the task and retrieves certificates from a vRA endpoint using SSH protocol. The certificates are then updated in the product inventory using a helper method “updateProductNodePropertiesToInventory()”. Finally, the task status is reported using the “injectEventValue()” method which sets the status to either “OnVravaCertificateInventoryCompletion” or “Failed”. The code also has methods to set and retrieve the ProductSpecification object.
- Update VMware Identity Manager Allowed redirects com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateAllowedRedirectsTask
The method begins by logging that the task of updating allowed redirects for vIDM has started, and then checks if the component specification is null. If it is, it gets the first component from the product specification. It then retrieves the necessary properties, validates them, and stores them in variables. If any mandatory property is missing, it logs an error and exits the method. The method then adds the allowed redirects for the vIDM server and logs the redirects that are supposed to be added. It creates an instance of VidmServerRestUtil and logs in to the server with the provided credentials. It then tries to update the allowed redirects and logs an error if the update fails. If vRA tenancy is enabled, the method retrieves the vRA tenants’ list and loops through each tenant. It then creates a fully qualified domain name for each tenant, and if it is successful, it adds the allowed redirects for each tenant and logs the result. Finally, it logs that the vIDM update allowed redirects task is done and injects an event indicating success. If the mandatory property is missing, the method skips the vIDM update allowed redirects the task and injects an event indicating success.
SHORT DESCRIPTION
This is a JSON object that describes a state machine. A state machine is a computational model used to control the behavior of an object or system based on its current state and inputs. The state machine described here is used to initialize a vRealize Automation (vRA) cluster.
The state machine has 11 nodes, each of which is a task that performs a specific action in the initialization process. The tasks include tasks for starting the VMware Identity Manager Generic task, checking for the availability of the VMware Identity Manager instance, checking for the VMware Identity Manager login token, and performing a health check on the VMware Identity Manager. There are also tasks for configuring the load balancer and configuring VMware Identity Manager for vRealize Automation.
The state machine has 12 edges, each of which represents a transition from one state to another. Each transition occurs when a specific event happens, such as the completion of a task. The edges include transitions from the starting state to the first task, transitions between the various tasks, and transitions from the final task to the end of the state machine.
Stage 6: Save vMoid to vRSLCM inventory
PAYLOAD
{
"symbolicName" : "savevmoidtoinventory",
"displayName" : null,
"productVersion" : null,
"priority" : 5,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "savevmoidtoinventory",
"type" : null,
"componentVersion" : null,
"properties" : {
"__productId" : "vra"
}
},
"priority" : 5
} ]
}
STEPS
{
"symbolicName": "savevmoidtoinventory",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Save vMoid to vRSLCM inventory",
"displayKey": "vmf::sm::savevmoidtoinventory"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask",
"properties": {},
"uiProperties": {
"displayText": "Fetch product details",
"displayKey": "vmf::sm::savevmoidtoinventory::node::c.v.v.l.d.c.t.FetchProductByIdTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.UpdateVmoidToInventoryTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.UpdateVmoidToInventoryTask",
"properties": {},
"uiProperties": {
"displayText": "Get vMoid of product node hosts and save in vRSLCM inventory",
"displayKey": "vmf::sm::savevmoidtoinventory::node::c.v.v.l.d.c.t.UpdateVmoidToInventoryTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::savevmoidtoinventory::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnFetchProductPropertiesSuccess",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask",
"destination": "com.vmware.vrealize.lcm.drivers.commonplugin.task.UpdateVmoidToInventoryTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Fetch Product properties Success",
"displayKey": "vmf::sm::savevmoidtoinventory::edge::name::OnFetchProductPropertiesSuccess::source::c.v.v.l.d.c.t.FetchProductByIdTask"
}
},
{
"name": "OnUpdateVmoidToInventorySuccess",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.UpdateVmoidToInventoryTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "vMoid of product node hosts saved in inventory",
"displayKey": "vmf::sm::savevmoidtoinventory::edge::name::OnUpdateVmoidToInventorySuccess::source::c.v.v.l.d.c.t.UpdateVmoidToInventoryTask"
}
}
]
}
TASKS FROM STEPS
- Fetch product details com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask
that fetches product properties. It logs an information message to indicate the start of the task, retrieves the product specification object, and sets the component specification object if it is null. It then retrieves the product ID from the component properties, and if it is empty, it adds “__productId” to the retry parameters and injects a failed event with the corresponding error message. If the enhanced request is not null, it tries to retrieve the product from it using the ID and logs an info message if successful. Otherwise, it logs an error message. Finally, it sets the component specification object again, injects an event to indicate the success of the task and returns.
- Get vMoid of product node hosts and save in vRSLCM inventory com.vmware.vrealize.lcm.drivers.commonplugin.task.UpdateVmoidToInventoryTask
The method proceeds with initializing two String variables hostname
and errorMessage
as null
and empty string respectively. The originalProduct
is set to the result of getOriginalObject("product")
if this.product
is not null. The method then tries to retrieve the componentSpec
object from getOriginalObject("componentSpec")
. If successful, it retrieves the compSpecProps
map from componentSpec.getComponent().getProperties()
, and the productId
from compSpecProps
based on the key "__productId"
.
Then, the method logs a message indicating that it is fetching vMoid for the product based on productId. A new HashMap name hostnameVmid is initialized to store the vMoid for each host. If this product is not null and has nodes, the method loops through each node. For each non-null node, it checks whether the node is of type “vidm-connector” and has a product ID of “vidm”. If so, it skips the vMoid fetch for that host. Otherwise, it retrieves the hostname and sets various properties in compSpecProps. If the node’s properties contain a key “skipUpdateVmoidToInventory” with a value of, the method skips the update of the vMoid for that host. Otherwise, the method constructs an error message and checks whether the host vMoid is already present in the node’s properties. If not, it retrieves various properties for the node, constructs a vcServer object, and attempts to retrieve vMoid for the host using CoreUtility.getVmidFromProvidedDetails(). If successful, it adds the host vMoid
to the hostnameVmid
map. If unsuccessful, it logs an error message, adds various properties to the retryParams
list, injects a failed event, and returns from the method.
After the loop through the nodes, the method checks whether the originalProduct
is not null and has nodes. If so, it loops through each node and checks whether the vMoid
is missing but the hostname is present and there is a corresponding vMoid in the hostnameVmid map. If so, it sets the vMoid the node’s properties and removes the "skipUpdateVmoidToInventory"
key from the properties.
Finally, if there is an enhanced request, the method logs a message and updates the enhanced request if the originalProduct
ID matches the productId
. The method concludes by removing the "hostUnderIteration"
key compSpecProps
and injecting a successful event.
SHORT DESCRIPTION
This is a JSON object representing a state machine with three nodes and two edges.
The state machine is identified by the “symbolicName” property, which in this case is “savevmoidtoinventory”. The “type” property indicates that this is a state machine. The “version” property specifies the version of the state machine.
The state machine starts in the state defined by “startState”, which is “com.vmware.vrealize.lcm.drivers.commonplugin.task.FetchProductByIdTask”. There is no “finishState” or “errorState” defined.
The “uiProperties” property provides user-friendly display text for the state machine and its nodes and edges.
The state machine has three nodes, each defined as a JSON object within the “nodes” array. Each node has a “symbolicName” property, which uniquely identifies it within the state machine. The “type” property specifies the type of node, which in this case is “SIMPLE”. The “task” property identifies the actual task associated with the node. The “uiProperties” property provides user-friendly display text for the node.
The state machine has two edges, each defined as a JSON object within the “edges” array. Each edge has a “name” property, which is a user-friendly name for the edge. The “source” and “destination” properties specify the nodes that the edge connects. The “type” property specifies the type of edge, which in this case is “SM_EVENT”. The “uiProperties” property provides user-friendly display text for the edge.
Stage 7: Save vRealize Automation Internal network range in vRealize Lifecycle Manager Inventory
PAYLOAD
{
"symbolicName" : "vravasavecidrdetails",
"displayName" : null,
"productVersion" : null,
"priority" : 6,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravasavecidrdetails",
"type" : null,
"componentVersion" : null,
"properties" : {
"hostName" : "vra.vworld.domain.local",
"__version" : "8.11.1",
"version" : "8.11.1",
"rootPassword" : "JXJXJXJX"
}
},
"priority" : 6
} ]
}
STEPS
{
"symbolicName": "vravasavecidrdetails",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Save vRealize Automation Internal network range in vRealize Lifecycle Manager Inventory",
"displayKey": "vmf::sm::vravasavecidrdetails"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask",
"properties": {},
"uiProperties": {
"displayText": "Save vRealize Automation Internal network range in vRealize Lifecycle Manager Inventory",
"displayKey": "vmf::sm::vravasavecidrdetails::node::c.v.v.l.p.c.v.t.VraVaSaveCidrDetailsTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravasavecidrdetails::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnVraVaSaveCidrDetailsSuccess",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Save Internal network range in vRealize Lifecycle Manager Inventory Success",
"displayKey": "vmf::sm::vravasavecidrdetails::edge::name::OnVraVaSaveCidrDetailsSuccess::source::c.v.v.l.p.c.v.t.VraVaSaveCidrDetailsTask"
}
}
]
}
TASKS FROM STEPS
- Save vRealize Automation Internal network range in vRealize Lifecycle Manager Inventory com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask
The method saves the CIDR (Classless Inter-Domain Routing) details for a component of a product called vRA (vRealize Automation) to an inventory system. The method first logs an informational message to indicate that it is starting. It then initializes a list of parameters for retrying the operation in case of failure.
The method checks the version of the vRA product by inspecting the component properties. If the version is less than 8.2.0, the method logs an informational message indicating that it is skipping the operation and injects a success event. Otherwise, it retrieves the clusterCIDR and serviceCIDR properties from the component properties.
If either clusterCIDR or serviceCIDR is blank, the method creates a PreludeEndpoint object using the hostName and rootPassword properties from the component properties. It then calls the getCidrDetails() method of an VraPreludeInstallHelper
object passing the preludeEndpoint
object as an argument to retrieve the CIDR details. If CIDR details are retrieved successfully, the method logs an informational message indicating the internal network range for vRA and updates the clusterCIDR
and serviceCIDR
variables with the values from the retrieved details.
Finally, the method updates the enhanced request with the new properties and logs informational messages before and after the update. If the updated enhanced request is not blank, it sets the enhanced request to the updated value. The method then injects a success event.
If an exception is thrown during the execution of the method, the method logs an error message with the details of the exception and injects a failed event with the appropriate error message and parameters.
SHORT DESCRIPTION
This is a state machine flow with the symbolic name “vravasavecidrdetails”. It has two nodes and one edge. The purpose of this flow is to save the vRealize Automation internal network range in the vRealize Lifecycle Manager Inventory.
The first node is a state called “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveCidrDetailsTask”. This state is responsible for saving the internal network range of vRealize Automation in the vRealize Lifecycle Manager Inventory. It is a simple state and has no incoming or outgoing edges.
The second node is a final state called “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask”. This state represents the end of the state machine flow. When the execution of the state machine reaches this state, it means that the flow has been successfully completed. This state is also a simple state and has no incoming or outgoing edges.
There is one edge in this state machine flow called “OnVraVaSaveCidrDetailsSuccess”. This edge is triggered when the internal network range of vRealize Automation is successfully saved in the vRealize Lifecycle Manager Inventory. The edge connects the first node to the final state.
Stage 8: Configure VMware Identity Manager app catalog for vRealize Automation
PAYLOAD
{
"symbolicName" : "vravaconfigurevidmappcatalog",
"displayName" : null,
"productVersion" : null,
"priority" : 7,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "vravaconfigurevidmappcatalog",
"type" : null,
"componentVersion" : null,
"properties" : {
"cafeHostNamePrimary" : "vra.vworld.domain.local",
"vidmPrimaryNodeRootPassword" : "JXJXJXJX",
"__productId" : "vra",
"baseTenantId" : "idm",
"uberAdminUserType" : "LOCAL",
"masterVidmAdminPassword" : "JXJXJXJX",
"uberAdmin" : "admik",
"masterVidmEnabled" : "true",
"__version" : "8.11.1",
"uberAdminPassword" : "JXJXJXJX",
"__vidmCatalogAppId" : null,
"masterVidmHostName" : "idm.vworld.domain.local",
"masterVidmAdminUserName" : "admin",
"environmentName" : "vra8",
"authProviderHostnames" : "idm.vworld.domain.local",
"vidmPrimaryNodeHostname" : "idm.vworld.domain.local"
}
},
"priority" : 7
} ]
}
STEPS
{
"symbolicName": "vravaconfigurevidmappcatalog",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaGenericTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Configure VMware Identity Manager app catalog for vRealize Automation",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaGenericTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaGenericTask",
"properties": {},
"uiProperties": {
"displayText": "Start vRealize Automation flow",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.p.c.v.t.StartVraVaGenericTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask",
"properties": {},
"uiProperties": {
"displayText": "Prepare required inputs for creating VMware Identity Manager app catalog",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.p.c.v.t.VraVaPrepareVidmAppCatalogTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmCreateWebLinkAppTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmCreateWebLinkAppTask",
"properties": {},
"uiProperties": {
"displayText": "Create VMware Identity Manager web link app",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.v.c.t.VidmCreateWebLinkAppTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateWebLinkAppTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateWebLinkAppTask",
"properties": {},
"uiProperties": {
"displayText": "Update VMware Identity Manager web link app",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.v.c.t.VidmUpdateWebLinkAppTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask",
"properties": {},
"uiProperties": {
"displayText": "Save VMware Identity Manager catalog app ID for vRealize Automation in inventory",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.p.c.v.t.VraVaSaveVidmCatalogAppIdTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnVraVaGenericInitialized",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.StartVraVaGenericTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "vRealize Automation flow initialized",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVraVaGenericInitialized::source::c.v.v.l.p.c.v.t.StartVraVaGenericTask"
}
},
{
"name": "OnVraVaCreateVidmAppCatalogInitiated",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmCreateWebLinkAppTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Create VMware Identity Manager app catalog for vRealize Automation initiated",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVraVaCreateVidmAppCatalogInitiated::source::c.v.v.l.p.c.v.t.VraVaPrepareVidmAppCatalogTask"
}
},
{
"name": "OnVraVaUpdateVidmAppCatalogInitiated",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask",
"destination": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateWebLinkAppTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Update VMware Identity Manager app catalog for vRealize Automation initiated",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVraVaUpdateVidmAppCatalogInitiated::source::c.v.v.l.p.c.v.t.VraVaPrepareVidmAppCatalogTask"
}
},
{
"name": "OnVidmWebLinkAppTaskCompletion",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmCreateWebLinkAppTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Creation of VMware Identity Manager web link app complete",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVidmWebLinkAppTaskCompletion::source::c.v.v.l.v.c.t.VidmCreateWebLinkAppTask"
}
},
{
"name": "OnVidmUpdateWebLinkAppTaskCompletion",
"source": "com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateWebLinkAppTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Updation of VMware Identity Manager web link app complete",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVidmUpdateWebLinkAppTaskCompletion::source::c.v.v.l.v.c.t.VidmUpdateWebLinkAppTask"
}
},
{
"name": "OnVraVaSaveVidmCatalogAppIdSuccess",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Saving VMware Identity Manager catalog app id for vRealize Automation Success",
"displayKey": "vmf::sm::vravaconfigurevidmappcatalog::edge::name::OnVraVaSaveVidmCatalogAppIdSuccess::source::c.v.v.l.p.c.v.t.VraVaSaveVidmCatalogAppIdTask"
}
}
]
}
TASKS FROM STEPS
- Prepare required inputs for creating VMware Identity Manager app catalog com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaPrepareVidmAppCatalogTask
The execute()
a method is the main method of the task, which starts by retrieving the necessary properties of the vRA VA component, such as the primary cafe hostname, environment name, and version. If the cafeHostNamePrimary
property is blank, the method injects a failed event and returns.
Next, the method creates a vidmCatalogDetailMap
details for the vIDM catalog, such as the app icon, app name, and target URL. The formatAppName()
method is called to format the app name using the environment name, version, and hostname.
If a __vidmCatalogAppId
property exists and is not blank, the method logs that the vIDM catalog already exists for the vRA host and injects an OnVraVaUpdateVidmAppCatalogInitiated
event to proceed with the update.
If the __vidmCatalogAppId
the property does not exist or is blank, the method logs that it needs to create the vIDM catalog for the vRA host and injects an OnVraVaCreateVidmAppCatalogInitiated
event.
There are also helper methods, such as getConfigProperty()
, which retrieves a configuration property based on the component property key, and formatAppName()
, which formats the app name for the vIDM catalog.
- Create VMware Identity Manager web link app com.vmware.vrealize.lcm.vidm.core.task.VidmCreateWebLinkAppTask
The execute() method begins with checking if a “skipCause” property is present and if it is, the task is skipped. Otherwise, the mandatory properties are validated, and if any of them are empty, a failed event is injected. Next, the values of “appName”, “targetUrl”, and “appIcon” properties are retrieved and checked. If either “appName” or “targetUrl” is empty, a failed event is injected. Then, the properties related to the vIDM server such as host, tenant, admin user, and admin password are retrieved, and a login request is sent to the vIDM server using the VidmServerRestUtil class. If the login fails, a failed event is injected. If the login succeeds, a new web link application is created using the vidm.newWebLinkApplication() method and the resulting catalog app id is stored in the vidmCatalogAppId variable. Finally, an event is injected to signify the completion of the task.
- Update VMware Identity Manager web link app com.vmware.vrealize.lcm.vidm.core.task.VidmUpdateWebLinkAppTask
The method begins by checking if the task has been marked to be skipped, in which case it injects an event and returns. It then checks for mandatory properties required for the task and validates them using a utility method. If any mandatory property is missing, it injects a failed event and returns.
The method then retrieves the application name, ID, target URL, and icon from the properties map. If any of these values are empty, it logs an error, blindly injects a success event, and returns. Otherwise, it retrieves the vIDM server hostname, tenant, admin username, and password from the properties map and creates a VidmServerRestUtil object with the hostname. It logs in to the vIDM server using the admin credentials and tenant and retrieves a VidmCatalogApplicationServiceRestUtil object.
The method then creates a VidmCatalogWebLinkItem object with the application ID, name, type, description, version, subtype, and target URL. It updates the catalog weblink application using the VidmCatalogApplicationServiceRestUtil object and injects an event to mark the successful completion of the task. If an exception is caught during the process, the method logs an error, blindly injects a success event, and returns.
- Save VMware Identity Manager catalog app ID for vRealize Automation in inventory com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveVidmCatalogAppIdTask
The execute()
method logs a message indicating that the task has started, retrieves configuration properties, and then checks if there is a vidmCatalogAppId
property already set. If so, it updates the enhanced request (presumably a request object for a deployment or update operation) with the value of the vidmCatalogAppId
property.
SHORT DESCRIPTION
This is a state machine flow that configures the VMware Identity Manager app catalog for vRealize Automation. The flow consists of six nodes and six edges.
The first node is “StartVraVaGenericTask” which initializes the vRealize Automation flow. The second node is “VraVaPrepareVidmAppCatalogTask” which prepares the required inputs for creating the VMware Identity Manager app catalog. The third node is “VidmCreateWebLinkAppTask” which creates the VMware Identity Manager web link app. The fourth node is “VidmUpdateWebLinkAppTask” which updates the VMware Identity Manager web link app. The fifth node is “VraVaSaveVidmCatalogAppIdTask” which saves the VMware Identity Manager catalog app ID for vRealize Automation in inventory. The sixth node is “FinalTask” which indicates the successful completion of the flow.
The edges represent the events that trigger the transition between the nodes. The first edge is “OnVraVaGenericInitialized” which is triggered when the vRealize Automation flow is initialized. The second and third edges are “OnVraVaCreateVidmAppCatalogInitiated” and “OnVraVaUpdateVidmAppCatalogInitiated” respectively, which are triggered when the creation and updation of the VMware Identity Manager app catalog for vRealize Automation are initiated. The fourth and fifth edges are “OnVidmWebLinkAppTaskCompletion” and “OnVidmUpdateWebLinkAppTaskCompletion” respectively, which are triggered when the creation and updation of the VMware Identity Manager web link app are completed. The last edge is “OnVraVaSaveVidmCatalogAppIdSuccess” which is triggered when the VMware Identity Manager catalog app ID is saved successfully in inventory.
Stage 9: Update environment details
PAYLOAD
{
"symbolicName" : "environmentupdate",
"displayName" : null,
"productVersion" : null,
"priority" : 8,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "environmentupdate",
"type" : null,
"componentVersion" : null,
"properties" : {
"environmentId" : "c2cf3afe428825379b1f59f6",
"requestType" : "CREATE_ENVIRONMENT",
"isVcfEnabledEnv" : "false",
"environmentName" : "vra8"
}
},
"priority" : 8
} ]
}
STEPS
{
"symbolicName": "environmentupdate",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Update environment details",
"displayKey": "vmf::sm::environmentupdate"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask",
"properties": {},
"uiProperties": {
"displayText": "Create Environment Inventory Update",
"displayKey": "vmf::sm::environmentupdate::node::c.v.v.l.d.c.t.i.CreateEnvironmentInventoryUpdateTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::environmentupdate::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnEnvironmentInventoryUpdateCompleted",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Environment Inventory Update complete",
"displayKey": "vmf::sm::environmentupdate::edge::name::OnEnvironmentInventoryUpdateCompleted::source::c.v.v.l.d.c.t.i.CreateEnvironmentInventoryUpdateTask"
}
}
]
}
TASKS FROM STEPS
- Create Environment Inventory Update com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask
The code reads various properties from the component specification, such as environment ID and whether locker references are required, and then updates the environment data and creates locker references and password links as necessary. The code also logs telemetry information about the update and injects an event when the update is completed. If an exception occurs during the update process, the code logs an error message but still injects the completion event.
The methods here are responsible for various tasks related to updating environment data, such as logging telemetry details related to licenses, removing unnecessary properties, and updating product references.
The updateEnvFromEnhancedData
method updates an EnvironmentDTO
object with enhanced data. If the EnvironmentDTO
object is not null, the enhanced request is set as the environment data, and the environment is updated using the environmentController
.
The logLicenseDetailsForTelemetry
method logs telemetry data related to licenses. It first retrieves an EnvironmentDTO
object and creates an EnvironmentRequestDTO
an object from its environment data. It then iterates through the list of products and extracts license information, logging this data if it is present and valid.
The removeUnnecessaryProperties
the method removes certain properties from an EnvironmentDTO
object’s environment data that are deemed unnecessary, specifically any __authenticationInfo
property from the infrastructure object.
The updateProductReferences
method updates product references in an environment. It creates ProductReferenceEntryDTO
objects and then creates an ProductReferenceMappingDTO
object with these entries. If the source and target references are not null, the ProductReferenceMappingDTO
object is used to update the environment’s product references.
The updateVropAdapterReferences
method updates product references specifically related to the VMware vRealize Operations (vROps) adapter. It first creates a list of ProductReferenceEntryDTO
objects for the source product references related to vROps. It then iterates through the list of products and checks whether a product has a property related to configuring the vROps adapter. If it does, a ProductReferenceEntryDTO
object is created for that product, and if the product is vidm
, a target ProductReferenceEntryDTO
object is also created. If the product can be deleted, its reference is removed. Finally, if a source and target reference exists, an ProductReferenceMappingDTO
object is created and used to update the environment’s product references.
The updateVrliLogForwardingReferences
method updates the references to vRealize Log Insight (vRLI) products for log forwarding configuration. It creates product reference entries for vRLI sources and targets and maps them using a ProductReferenceMappingDTO
. The updateAuthProviderProdReference
method updates the references to vRealize Automation (vRA) products for authentication provider configuration. It creates product reference entries for vRA destinations and maps them using a ProductReferenceMappingDTO
.
The constructMetaObject
the method constructs metadata for a product by extracting the product version and tenant ID (for vRealize Suite Lifecycle Manager vSphere Support Center) and returning it as a JSON string. The constructMetaDataObject method constructs metadata for a product based on its ID and node properties and returns it as a JSON string.
The createVidmProdMapping
, createVrliProductMapping
, and createVropsProductMapping
methods create product reference mappings between source and destination product reference entries for VMware Identity Manager (VIDM), vRLI, and vRealize Operations (vROps) Adapter Configuration, respectively. They return a ProductReferenceMappingDTO
that contains information about the references and their mapping.
The logNewEnvironmentDetails
, logNewNodeDetails
, and logNewProductDetails
methods log information about the new environment, node, and product details, respectively. They extract information from the provided JSON strings and call the logEnvironmentData
method to log the information.
The createLockerLicenseEntities
the method creates licenses for products in the environment. It first deserializes the environment data from a JSON string, then iterates through the products and calls the checkLicenseImport
method on each one. This method checks if the product has a “license-1” property, which indicates that it is an imported product that needs to be assigned a locker identifier. If so, it creates a locker license entity and stores the identifier in the prodprops
map for the product.
The checkLicenseImport
the method checks if a product has a license identifier and creates a locker license entity for it if not. It iterates through any license properties (license-1
, license-2
, etc.) found in the product’s properties and creates a license entity for each one. It adds the vmid
of each created license entity to a list, which is then stored in the prodprops
map for the product under the key “licenseVmid”.
The createLockerCertificateReferenceLinks
the method creates references to certificates in the locker system. It first deserializes the environment data from a JSON string and extracts the certificate identifier for the infrastructure (if any). It then iterates through the products in the environment and creates certificate reference entities for each one that has a certificate identifier. The getProductOrComponentCertificateVmid
and getComponentCertificateVmid
methods are used to determine the certificate identifier for each product and its components. The created certificate reference entities are stored in a list and then added to the locker system using the createReferences
method.
The createLockerPasswordReferenceLinks
the method creates references to passwords in the locker system. It first deserializes the environment data from a JSON string and iterates through the products. For each product, it retrieves the password keys for that product type using the getProductPasswordKeys method and the node password keys using the getNodePasswordKeys method. It then creates password reference entities for each password key found using the createReferenceForProduct method. The created password reference entities are stored in a list and then added to the locker system using the createReferences method. The updateProductPasswordReference method is used to update the enhanced request properties for each product with the corresponding password vmid.
updateNodePasswordReference: Updates locker references for password nodes based on the list of password keys provided.
createReferenceForProduct: Creates a LockerRefRequestDTO object for a product reference based on the given parameters.
createReferenceForNode: Creates a LockerRefRequestDTO object for a node reference based on the given parameters.
getProductOrComponentCertificateVmid: Gets the certificate VMID for a product or component.
getProductOrComponentPasswordVmid: Gets the password VMID for a product or component.
getNodePasswordVmid: Gets the password VMID for a node.
getComponentCertificateVmid: Gets the certificate VMID for a component.
createLockerLicenseReferenceLinks: Creates locker references for license nodes based on the products in the given environment.
logLicenseData: Logs license details for telemetry.
logEnvironmentData: Logs environment data for telemetry.
SHORT DESCRIPTION
This flow is called “environmentupdate” and is a state machine consisting of two nodes and one edge. The purpose of the flow is to update environment details.
The start state is “com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.CreateEnvironmentInventoryUpdateTask” and the finish state and error state are not specified.
The only edge is “OnEnvironmentInventoryUpdateCompleted” which goes from the start state to the final state, “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask”.
When the “Create Environment Inventory Update” task in the start state is completed, it triggers the event “OnEnvironmentInventoryUpdateCompleted” which then moves the flow to the final state.
Stage 10: Schedule notifications
PAYLOAD
{
"symbolicName" : "notificationschedules",
"displayName" : null,
"productVersion" : null,
"priority" : 9,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "notificationschedules",
"type" : null,
"componentVersion" : null,
"properties" : {
"action" : "register",
"isVcfUser" : "false",
"isVcfEnabledEnv" : "false",
"includeLcm" : "false"
}
},
"priority" : 9
} ]
STEPS
{
"symbolicName": "notificationschedules",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Schedule notifications",
"displayKey": "vmf::sm::notificationschedules"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask",
"properties": {},
"uiProperties": {
"displayText": "Schedule notifications",
"displayKey": "vmf::sm::notificationschedules::node::c.v.v.l.p.c.n.t.NotificationSchedulesTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask",
"properties": {},
"uiProperties": {
"displayText": "Register Notification Scheduler",
"displayKey": "vmf::sm::notificationschedules::node::c.v.v.l.p.c.n.t.RegisterNotificationSchedulerTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask",
"properties": {},
"uiProperties": {
"displayText": "Unregister Notification Scheduler",
"displayKey": "vmf::sm::notificationschedules::node::c.v.v.l.p.c.n.t.UnRegisterNotificationSchedulerTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask",
"properties": {},
"uiProperties": {
"displayText": "Delete notifications",
"displayKey": "vmf::sm::notificationschedules::node::c.v.v.l.p.c.n.t.DeleteNotificationsTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::notificationschedules::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnRegisterNotificationSchedulesTaskInitiated",
"source": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Register notification schedule initiated",
"displayKey": "vmf::sm::notificationschedules::edge::name::OnRegisterNotificationSchedulesTaskInitiated::source::c.v.v.l.p.c.n.t.NotificationSchedulesTask"
}
},
{
"name": "OnUnRegisterNotificationSchedulesTaskInitiated",
"source": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Unregister notification schedule initiated",
"displayKey": "vmf::sm::notificationschedules::edge::name::OnUnRegisterNotificationSchedulesTaskInitiated::source::c.v.v.l.p.c.n.t.NotificationSchedulesTask"
}
},
{
"name": "OnNotificationSchedulerRegistered",
"source": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Notification scheduler registered",
"displayKey": "vmf::sm::notificationschedules::edge::name::OnNotificationSchedulerRegistered::source::c.v.v.l.p.c.n.t.RegisterNotificationSchedulerTask"
}
},
{
"name": "OnNotificationSchedulerUnRegistered",
"source": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask",
"destination": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Notification scheduler unregistered",
"displayKey": "vmf::sm::notificationschedules::edge::name::OnNotificationSchedulerUnRegistered::source::c.v.v.l.p.c.n.t.UnRegisterNotificationSchedulerTask"
}
},
{
"name": "OnNotificationsDeleted",
"source": "com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Notifications deleted",
"displayKey": "vmf::sm::notificationschedules::edge::name::OnNotificationsDeleted::source::c.v.v.l.p.c.n.t.DeleteNotificationsTask"
}
}
]
}
TASKS FROM STEPS
- Schedule notifications com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask
The execute()
the method seems to be the main method that executes the logic for scheduling notification tasks. It initializes some variables, retrieves some information from a JSON string, creates a list of notification requests based on certain conditions, and sets the request list as a JSON string.
The createNotificationSpec()
and createUpgradeAndPatchNotificationSpec()
methods are helper methods that create notification requests based on certain input parameters. Both methods create an ScheduledEngineRequestDTO
object, set some properties on it, and return the object. These methods are used in the execute()
method to create the list of notification requests.
- Register Notification Scheduler com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask
The purpose of this method is to register a list of notifications with a service that handles notifications.
The method first reads the list of notification requests from the engineScheduleRequestDTOList
field and stores it in a local variable called notificationsScheduleRequestList
. If the list is empty, the method creates a new list with a single element, which is the engineScheduleRequestDTO
field.
The method then tries to schedule each notification request in the list using a service called engineScheduleRequestService
. If an exception is thrown during this process, the method prints the stack trace of the exception and continues.
Finally, the method injects an event to signal that the notification scheduler has been registered. If a nextState
field is set, the method injects an event with that state instead.
- Unregister Notification Scheduler com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask
For unregistering, the method first reads a list of ScheduledEngineRequestDTO
objects from a JSON string or uses a single object if the list is empty. It then loops through the list and tries to find each request by its target ID using engineScheduleRequestService.getScheduleRequestByRequestKey(dto.getTargetId())
. If it finds the request, it extracts the product and tenant IDs (if present) from its target ID and compares them to the values specified in the props
map. If the values match, the method deletes the request using engineScheduleRequestService.deleteScheduleRequest(er)
. If there are any exceptions, the method catches them, prints a stack trace, and emits an event. If there is a nextState
value, the method emits that event. Otherwise, it emits the OnNotificationSchedulerUnRegistered
event.
- Delete notifications com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask
the method retrieves information about the notifications to be deleted, including the product ID and tenant ID associated with the notifications. It then loops through the list of notifications, constructs a notification key, and uses it to retrieve information about the corresponding notifications from a NotificationController.
Depending on the type of notification, the method updates the notification’s state or description and then deletes it. Additionally, the method calls another method, “deleteEnvironmentHealthNotifications()”, to delete environment health notifications associated with the same environment IDs as the notifications being deleted.
Throughout the method, log statements are used to output information about the progress of the deletion process. Finally, the method calls “injectEvent()” to indicate that the notifications have been deleted.
SHORT DESCRIPTION
This is a state machine for scheduling and managing notifications. It has several states or nodes, each representing a specific task, and edges connecting them, which represent the events that trigger a transition from one state to another.
The start state is represented by the “com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask” node, which is responsible for scheduling notifications.
There are several other nodes representing tasks such as “com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask” for registering notification schedulers, “com.vmware.vrealize.lcm.plugin.core.notification.tasks.UnRegisterNotificationSchedulerTask” for unregistering notification schedulers, and “com.vmware.vrealize.lcm.plugin.core.notification.tasks.DeleteNotificationsTask” for deleting notifications.
Each of the edges connecting the nodes represents an event that triggers a transition from one state to another. For example, the “OnRegisterNotificationSchedulesTaskInitiated” edge connects the “com.vmware.vrealize.lcm.plugin.core.notification.tasks.NotificationSchedulesTask” node to the “com.vmware.vrealize.lcm.plugin.core.notification.tasks.RegisterNotificationSchedulerTask” node and represents the event of initiating a register notification schedule task.
The state machine ends with the “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask” node, which represents the end of the process.
Stage 11: configurecrossproducts
PAYLOAD
{
"symbolicName" : "configurecrossproducts",
"displayName" : null,
"productVersion" : null,
"priority" : 10,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "configurecrossproducts",
"type" : null,
"componentVersion" : null,
"properties" : {
"environmentId" : "c2cf3afe428825379b1f59f6"
}
},
"priority" : 10
} ]
}
STEPS
{
"symbolicName": "configurecrossproducts",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "configurecrossproducts",
"displayKey": "vmf::sm::configurecrossproducts"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask",
"properties": {},
"uiProperties": {
"displayText": "Inter Product Configuration",
"displayKey": "vmf::sm::configurecrossproducts::node::c.v.v.l.d.c.t.i.InterProductConfigurationTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SM_STATE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::configurecrossproducts::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnCrossProductConfigurationCompleted",
"source": "com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "On Cross Product Configuration Completed",
"displayKey": "vmf::sm::configurecrossproducts::edge::name::OnCrossProductConfigurationCompleted::source::c.v.v.l.d.c.t.i.InterProductConfigurationTask"
}
}
]
}
TASKS FROM STEPS
- Inter Product Configuration com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask
The method handles the configuration of various products in a cross-product environment.
The method begins by checking the component specifications and retrieving various properties. These properties include the environmentId
, monitorvRAWithvROps
, registervROpswithvRA
, and monitorvRNIWithvROps
. The method then logs the retrieved property values using the logger.info()
method.
After logging the retrieved property values, the method checks if the environmentId
is not null or empty. If it is not, it checks if monitorvRAWithvROps
is set to “true” and if it is, it calls the crossProductMonitorVraWithVrops()
method on this.environmentController
. The method then checks if registervROpswithvRA
is set to “true” and if it is, it calls the crossProductConfigureVropsAsWlpEndpoint()
method on this.environmentController
. Finally, the method checks if monitorvRNIWithvROps
is set to “true” and if it is, it creates an AdapterOperationsDTO
object sets the operation
and properties
properties, and calls the vROPSadapterOperation()
method on this.environmentController
.
If any of the above methods calls throw an exception, the method catches the exception and logs it using the logger.error()
method.
Finally, the method calls the injectEvent()
method with the “OnCrossProductConfigurationCompleted” event, regardless of whether or not any exceptions were thrown.
SHORT DESCRIPTION
This is a state machine called “configurecrossproducts” that has two nodes and one edge:
Nodes:
com.vmware.vrealize.lcm.drivers.commonplugin.task.inventory.InterProductConfigurationTask: This is the initial state of the state machine, which performs an inter-product configuration task.
com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask: This is the final state of the state machine, which represents the completion of the task.
Edge:
OnCrossProductConfigurationCompleted: This edge connects the initial and final states and represents the completion of the inter-product configuration task.
Stage 12: Save tenant information in inventory
PAYLOAD
{
"symbolicName" : "savetenantdetailsininventory",
"displayName" : null,
"productVersion" : null,
"priority" : 11,
"dependsOn" : [ ],
"components" : [ {
"component" : {
"symbolicName" : "savetenantdetailsininventory",
"type" : null,
"componentVersion" : null,
"properties" : {
"environmentId" : "c2cf3afe428825379b1f59f6"
}
},
"priority" : 11
} ]
}
STEPS
{
"symbolicName": "savetenantdetailsininventory",
"type": "STATEMACHINE",
"version": "1.0.0",
"startState": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask",
"finishState": "",
"errorState": "",
"properties": {},
"uiProperties": {
"displayText": "Save tenant information in inventory",
"displayKey": "vmf::sm::savetenantdetailsininventory"
},
"nodes": [
{
"symbolicName": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask",
"properties": {},
"uiProperties": {
"displayText": "Save tenant information in inventory",
"displayKey": "vmf::sm::savetenantdetailsininventory::node::c.v.v.l.p.c.v.t.VraVaSaveTenantDetailsTask"
}
},
{
"symbolicName": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"symbolicNameTxt": null,
"type": "SIMPLE",
"task": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"properties": {},
"uiProperties": {
"displayText": "Final",
"displayKey": "vmf::sm::savetenantdetailsininventory::node::c.v.v.l.p.a.s.t.FinalTask"
}
}
],
"edges": [
{
"name": "OnVraVaUpdateTenantDetailsInInventorySuccess",
"source": "com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask",
"destination": "com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask",
"type": "SM_EVENT",
"properties": {},
"uiProperties": {
"displayText": "Save tenant information in inventory complete",
"displayKey": "vmf::sm::savetenantdetailsininventory::edge::name::OnVraVaUpdateTenantDetailsInInventorySuccess::source::c.v.v.l.p.c.v.t.VraVaSaveTenantDetailsTask"
}
}
]
}
TASKS FROM STEPS
- Save tenant information in inventory com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask
The execute()
the method contains several try-catch blocks and a call-to logger.info()
the method that prints out various log messages. It seems to be performing some actions related to cross-product configuration and updating tenant details in an inventory.
It also uses several utility methods and objects such as JsonUtil
, EnvironmentDTO
, EnvironmentRequestDTO
, Product
, Node
, and PreludeEndpoint
to accomplish its tasks.
SHORT DESCRIPTION
This is a simple state machine flow with two nodes and one edge:
The first node is a task node named “com.vmware.vrealize.lcm.plugin.core.vra80.task.VraVaSaveTenantDetailsTask”, which is responsible for saving tenant information in the inventory.
The second node is a final node named “com.vmware.vrealize.lcm.platform.automata.service.task.FinalTask”, which represents the end of the state machine flow.
There is one edge named “OnVraVaUpdateTenantDetailsInInventorySuccess” that connects the first node to the final node. This edge is triggered when the “VraVaUpdateTenantDetailsInInventory” operation is successfully completed by the “VraVaSaveTenantDetailsTask” node.
ERROR CODES FROM THIS FLOW
Here I wanna describe all the error codes which are in those classes but not all I was able to understand or find correct information about them
LCMCOMMON10000
LCMCOMMON10002
LCMCOMMON10003
LCMVRAVACONFIG90027 – It is associated with an SSH authentication failure while validating the vRA VA OVA for Scaleout. This error code indicates that there is an issue with the SSH authentication credentials provided for accessing the vRA VA OVA file during the validation process. The solution for this error is to check and update the SSH authentication credentials and try the validation process again.
LCMVRAVACONFIG590001 – is an error code in vRealize Lifecycle Manager (vRLCM) that indicates an exception occurred while validating the vRealize Automation (vRA) virtual appliance (VA) OVA for Scaleout, specifically due to SSH being disabled. SSH is a protocol used to secure remote access to a machine, and if it’s disabled, it can prevent validation of the vRA VA OVA for Scaleout.
LCMVRAVACONFIG590065 – it indicates that the required OVA is not mapped, and provides an error message that states “The required OVA for the scale-out for vRA of version {version} is not mapped. Ensure the ovabundle is uploaded to vRSLCM and source mapped.”
LCMVRACONFIG50008 – is an error code in vRealize Suite Lifecycle Manager (vRSLCM), which indicates that the hostname of the vRealize Automation virtual appliance is invalid during the validation of the OVA for Scaleout. This error may occur if the hostname provided is incorrect or the virtual appliance is not reachable at the specified hostname.
LCMVRAVACONFIG590002 – This error may occur due to various reasons such as SSH authentication failure, VAMI host name invalid, or missing required OVA for the scale-out operation. The error message usually suggests trying the operation again after addressing the underlying cause.
LCMVRACONFIG50003 – refers to a situation where the vRealize Automation VA OVA validation for scale-out fails because the vRealize Automation VAMI hostname is not provided. This error code typically indicates a misconfiguration or missing information during the setup or configuration of the vRealize Automation environment
LCMVRACONFIG50002 – is an error code in vRealize Automation that indicates the VAMI (VMware Appliance Management Infrastructure) password is not provided when attempting to validate the vRA VA OVA for Scaleout. This error usually occurs when the VAMI password is not set or is invalid. To resolve this issue, the VAMI password should be checked and updated if necessary.
LCMVRAVACONFIG590003 – is an error code in vRealize Lifecycle Manager (vRLCM) that indicates an exception occurred while validating the vRealize Automation (vRA) virtual appliance (VA) OVA for Scaleout during deployment. This error typically occurs when the required OVA for the scaleout for vRA of a particular version is not mapped, or when an exception occurs during validation of the OVA.
LCMVRAVACONFIG590066 – is an error code related to the validation of a vRealize Automation VA OVA for scale-out. It indicates that the deployment for a particular product version is not supported by vRSLCM (vRealize Suite Lifecycle Manager).
LCMVRAVACONFIG590072 – is an error code that occurs during the deployment of vRealize Automation when the Service IP range is not provided, but it is required when the Cluster IP range is provided. The error code indicates that there is an issue with validating the Cluster and Service internal network range values.
LCMVRAVACONFIG590071 – refers to an error code in vRealize Automation (vRA) related to the validation of the vRA VA Cluster CIDR and Service CIDR during deployment. Specifically, the error occurs when the Cluster IP range is not provided while the Service IP range is provided
LCMVRAVACONFIG590074 – is an error code related to the validation of the vRealize Automation (vRA) Virtual Appliance (VA) Cluster CIDR and Service CIDR. This error occurs when the internal network range for services and clusters is of the same subnet or subnet one of another
LCMVRAVACONFIG590073 – is an error code related to vRealize Automation. Specifically, it is associated with a validation error that occurs during the process of validating the cluster CIDR and service CIDR for a vRA VA Cluster. The error indicates that there was a failure to validate the internal network range values, which can be caused by various issues such as missing or invalid values for the CIDR ranges, incorrect configuration properties, or other system errors
LCMVSPHERECONFIG1000074 – is an error code related to an invalid or missing product ID. This error occurs when the product ID provided is either incorrect or missing
LCMVSPHERECONFIG1000075 – is related to an invalid product version. This error occurs when the specified product version is not valid or is not provided during the deployment process.
LCMVSPHERECONFIG1000065 – refers to an error message related to an invalid virtual machine name. The error message indicates that the virtual machine name is empty and advises the user to provide a valid name and retry the operation
LCMVSPHERECONFIG1000066 – is an error code that indicates that the cluster details are not provided or are invalid. The error message suggests that the user needs to provide the cluster details and retry the operation. This error can occur during virtual machine deployment in a vSphere environment when the cluster information is not provided or is invalid.
LCMVSPHERECONFIG1000067 – refers to an error related to the datastore details not being provided during deployment on vSphere. The error message suggests providing the required details of the datastore to proceed with the deployment.
LCMVSPHERECONFIG1000069 – refers to an error that occurs when the provided network details are invalid. It may happen due to various reasons such as incorrect IP addresses, subnet masks, gateways, or missing network configurations altogether. To resolve this error, you should review the network configurations provided and ensure that they are valid and match the requirements of the deployment.
LCMVSPHERECONFIG1000056 – is an error code that suggests an issue with the vCenter credentials provided during the vSphere configuration. This error can occur due to various reasons, such as incorrect credentials, permission issues, or connectivity problems.
LCMVSPHERECONFIG100001 – is an error code that indicates an invalid vCenter username and/or password for vCenter. This error occurs when the provided credentials are incorrect, and the application is unable to authenticate with the vCenter server.
LCMVSPHERECONFIG1000011 – indicates that a URISyntaxException occurred while trying to log in to vCenter. This error occurs when the URI syntax for vCenter is incorrect or invalid. The possible cause for this error could be a typo or missing characters in the vCenter hostname, or a syntax error in the URL.
LCMVSPHERESYSTEM1000055 – is an error code used in the VMware vRealize Suite Lifecycle Manager (vRSLCM) product. This error code indicates that an unknown error has occurred while trying to parse the OVF file during the deployment process. The error message associated with this error code typically advises users to check the logs for more information. Possible causes for this error could include issues with the OVF file itself, such as missing or invalid configuration settings, or issues with the deployment environment, such as insufficient disk space or network connectivity problems. To troubleshoot this error, users may need to review the logs and gather additional information about the deployment environment and configuration settings to identify and resolve any underlying issues.
LCMVSPHERECONFIG1000038 – refers to an error that occurs when ESX host details are not provided or are invalid. The error message suggests that the ESX host details are missing or not specified correctly.
LCMVSPHERECONFIG1000041 – relates to the error that occurs when the network details provided for deployment are invalid or missing. The error message suggests that the user should provide valid network details and retry the operation.
LCMVSPHERECONFIG1000039 – is an error code that indicates invalid cluster details while validating the inputs for deployment in vSphere. This error occurs when the specified vSphere cluster is not valid or does not exist.
LCMVSPHERECONFIG1000040 – is an error code related to vSphere configuration issues. It indicates that the datastore details provided are incorrect or not available. This error can occur during vSphere deployment when the specified datastore is either not present or not accessible. It can also happen if the datastore name is misspelled or if the authentication credentials are incorrect.
LCMVSPHERECONFIG100008 – refers to an error that occurs when an invalid Managed Object ID (MOID) is provided during deployment validation. The MOID is a unique identifier assigned to each object in the vSphere environment. This error indicates that the MOID provided is either incorrect or does not correspond to an object in the vSphere environment.
LCMVSPHERECONFIG100009 – is related to an InvalidEntityTypeException that occurred while validating the inputs for a vSphere deployment. This exception is thrown when the type of entity passed to the method is not valid or is not supported. For example, if a method expects a virtual machine entity type but receives a folder entity type, then an InvalidEntityTypeException may be thrown.
LCMVSPHERECONFIG1000010 – is an error code related to an invalid property exception while validating the inputs for deployment in vSphere. The message associated with this error code is “Exception while validating the inputs for deployment. Error: VSPHERE_INVALIDPROPERTY_ERROR”. This error occurs when a required property for deployment in vSphere is not provided or is invalid. The possible reasons for this error can be incorrect input values or a mismatch between the input values and the property requirements
LCMVSPHERECONFIG1000042 – related to the resource pool not being provided, and the provided cluster not having any associated resource pool to deploy a virtual appliance. This could indicate that the cluster configuration is incomplete or incorrect, and the deployment process cannot proceed without a valid resource pool.
LCMVSPHERECONFIG1000078 – refers to an error related to vSphere deployment where the installer location is not provided. The error message indicates that the location of the OVA file is missing and the user is asked to provide the right OVA path and retry.
LCMVSPHERECONFIG1000073 – This error message refers to an invalid file error. It is likely that the file path provided to the OVA file is incorrect or the OVA file itself is corrupted
LCMVSPHERECONFIG1000016 – is an error code related to an Input/output (IO) exception that occurred while trying to read an OVA file during the validation of inputs for deployment. This error occurs when there is an issue with reading the OVA file required for deployment. It could happen due to the file not being found, a permissions issue, or any other issue that prevents the system from reading the OVA file.
LCMVSPHERECONFIG1000076 – The error message for this code is “Error occurred while trying to parse the OVF file”. It seems that the error is caused by an exception that is thrown when trying to parse the OVF file, possibly due to an issue with the format or content of the file. The error message indicates that the system was not able to read the OVF file due to an input/output exception, which may be related to a file permission issue or an issue with the file system. It could also be caused by an issue with the OVF file itself, such as a missing or corrupted file.
LCMVCCONFIG100008 – This error code is used when the method fails to find the virtual machine that was deployed using the supplied virtual machine ID (vmid). The method injects a failed event with this error code and a message that includes the vmid that was searched for but not found.
LCMVCCONFIG100006 – this error code is used when the method fails to connect to the vCenter host due to invalid host details. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), and “LCM_INVALID_HOST_ERROR” (a message code for localization).
LCMVCCONFIG100005 – this error code is used when the method fails to authenticate with the vCenter due to invalid credentials. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), and “LCM_INVALID_HOST_ERROR” (a message code for localization).
LCMVCSACONFIG100009 – this error code is used when the method encounters an invalid library item ID while attempting to query an OVF package for deployment specifications. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), and “VSPHERE_CREATELIBITEM_00002” (a message code for localization).
LCMVCCONFIG100012 – this error code is used when the method encounters a duplicate virtual machine name error while attempting to deploy an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), and a nested exception message.
LCMVCCONFIG100007 – this error code is used when the method encounters a failure while attempting to deploy a virtual machine using the OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), and a nested exception message.
LCMVCCONFIG100011 – this error code is used when the method encounters invalid network details while attempting to deploy a virtual machine using an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), “VSPHERE_DEPLOYOVF_00004” (a message code for localization), and an array of additional parameters including the network name and product ID.
LCMVCCONFIG100010 – this error code is used when the method encounters invalid storage details while attempting to deploy a virtual machine using an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), “VSPHERE_DEPLOYOVF_00006” (a message code for localization), and null (since there are no additional parameters).
LCMVCCONFIG100016 – this error code is used when the method encounters a resource inaccessible exception. The method injects a failed event with this error code and the parameter (Throwable)e
(the exception that was caught), and a nested exception message. The null
value in the second parameter is for an array of parameters that could be used to retry the operation, but since there are none in this case, it is set to null
.
LCMVCCONFIG100014 – this error code is used when the method encounters a socket timeout exception while attempting to deploy a virtual machine using an OVF package from a content library. The method injects a failed event with this error code and the parameters true
(indicating that the operation should be retried), new SocketTimeoutException("Connection timed out while trying to deploy OVF using Content Library Item. Please retry after some time.")
(the exception that was caught), “VSPHERE_DEPLOYOVF_00007” (a message code for localization), and null (since there are no additional parameters).
LCMVSPHERECONFIG1000063 – this error code is used when the method encounters insufficient privileges exception while attempting to deploy a virtual machine using an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), “VSPHERE_DEPLOYOVF_00008” (a message code for localization), and an array of additional parameters including the folder name.
LCMVCCONFIG100017 – this error code is used when the method encounters an unauthorized exception while attempting to deploy a virtual machine using an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), (Throwable)e
(the exception that was caught), “VSPHERE_DEPLOYOVF_00009” (a message code for localization), and null (since there are no additional parameters).
LCMVCCONFIG100013 – this error code is used when the method encounters an unexpected exception while attempting to deploy a virtual machine using an OVF package. The method injects a failed event with this error code and the parameters retryParams
(a list of parameters to retry the operation), e
(the exception that was caught), “VSPHERE_DEPLOYOVF_00010” (a message code for localization), and null (since there are no additional parameters).
LCMVSPHERECONFIG1000034 – it is used in a catch block that catches a “ConcurrentAccess” exception. The exception message is logged as part of an error message, along with the error code, which is set in the “DEPLOY_OVF_ERROR_CODE” property of a component specification object
LCMVSPHERECONFIG1000014 – it is used in a catch block that catches an “InvalidState” exception. The exception message is logged as part of an error message, along with the error code, which is set in the “DEPLOY_OVF_ERROR_CODE” property of a component specification object
LCMVSPHERECONFIG1000043 – it is used in a catch block that catches an “ImportSpecCreationException” exception. The error message associated with this error code is set by calling the “getProductSpecificErrorMessage” method of a “DeployHelper” object and passing in the exception message and the product ID obtained from the component specification object. The resulting error message is then logged along with the error code and a list of retry parameters, which are obtained from the component specification object
LCMVSPHERECONFIG1000064 – it is used in a catch block that catches a “VsphereNoHostFoundException” exception. The error message associated with this error code is set by calling the “getProductSpecificErrorMessage” method of a “DeployHelper” object and passing in the exception message and the product ID obtained from the component specification object. The resulting error message is then logged along with the error code and a list of retry parameters, which are obtained from the component specification object. The error message suggests that there are no hosts with deployment permissions in the vCenter server for the specified vCenter user, and provides instructions on how to resolve the issue
LCMVSPHERECONFIG1000071 – it is used in a conditional statement to check whether the response status from an OVF deployment contains the word “error”. If it does, an error message is logged along with the error code, which suggests that the lease initiation failed while deploying the product specified in the component specification object. The error message includes the product ID and the response status obtained from the deployment process.
LCMVSPHERECONFIG1000046 – is associated with the message “The deployed VM was not found in the VC post-deployment for post-deployment actions”. This error occurs when the deployed VM is not found in the vSphere Virtual Center after deployment, and it prevents any post-deployment actions from being taken.
LCMVSPHERECONFIG1000012 – error code indicates an error occurred while uploading VMDKs to vCenter, and the cause of the error is related to the FileFault exception. The error message suggests that there was an issue with the file or files being uploaded, and the specific message associated with the FileFault exception should provide more information about the cause of the problem. To resolve this issue, you may want to check the VMDK files being uploaded to ensure they are not corrupt or damaged. Additionally, you may want to check if the vCenter Server has sufficient disk space to store the uploaded files. It is also recommended to check if there are any network issues that could be causing the problem.
LCMVSPHERECONFIG1000029 – It occurs when an error happens while uploading virtual machine disks to the vCenter datastore, and the error is caused by an out-of-bounds exception. The error message associated with this code is “Error while uploading vmdks to vCenter. Error: OutOfBounds”. It suggests that there is an issue with the virtual machine’s disk files, and they cannot be properly uploaded to the vSphere environment.
LCMVSPHERECONFIG1000017 – error code is related to Insufficient Resources Fault that occurs when there are not enough resources (such as CPU, memory, or storage) available to perform an operation in the vCenter server. This error can be caused by a variety of factors, including an overload of the virtual infrastructure or a lack of available resources on the physical hosts.
LCMVSPHERECONFIG1000018 – is an error code used in the VMware vSphere infrastructure to indicate a virtual machine configuration fault during deployment. This error code can occur when deploying an OVF (Open Virtualization Format) package to a VMware vSphere environment.
LCMVSPHERECONFIG1000030 – is an error code related to the vSphere configuration in the VMware vRealize Suite. It indicates that there was an error while deploying a VM to the vCenter server because the VM name was invalid or already exists in the vCenter server. The error message associated with this error code is “Invalid vm name.”
LCMVSPHERECONFIG1000028 – is an error code related to vSphere configuration. It indicates that the VM name provided during OVF deployment is invalid or already exists in the vCenter Server. The error message that accompanies this error code is “Invalid vm name” and suggests that the provided VM name is either invalid or already exists
LCMVSPHERECONFIG1000087 – is an error code related to the vSphere configuration process. It indicates that an invalid argument was provided while trying to deploy an OVF package to the vSphere environment. The error message suggests checking the input parameters for correctness and retrying the deployment.
LCMVSPHERECONFIG1000013 – refers to the “VSPHERE_TASKINPROGRESS_ERROR” error, which occurs when a task is already in progress and cannot be started again. This error can occur during the deployment of an OVF package in vSphere. It usually indicates that a previous deployment attempt is still in progress and needs to be completed or canceled before starting a new deployment.
LCMVSPHERECONFIG1000070 – is an event code that refers to a failure in powering on a virtual machine during a deployment process in a VMware vSphere environment. It could be caused by various reasons, such as insufficient resources, invalid configuration, or unexpected errors. When this event occurs, the deployment process cannot proceed further,
LCMVSPHERECONFIG1000022 – an event that indicates a failure in checking the guest tools status of a virtual machine (VM) in vSphere during deployment. The event is triggered by the “GuestToolsStatusCheckTask” in the LCM plugin core for vSphere tasks. This event typically occurs when the guest tools are not running in the deployed VM, which can cause issues with various system functionalities. The task retries to check the guest tools status based on the wait time and retry count specified in the configuration properties.
LCMVSPHERECONFIG1000048 – is an error code that corresponds to an exception that occurs while checking the hostname and IP status of a virtual machine in a vSphere environment. This error code is thrown when there is an issue with the URI syntax. The possible causes of this error code could be an invalid URI or a malformed URI that cannot be parsed.
LCMVSPHERECONFIG1000044 – is an error code related to checking the Hostname and IP status of a Virtual Machine in vSphere during a deployment. This error occurs when there is an issue with the Virtual Machine object identifier (moid), which is used to retrieve information about the Virtual Machine from vSphere. The error message associated with this code is “Error while checking Hostname and IP status. Error:{}”. Possible causes for this error could include an incorrect or invalid moid being passed to the function that checks the Hostname and IP status, or an issue with the vSphere connection that prevents the moid from being retrieved correctly.
LCMVRAVACONFIG590004 – The error message associated with this code suggests that the deployment has failed at the first boot check on the vRA VA with a specific hostname. The message may also indicate that an NTP server was provided but failed to be set up correctly during the deployment.
LCMVRASYSTEM55033 – is an error code that indicates that there was an error while trying to delete a virtual machine during a retry operation in the context of vRA VA deployment. The error message suggests that the virtual machine could not be deleted and that the user should delete it manually and retry the deployment.
LCMVRACONFIG50014 – is related to an “Invalid Locale” error that occurred while deploying vRA VA. This error indicates that the specified locale is not valid or not supported.
LCMVRACONFIG50015 – is an error code that relates to a failed deployment of vRealize Automation (vRA) Virtual Appliance due to an invalid login. This error code suggests that the login credentials provided for the vSphere environment are incorrect or invalid.
LCMVRASYSTEM55013 – refer to an “Invalid MoID Exception” in the context of vRealize Automation. MoID stands for Managed Object ID and refers to a unique identifier assigned to each managed object in a VMware environment. This error can occur when the vRealize Automation system is unable to locate a particular managed object in the VMware environment using the specified MoID.
LCMVRASYSTEM550115 – indicates an “InvalidEntityTypeException” exception while deploying a vRealize Automation virtual appliance (vRA VA). This could occur when the type of entity being referenced in the deployment process is not valid or recognized by the system.
LCMVRASYSTEM55009 – indicates an issue with an invalid property being provided or accessed during the deployment or configuration of a vRA (VMware vRealize Automation) environment. This could be due to various reasons, such as incorrect configuration settings, missing or outdated components, or a problem with the deployment or configuration process itself.
LCMVRASYSTEM55017 – is related to an issue with the Uniform Resource Identifier (URI) syntax, which means that the format of the URI is not correct. This error can occur in various situations, such as when trying to connect to a server using an invalid URI or when parsing a URI that has an incorrect format. It may also occur when there are encoding issues with the URI, or if it contains illegal characters.
LCMVRASYSTEM55032
LCMVRAVACONFIG590007 – is an error code related to setting the license for vRealize Automation Virtual Appliance (vRA VA). The error occurs when the license key provided is not valid or there is an issue while setting the license on vRA VA. It is typically thrown when the VraPreludeInstallHelper.setLicense() method fails to set the license.
LCMVRAVACONFIG90039 – is an error code used in the context of vRealize Automation (vRA) configuration tasks. It indicates that an error occurred while validating a certificate on a vRA virtual appliance (VA) hostname.
LCMVRAVACONFIG590040 – is an error code in the vRealize Automation (vRA) installation and configuration process. It indicates that an exception occurred while validating the certificate on the vRA VA (vRealize Automation virtual appliance) hostname. This error code may be accompanied by a message that provides more details about the specific nature of the exception.
LCMVRAVACONFIG590042 – is an error code related to an exception that occurs while validating a certificate on vRA VA. Specifically, it is related to an IOException, which may occur if there is a problem with the input or output stream of data when communicating with the vRA VA during the validation process.
LCMVRAVACONFIG590041 – is an error code related to the vRA certificate validation task. It indicates that an unexpected exception occurred while validating the certificate on the vRA virtual appliance (VA), which could be caused by various reasons such as SSH authentication failure, certificate exception, IO exception, or LCM exception. This error requires further investigation and troubleshooting to identify the root cause of the issue and resolve it.
LCMVRAVACONFIG590021 – is a code or error message in a software system related to the import of a vRA (VMware vRealize Automation) certificate. The error message indicates that the vRA VA (vRealize Automation Virtual Appliance) details, such as the hostname and root password, have not been provided, and therefore the certificate import task cannot be completed successfully.
LCMVRAVACONFIG590022 – is an error code related to the vRA (VMware vRealize Automation) installation process. This error indicates that the certificate details are not present or incorrect, specifically the certificate chain or private key in the input parameter is blank. This can happen when the user is trying to import a certificate but has not provided the necessary details or if the details are not in the correct format.
LCMVRAVACONFIG590020 – is an error code related to a vRA (VMware vRealize Automation) certificate installation task. It indicates that an exception occurred while applying a certificate on a vRA HostName. The full error message is “Exception occurred while applying Certificate on vRA HostName: <hostname>”. The potential causes of this error could be invalid certificate details or other unexpected exceptions that may occur during the installation process.
LCMVIDM71129 – is related to a missing mandatory property for the vIDM (VMware Identity Manager) instance availability check task in the VMware Lifecycle Manager (LCM). The error message indicates that certain mandatory properties are missing, and it provides instructions on how to fix the error. If it is a clustered vIDM setup, the message advises providing the vIDM load balancer’s FQDN (fully qualified domain name). In case of a single node, it advises providing the vIDM appliance FQDN.
LCMVIDM71020 – is a code that refers to a failure event in the vIDM instance availability check task. Specifically, it indicates that an exception occurred while checking connectivity to vIDM, causing the task to fail.
LCMVIDM71022 – is a failure event code in the context of the vIDM health check task in VMware’s Lifecycle Manager (LCM). This error occurs when LCM fails to obtain a vIDM login token after maximum retries. The message associated with this error suggests validating the vIDM admin credentials and retrying the operation. This error may occur due to incorrect or outdated credentials or when the vIDM admin account gets locked after three wrong attempts.
LCMVIDM70000 – is a failure event that occurs when the vIDM health check task fails to log in to the vIDM instance using the provided admin user credentials. The error message indicates which properties are missing or incorrect and recommends validating the values and retrying the operation. Possible causes for this failure could include incorrect values for the “masterVidmHostName”, “masterVidmAdminUserName”, or “masterVidmAdminPassword” properties, or issues with the vIDM instance itself such as network connectivity problems.
LCMVIDM73101 – is an error code thrown by the VMware Identity Manager (vIDM) during the vIDM health check task. The error message associated with this error code is “Couldn’t get vIDM health status after max retries”.This error code indicates that the vIDM health check task failed to obtain the health status of vIDM after reaching the maximum number of retries. This could happen due to various reasons, such as network issues, incorrect credentials, or vIDM service downtime.
LCMVRAVACONFIG590005 – is an error code related to the vRA Set LB Task. This error occurs when the task fails to set the load balancer on the vRA HostName. The error message associated with this code is “Failed to set Load Balancer on vRA HostName.” Possible reasons for this error could be incorrect credentials provided for accessing the vRA server, insufficient permissions to perform the task, or issues with the load balancer itself. It is recommended to check the logs for more details and verify that the load balancer is configured correctly. If the issue persists, it is advisable to contact the relevant support team for further assistance.
LCMVRAVACONFIG590008 – is an error code related to the vRealize Automation (vRA) product. This error occurs when there is a failure while setting the VMware Identity Manager (vIDM) host on the vRA virtual appliance (VA).
LCMVRAVACONFIG590096 – related to an exception being thrown when attempting to fetch the vIDM certificate during the process of setting up vIDM on a vRA VA. This can be caused by various issues such as network connectivity problems or permission issues. The recommended action would be to review the logs and troubleshoot the root cause of the exception.
LCMCOMMON80083 – is an error code used in the vRealize Suite Lifecycle Manager (vRSLCM) platform. This error code is associated with the message “Product ID found to be null or empty. Retry the task with product ID.” It indicates that the product ID is either null or empty and advises the user to retry the task with a valid product ID.
LCMCOMMON80023 – The method logs an error message and injects a failed event with this error code if a TaskInProgress
an exception is caught while finding the virtual machine for a host.
LCMCOMMON80022 – The method logs an error message and injects a failed event with this error code if an InvalidState
or InsufficientResourcesFault
an exception is caught while finding the virtual machine for a host.
LCMCOMMON80005 – The method logs an error message and injects a failed event with this error code if an InvalidLocale
exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the locale when trying to fetch vMoid the appliance and suggests retrying the task after ensuring that the appliance is reachable.
LCMCOMMON80004 – The method logs an error message and injects a failed event with this error code if a FileFault
exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with a file when trying to fetch vMoid
the appliance and suggests retrying the task after ensuring that the appliance is reachable.
LCMCOMMON80006 – The method logs an error message and injects a failed event with this error code if an InvalidLogin
exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the login credentials when trying to fetch vMoid the appliance and suggests retrying the task after ensuring that the login credentials are correct and the appliance is reachable.
LCMCOMMON800011 – The method logs an error message and injects a failed event with this error code if an InvalidMoidException
an exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the provided moid
(managed object ID) when trying to fetch the vMoid
of the appliance and suggests retrying the task after ensuring that the provided moid
is correct and the appliance is reachable.
LCMCOMMON800012 – The method logs an error message and injects a failed event with this error code if an InvalidEntityTypeException
exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the type of entity when trying to fetch vMoid
the appliance and suggests retrying the task after ensuring that the provided entity type is correct and the appliance is reachable.
LCMCOMMON800010 – The method logs an error message and injects a failed event with this error code if an InvalidProperty
exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the provided property when trying to fetch vMoid
the appliance and suggests retrying the task after ensuring that the provided property is correct and the appliance is reachable.
LCMCOMMON800013 – The method logs an error message and injects a failed event with this error code if an URISyntaxException exception is caught while finding the virtual machine for a host. The error message indicates that there was an issue with the URI syntax when trying to fetch vMoid the appliance and suggests retrying the task after ensuring that the URI is correct and the appliance is reachable.
LCMCOMMON80082 – The method logs an error message and injects a failed event with this error code if there is an exception thrown while fetching vMoid the appliance, which cannot be handled by other catch blocks. The error message suggests ensuring that the appliance is reachable and retrying the task or skipping it by passing a parameter, depending on the requirements.
LCMVRAVACONFIG590076 – This error code indicates that an exception occurred while saving internal network range details for a vRA virtual appliance to vRealize Lifecycle Manager Inventory. The error message associated with this code is “Failed to save internal network range details for vRealize Automation to vRealize Lifecycle Manager Inventory”. This error could be caused by a variety of issues, such as a network connectivity problem between the vRA virtual appliance and the vRealize Lifecycle Manager Inventory server, a misconfiguration of the virtual appliance, or an issue with the vRealize Lifecycle Manager Inventory server itself.
LCMVRAVACONFIG590057 – is an error code that occurs when a mandatory parameter, cafeHostNamePrimary
is missing while preparing to create/update the vIDM App Catalog for vRA VA. This error code is used to indicate that the vIDM catalog application could not be created or updated due to the missing mandatory parameter. The error message typically suggests checking if the cafeHostNamePrimary
parameter is correctly set and retrying the operation.
LCMVRAVACONFIG590067 – is a failed event code that indicates an exception occurred while preparing the vRA create/update vIDM App Catalog task. The error message suggests that the task has failed due to an unexpected exception. It’s likely that there was an issue with the configuration or some unexpected behavior that resulted in an error. Further debugging and investigation may be required to determine the root cause of the problem.
LCMVIDM70002 – event code that indicates an error occurred due to invalid or missing details while creating a web link application in vIDM. The error message associated with this event code is “Invalid WebLink Application details” and provides the names of the mandatory properties that are missing or invalid. The event suggests reviewing the input properties to ensure that the mandatory properties are provided with valid values.
LCMVIDM70001 – It indicates that the vIDM server was unable to create the specified WebLink Application and the reason for the failure is unknown. Possible reasons could include invalid input parameters, incorrect credentials, or issues with the vIDM server.
LCMVRAVACONFIG590068 – is a localized error message code in the vRealize Automation (vRA) VA configuration module, indicating a failure to save the vIDM catalog app ID for vRA VA to inventory. The error message associated with this code is “Failed to save vIDM catalog app id for vRA VA to inventory”. This error can occur due to various reasons such as incorrect inventory settings, authentication issues, or connectivity problems.