Private/Get-AVSSiteStatus.ps1
<# Copyright 2023 VMware, Inc. SPDX-License-Identifier: BSD-2-Clause #> function Get-AVSSiteStatus { [CmdletBinding()] param ( # log prefix [Parameter(Mandatory = $false)] [string]$LogPrefix ) process { try { Write-Log -message "Checking if AVS SDDC is prepared for VCDA installation." -LogPrefix $LogPrefix $SSO_domain = (Get-IdentitySource -System).name #make sure passwords are present in $PersistentSecrets secrets foreach ($appliance in $Script:vcda_avs_params.vcda.vm_name) { if ($null -eq $persistentSecrets[$appliance + $Script:vcda_avs_params.vcda.current_password]) { Write-Error "Missing current root passwords in vault." } if ($null -eq $persistentSecrets[$appliance + $Script:vcda_avs_params.vcda.old_password]) { Write-Error "Missing old root passwords in vault." } } if ($null -eq $PersistentSecrets[$Script:vcda_avs_params.vsphere.sa_current_password]) { write-error "Missing service account password in vault." } if ($null -eq $PersistentSecrets.'sa-username') { write-error "Missing service account username in vault." } #check if vsphere role is created $vcda_role = Get-VIRole -Name $Script:vcda_avs_params.vsphere.vsphere_role -ErrorAction SilentlyContinue ` | Where-Object { $_.Name -eq $Script:vcda_avs_params.vsphere.vsphere_role } if ($null -eq $vcda_role) { Write-Error "vSphere role required by VCDA not found." } #check vsphere service account $sso_user = Get-SsoPersonUser -Name $Script:vcda_avs_params.vsphere.sa_username -Domain $SSO_domain ` | Where-Object { $_.name -eq $Script:vcda_avs_params.vsphere.sa_username } if ($null -eq $sso_user) { write-Error "vSphere service account not found." } #check vsphere group $group = Get-SsoGroup -Domain $SSO_domain -Name 'VrAdministrators' | Where-Object { $_.name -eq 'VrAdministrators' } if ($null -eq $group) { Write-Error "vSphere group required by VCDA not found." } #check folder $vcda_folder = [AVSSecureFolder]::GetOrCreate($Script:vcda_avs_params.vsphere.folder) if ($null -eq $vcda_folder) { Write-Error "vSphere secure folder not found." } Write-Log -message "AVS SDDC is ready for VCDA installation." -LogPrefix $LogPrefix } catch { Write-Log "AVS SDDC is not ready for VCDA installation, prepare the site first by running 'Initialize-AVSSite'. Check 'Error' for more information" -LogPrefix $LogPrefix $PSCmdlet.ThrowTerminatingError($_) } } } |