From aa8c2fcad4de93d2c6c783f5d7a4e8b27268c18b Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Tue, 2 May 2023 09:37:14 -0400 Subject: [PATCH] refactor: isolated workload domains - Updated `Request-VcenterAuthentication` to support isolated workload domains. - Updated `Request-DatastoreStorageCapacity` to support isolated workload domains. - Updated `CHANGELOG.md`. - Updated module version from v2.1.0.1002 to v2.1.0.1003. Ref: #106 Signed-off-by: Ryan Johnson --- CHANGELOG.md | 5 +++ VMware.CloudFoundation.Reporting.psd1 | 2 +- VMware.CloudFoundation.Reporting.psm1 | 53 ++++++++++++++------------- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b1a7fc9..749c93a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,11 @@ Enhancement: - Updated `Invoke-VcfHealthReport` to include the hardware compatibility health using the `Publish-HardwareCompatibilityHealth` cmdlet. [GH-129](https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting/pull/129) - Added component size checks for vCenter Server instances and NSX Local Manager clusters to the overview report. [GH-130](https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting/pull/130) +Refactor: + +- Updated `Request-VcenterAuthentication` to support isolated workload domains. [GH-131](https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting/pull/131) +- Updated `Request-DatastoreStorageCapacity` to support isolated workload domains. [GH-131](https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting/pull/131) + ## [v2.0.0](https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting/releases/tag/v2.0.0) > Release Date: 2023-04-25 diff --git a/VMware.CloudFoundation.Reporting.psd1 b/VMware.CloudFoundation.Reporting.psd1 index c01192f9..5104ce7d 100644 --- a/VMware.CloudFoundation.Reporting.psd1 +++ b/VMware.CloudFoundation.Reporting.psd1 @@ -12,7 +12,7 @@ RootModule = '.\VMware.CloudFoundation.Reporting.psm1' # Version number of this module. - ModuleVersion = '2.1.0.1002' + ModuleVersion = '2.1.0.1003' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/VMware.CloudFoundation.Reporting.psm1 b/VMware.CloudFoundation.Reporting.psm1 index 18e1ecef..268b43d3 100644 --- a/VMware.CloudFoundation.Reporting.psm1 +++ b/VMware.CloudFoundation.Reporting.psm1 @@ -4341,7 +4341,7 @@ Function Request-DatastoreStorageCapacity { if (Test-VCFAuthentication -server $server -user $user -pass $pass) { $customObject = New-Object System.Collections.ArrayList $vcenter = (Get-VCFWorkloadDomain | Where-Object { $_.name -eq $domain }).vcenters - $vcfVcenterDetails = Get-vCenterServerDetail -server $server -user $user -pass $pass -domainType MANAGEMENT + $vcfVcenterDetails = Get-vCenterServerDetail -server $server -user $user -pass $pass -domain $domain if (Test-VsphereConnection -server $($vcenter.fqdn)) { if (Test-VsphereAuthentication -server $vcenter.fqdn -user $vcfVcenterDetails.ssoAdmin -pass $vcfVcenterDetails.ssoAdminPass) { $datastores = Get-Datastore @@ -4766,7 +4766,32 @@ Function Request-VcenterAuthentication { if ($PsBoundParameters.ContainsKey("allDomains")) { $allWorkloadDomains = Get-VCFWorkloadDomain foreach ($domain in $allWorkloadDomains) { - if (Test-vSphereApiAuthentication -server $domain.vcenters.fqdn -user $account.username -pass $account.password) { + if (($vcfVcenterDetails = Get-vCenterServerDetail -server $server -user $user -pass $pass -domain $domain.name)) { + if (Test-vSphereApiAuthentication -server $vcfVcenterDetails.fqdn -user $vcfVcenterDetails.ssoAdmin -pass $vcfVcenterDetails.ssoAdminPass -ErrorAction SilentlyContinue) { + $alert = "GREEN" + $message = "API Connection check successful!" + } else { + $alert = "RED" + $message = "API Connection check failed!" + } + $elementObject = New-Object System.Collections.ArrayList + $elementObject = New-Object -TypeName psobject + $elementObject | Add-Member -NotePropertyName 'Component' -NotePropertyValue "vCenter" + $elementObject | Add-Member -NotePropertyName 'Resource' -NotePropertyValue $vcfVcenterDetails.fqdn + $elementObject | Add-Member -NotePropertyName 'Alert' -NotePropertyValue $alert + $elementObject | Add-Member -NotePropertyName 'Message' -NotePropertyValue $message + if ($PsBoundParameters.ContainsKey('failureOnly')) { + if (($elementObject.alert -eq 'RED')) { + $customObject += $elementObject + } + } else { + $customObject += $elementObject + } + } + } + } else { + if (($vcfVcenterDetails = Get-vCenterServerDetail -server $server -user $user -pass $pass -domain $workloadDomain)) { + if (Test-vSphereApiAuthentication -server $vcfVcenterDetails.fqdn -user $vcfVcenterDetails.ssoAdmin -pass $vcfVcenterDetails.ssoAdminPass -ErrorAction SilentlyContinue) { $alert = "GREEN" $message = "API Connection check successful!" } else { @@ -4776,7 +4801,7 @@ Function Request-VcenterAuthentication { $elementObject = New-Object System.Collections.ArrayList $elementObject = New-Object -TypeName psobject $elementObject | Add-Member -NotePropertyName 'Component' -NotePropertyValue "vCenter" - $elementObject | Add-Member -NotePropertyName 'Resource' -NotePropertyValue $domain.vcenters.fqdn + $elementObject | Add-Member -NotePropertyName 'Resource' -NotePropertyValue $vcfVcenterDetails.fqdn $elementObject | Add-Member -NotePropertyName 'Alert' -NotePropertyValue $alert $elementObject | Add-Member -NotePropertyName 'Message' -NotePropertyValue $message if ($PsBoundParameters.ContainsKey('failureOnly')) { @@ -4787,28 +4812,6 @@ Function Request-VcenterAuthentication { $customObject += $elementObject } } - } else { - $vcenter = (Get-VCFWorkloadDomain | Where-Object {$_.name -eq $workloadDomain}).vcenters.fqdn - if (Test-vSphereApiAuthentication -server $vcenter -user $account.username -pass $account.password) { - $alert = "GREEN" - $message = "API Connection check successful!" - } else { - $alert = "RED" - $message = "API Connection check failed!" - } - $elementObject = New-Object System.Collections.ArrayList - $elementObject = New-Object -TypeName psobject - $elementObject | Add-Member -NotePropertyName 'Component' -NotePropertyValue "vCenter" - $elementObject | Add-Member -NotePropertyName 'Resource' -NotePropertyValue $vcenter - $elementObject | Add-Member -NotePropertyName 'Alert' -NotePropertyValue $alert - $elementObject | Add-Member -NotePropertyName 'Message' -NotePropertyValue $message - if ($PsBoundParameters.ContainsKey('failureOnly')) { - if (($elementObject.alert -eq 'RED')) { - $customObject += $elementObject - } - } else { - $customObject += $elementObject - } } $customObject | Sort-Object Component, Resource }