Everpure has identified an issue using PowerCLI versions 12.0 and 12.1 when running commands that query the Storage Providers that are registered in vCenter.
Everpure is working with VMware to root cause and fix the issue for a future release of PowerCLI.
For example, cmdlets such as
Get-VasaStorageArray and
Get-SpbmReplicationGroup will fail with the error
"Object reference not set to an instance of an object."
> Get-VasaStorageArray
Get-VasaStorageArray: 1/5/2021 4:48:07 PM Get-VasaStorageArray Object reference not set to an instance of an object.
> Get-SpbmReplicationGroup
Get-SpbmReplicationGroup: 1/5/2021 2:58:44 PM Get-SpbmReplicationGroup Object reference not set to an instance of an object.
In order to trigger this issue a vCenter Server will have a FlashArray's VASA providers registered as storage providers, but there can not have been a storage provider failover that has occurred after these providers have been registered.
The issue appears to be tied with the queryProviders call that is made to vCenter as part of these cmdlets. Specifically PowerCLI is not populating details for the standby storage provider. As PowerCLI is leaving values null on the standby provider, PowerShell is unable to parse the provider response and the null values as part of the query which will cause an failure in PowerShell with the object reference not set. This can be checked with PowerShell by issuing a Get-VasaProvider and pipe it to format-list.
Let's compare what we see with PowerCLI 11.1 and then PowerCLI 12.1:
PowerCLI 11.1
> Get-VasaProvider | format-list
Version : 1.1.1
Description :
LastSyncTime : 1/5/2021 4:33:43 PM
Namespace : com.purestorage
ProviderId : d79af7f6-ee6a-4be4-8d8a-06ae62a67212-0
Status : online
SupportedProviderProfile : {ProfileBasedManagementProfile, ReplicationProfile}
Url : https://10.21.149.61:8084/version.xml
VasaVersion : 3.0
ProviderType : Persistence
Name : sn1-m20r2-c05-36-ct0
Id : VasaProvider-vasaProvider-158
Uid : /VIServer=purecloud\alex@10.21.202.43:443/VasaProvider=VasaProvider-vasaProvider-158/
Version : 1.1.1
Description :
LastSyncTime :
Namespace : com.purestorage
ProviderId : d79af7f6-ee6a-4be4-8d8a-06ae62a67212-1
Status : online
SupportedProviderProfile : {ProfileBasedManagementProfile, ReplicationProfile}
Url : https://10.21.149.62:8084/version.xml
VasaVersion : 3.0
ProviderType : Unknown
Name : sn1-m20r2-c05-36-ct1
Id : VasaProvider-vasaProvider-159
Uid : /VIServer=purecloud\alex@10.21.202.43:443/VasaProvider=VasaProvider-vasaProvider-159/
PowerCLI 12.1
> Get-VasaProvider | format-list
Version : 1.1.1
Description :
LastSyncTime : 1/5/2021 4:33:43 PM
Namespace : com.purestorage
ProviderId : d79af7f6-ee6a-4be4-8d8a-06ae62a67212-0
Status : online
SupportedProviderProfile : {ProfileBasedManagementProfile, ReplicationProfile}
Url : https://10.21.149.61:8084/version.xml
VasaVersion : 3.0
ProviderType : Persistence
Name : sn1-m20r2-c05-36-ct0
Id : VasaProvider-vasaProvider-158
Uid : /VIServer=purecloud\alex@10.21.202.43:443/VasaProvider=VasaProvider-vasaProvider-158/
Version :
Description :
LastSyncTime :
Namespace :
ProviderId :
Status :
SupportedProviderProfile :
Url :
VasaVersion :
ProviderType :
Name :
Id : VasaProvider-vasaProvider-159
Uid : /VIServer=purecloud\alex@10.21.202.43:443/VasaProvider=VasaProvider-vasaProvider-159/
Notice that with PowerCLI 11.1 that the standby provider still has the information populated whereas with PowerCLI 12.1 only the Id and Uid have values populated.