Validate if the VDS version is above the minimum supported version
DEBUG [vcf_dm,68#################c6,a018] [c.v.e.s.o.c.c.ContractParamBuilder,dm-exec-5] Contract task Validate if the VDS version is above the minimum supported version input: {"listOfVds":[{"name":"dc01-####-####-vds02","mtu":1500,"portGroups":[],"niocs":[{"network":"management","level":"normal","value":50},{"network":"faultTolerance","level":"normal","value":50},{"network":"vmotion","level":"normal","value":50},{"network":"virtualMachine","level":"high","value":100},{"network":"iSCSI","level":"normal","value":50},{"network":"nfs","level":"normal","value":50},{"network":"hbr","level":"normal","value":50},{"network":"vsan","level":"normal","value":50},{"network":"vdp","level":"normal","value":50}],"clusterIds":["8e10####-####-####-####-########9ba2"],"version":"8.0.3","isUsedByNsxt":false,"nsxtSwitchConfig":{"transportZones":[{"name":"dc01-####-##-####-backup","id":"dc01-####-##-####-backup","transportType":"VLAN"}],"hostSwitchOperationalMode":"STANDARD"},"id":"7113####-####-####-####-########4461"}],"clusterId":"8e10####-####-####-####-########9ba2"}
DEBUG [vcf_dm,68#################c6,a018] [c.v.e.s.c.s.a.i.InventoryServiceAdapterImpl,dm-exec-5] Fetching VDS for cluster with ID 8e10####-####-####-####-########9ba2 from inventory
DEBUG [vcf_dm,68#################c6,a018] [c.v.v.c.f.a.ValidateVdsVersionAction,dm-exec-5] Minimum version: null
DEBUG [vcf_dm,68#################c6,a018] [c.v.v.c.f.a.ValidateVdsVersionAction,dm-exec-5] VDS dc01-####-####-vds02 version is 8.0.3
ERROR [vcf_dm,68#################c6,a018] [c.v.e.s.o.model.error.ErrorFactory,dm-exec-5] [E9QHU3] VCF_ERROR_INTERNAL_SERVER_ERROR Invocation of prefix '' part of task ValidateVdsVersionAction in plugin ClusterManagerPlugin failed with exception.
com.vmware.evo.sddc.common.core.error.InternalServerErrorException: Invocation of prefix '' part of task ValidateVdsVersionAction in plugin ClusterManagerPlugin failed with exception.
at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.invokeMethod(ProcessingTaskSubscriber.java:447)
at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.processTask(ProcessingTaskSubscriber.java:520)
at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.accept(ProcessingTaskSubscriber.java:124)
at jdk.internal.reflect.GeneratedMethodAccessor1377.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:85)
at com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Subscriber.java:71)
at com.vmware.vcf.common.tracing.TraceRunnable.run(TraceRunnable.java:59)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: null
DEBUG [vcf_dm,68#################c6,a018] [c.v.e.s.o.c.ProcessingTaskSubscriber,dm-exec-5] Collected the following errors for task with name ValidateVdsVersionAction and ID 1e35####-####-####-####-########b9dc: [ExecutionError [errorCode=null, errorResponse=LocalizableErrorResponse(messageBundle=com.vmware.evo.sddc.common.core.error.messages)]]
VMware Cloud Foundation
The issue is observed when the version of the VDS is missing in the SDDC database
Follow the steps below to update the VDS table to resolve the issue:
psql -h localhost -U postgres -d platform -c "select id,name from cluster where name='<name of the cluster>'"
Sample
psql -h localhost -U postgres -d platform -c "select id,name from cluster where name='vcf-gs-mgm-c01'"
Sample output
id | name
--------------------------------------+----------------
8e10####-####-####-####-########9ba2 | vcf-gs-mgm-c01
psql -h localhost -U postgres -d platform -c "select * from cluster_and_vds where cluster_id='<id from step #3>'"
Sample
psql -h localhost -U postgres -d platform -c "select * from cluster_and_vds where cluster_id='8e10####-####-####-####-########9ba2'"
Sample output
id | cluster_id | vds_id
------+--------------------------------------+--------------------------------------
2##5 | 8e10####-####-####-####-########9ba2 | 1e35####-####-####-####-########b9dc
psql -h localhost -U postgres -d platform -c "\x" -c "select id,name,version from vds where id='<vds_id from step#4>'"
Sample
psql -h localhost -U postgres -d platform -c "\x" -c "select id,name,version from vds where id='1e35####-####-####-####-########b9dc'"
Sample output
id | 1e35####-####-####-####-########b9dc
name | dc01-####-####-vds01
version |
Note: version is missing in the above output
psql -h localhost -U postgres -d platform -c "update vds set version='<vds version identified from step# 6>' where id='<vds id from step# 5>'"
Sample
psql -h localhost -U postgres -d platform -c "update vds set version='8.0.3' where id='1e35####-####-####-####-########b9dc'"
In scenarios, where the NSX Manager cluster was upgraded manually (out-of-band) or via the NSX Manager UI directly. Consequently, the SDDC Manager inventory still displays the old NSX version, preventing further lifecycle management operations and causing version mismatch errors.
Follow below mentioned steps to manually update the platform database to reflect the current NSX version. This involves accessing the PostgreSQL instance on the SDDC Manager appliance, locating the specific NSX cluster record via its FQDN, and patching the version field.
psql -h localhost -U postgres -d platform\x\dt nsxt\d nsxtselect status, version , cluster_fqdn from nsxt;update nsxt set version='<>' where cluster_fqdn='<>';