@@ -388,18 +388,30 @@ Function New-ExtractDataFromSDDCBackup {
388388 $lineContent = $psqlContent | Select-Object - Index $hostsLineIndex
389389 If ($lineContent -ne ' \.' ) {
390390 $hostId = $lineContent.split (" `t " )[0 ]
391+ $gateway = $lineContent.split (" `t " )[7 ]
391392 $hostName = $lineContent.split (" `t " )[9 ]
392393 $hostMgmtIp = $lineContent.split (" `t " )[10 ]
393394 $hostMask = $lineContent.split (" `t " )[17 ]
394395 $hostVersion = $lineContent.split (" `t " )[18 ]
395396 $hostVmotionIp = $lineContent.split (" `t " )[19 ]
396397 $hostVsanIP = $lineContent.split (" `t " )[20 ]
397398
399+ # Calculate Managment Subnet (Management Domain Hosts Only)
400+ If (($gateway -ne " \N" ) -AND ($hostMask -ne " \N" )) {
401+
402+ $ip = [ipaddress ]$hostMgmtIp
403+ $subnet = [ipaddress ]$hostMask
404+ $netid = [ipaddress ]($ip.address -band $subnet.address )
405+ $hostManagementSubnet = $ ($netid.ipaddresstostring )
406+ }
407+
398408 $hosts += [pscustomobject ]@ {
399409 ' id' = $hostId
410+ ' gateway' = $gateway
400411 ' hostName' = $hostName
401412 ' mgmtIp' = $hostMgmtIp
402413 ' mask' = $hostMask
414+ ' subnet' = $hostManagementSubnet
403415 ' version' = $hostVersion
404416 ' vmotionIP' = $hostVmotionIp
405417 ' vsanIP' = $hostVsanIP
@@ -661,9 +673,21 @@ Function New-ExtractDataFromSDDCBackup {
661673 $hostsArray = @ ()
662674 Foreach ($clusterHost in $clusterHosts ) {
663675 $hostname = ($hosts | Where-Object { $_.id -eq $clusterHost.hostId }).hostname
676+ $gateway = ($hosts | Where-Object { $_.id -eq $clusterHost.hostId }).gateway
677+ $mask = ($hosts | Where-Object { $_.id -eq $clusterHost.hostId }).mask
678+ $subnet = ($hosts | Where-Object { $_.id -eq $clusterHost.hostId }).subnet
679+
664680 $networkPoolID = ($hostsAndPools | Where-Object { $_.hostId -eq $clusterHost.hostId }).poolId
665681 $hostNetworkIds = ($poolsAndNetworks | Where-Object { $_.poolID -eq $networkPoolID }).networkId
666- $hostNetworks = $networks | Where-Object { $_.id -in $hostNetworkIds }
682+ $hostNetworks = @ ()
683+ $hostNetworks += [pscustomobject ]@ {
684+ ' type' = " MANAGEMENT"
685+ ' gateway' = $gateway
686+ ' mtu' = " 1500"
687+ ' mask' = $mask
688+ ' subnet' = $subnet
689+ }
690+ $hostNetworks += $networks | Where-Object { $_.id -in $hostNetworkIds }
667691 $hostsArray += [pscustomobject ]@ {
668692 ' hostname' = $hostname
669693 ' networkPoolID' = $networkPoolID
@@ -869,14 +893,9 @@ Function New-ExtractDataFromSDDCBackup {
869893 $domainNetworks = ($poolsAndNetworks | Where-Object { $_.poolID -eq $poolID }).networkID
870894 $vmotionNetwork = $networks | Where-Object { ($_.type -eq " VMOTION" ) -and ($_.id -in $domainNetworks ) }
871895 $vsanNetwork = $networks | Where-Object { ($_.type -eq " VSAN" ) -and ($_.id -in $domainNetworks ) }
872- $sddcManagerIP = $metadataJSON.ip
873- $managementSubnetMask = $metaDataJSON.netmask
874- $ip = [ipaddress ]$sddcManagerIP
875- $subnet = [ipaddress ]$managementSubnetMask
876- $netid = [ipaddress ]($ip.address -band $subnet.address )
877- $managementSubnet = $ ($netid.ipaddresstostring )
878-
879- <# $mgmtNetworkDetails = @()
896+
897+ <#
898+ $mgmtNetworkDetails = @()
880899 $mgmtNetworkDetails += [pscustomobject]@{ #Review
881900 'type' = "MANAGEMENT"
882901 'subnet_mask' = $metaDataJSON.netmask
@@ -886,7 +905,8 @@ Function New-ExtractDataFromSDDCBackup {
886905 'gateway' = $metaDataJSON.gateway
887906 'portgroupKey' = $metadataJSON.port_group
888907 }
889- #> $nsxClusterDetailsObject = New-Object - type psobject
908+ #>
909+ $nsxClusterDetailsObject = New-Object - type psobject
890910 $nsxClusterDetailsObject | Add-Member - NotePropertyName ' clusterVip' - NotePropertyValue ($nsxtManagerClusters | Where-Object { $_.domainIDs -contains $domainId }).clusterVip
891911 $nsxClusterDetailsObject | Add-Member - NotePropertyName ' clusterFqdn' - NotePropertyValue ($nsxtManagerClusters | Where-Object { $_.domainIDs -contains $domainId }).clusterFqdn
892912 $nsxClusterDetailsObject | Add-Member - NotePropertyName ' rootNsxtManagerPassword' - NotePropertyValue ($passwordVaultObject | Where-Object { ($_.entityName -eq ($nsxtManagerClusters | Where-Object { $_.domainIDs -contains $domainId }).clusterFqdn) -and ($_.credentialType -eq ' SSH' ) }).password
@@ -1159,33 +1179,38 @@ Function New-ReconstructedPartialBringupJsonSpec {
11591179 }
11601180
11611181 $networkSpecsObject = @ ()
1182+
1183+ # Conditional VM_MANAGEMENT network
11621184 If ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' VM_MANAGEMENT' }) {
11631185 [IPAddress ] $ip = $extractedSddcData.mgmtDomainInfrastructure.netmask
11641186 $octets = $ip.IPAddressToString.Split (' .' )
1165- Foreach ($octet in $octets ) { while (0 -ne $octet ) { $octet = ($octet -shl 1 ) -band [byte ]::MaxValue; $managementNetworkCidr ++ ; } }
1166- $managementNetworkSubnet = ($extractedSddcData.mgmtDomainInfrastructure.subnet + " /" + $managementNetworkCidr )
1187+ Foreach ($octet in $octets ) { while (0 -ne $octet ) { $octet = ($octet -shl 1 ) -band [byte ]::MaxValue; $managementVmNetworkCidr ++ ; } }
1188+ $managementVmNetworkSubnet = ($extractedSddcData.mgmtDomainInfrastructure.subnet + " /" + $managementVmNetworkCidr )
11671189 $networkSpecsObject += [pscustomobject ]@ {
11681190 ' networkType' = " VM_MANAGEMENT"
1169- ' subnet' = $managementNetworkSubnet
1170- ' vlanId' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' VM_MANAGEMENT' }).vlanId -as [string ]
1171- ' gateway' = $extractedSddcData.mgmtDomainInfrastructure.gateway
1191+ ' subnet' = $managementVmNetworkSubnet
1192+ ' vlanId' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' VM_MANAGEMENT' }).vlanId -as [string ]
1193+ ' mtu' = " 1500"
1194+ ' gateway' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).gateway
11721195 ' portGroupKey' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' VM_MANAGEMENT' }).name
11731196 }
11741197 }
11751198
1176- [IPAddress ] $ip = (($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).mgmtNetworkDetails).subnet_mask
1199+ # MANAGEMENT network
1200+ [IPAddress ] $ip = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).mask
11771201 $octets = $ip.IPAddressToString.Split (' .' )
11781202 Foreach ($octet in $octets ) { while (0 -ne $octet ) { $octet = ($octet -shl 1 ) -band [byte ]::MaxValue; $managementNetworkCidr ++ ; } }
1179- $managementNetworkSubnet = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).mgmtNetworkDetails ).subnet + " /" + $managementNetworkCidr )
1203+ $managementNetworkSubnet = (((( $extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_ .isDefault -eq ' t ' }).hosts[ 0 ].networks | Where-Object { $_ .type -eq ' MANAGEMENT ' } ).subnet + " /" + $managementNetworkCidr )
11801204 $networkSpecsObject += [pscustomobject ]@ {
11811205 ' networkType' = " MANAGEMENT"
11821206 ' subnet' = $managementNetworkSubnet
1183- ' vlanId' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[ 0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).vlanId -as [string ]
1207+ ' vlanId' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' MANAGEMENT' }).vlanId -as [string ]
11841208 ' mtu' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).mtu -as [string ]
11851209 ' gateway' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).gateway
11861210 ' portGroupKey' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' MANAGEMENT' }).name
11871211 }
11881212
1213+ # VMOTION network
11891214 [IPAddress ] $ip = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' VMOTION' }).subnetMask
11901215 $octets = $ip.IPAddressToString.Split (' .' )
11911216 Foreach ($octet in $octets ) { while (0 -ne $octet ) { $octet = ($octet -shl 1 ) -band [byte ]::MaxValue; $vmotionNetworkCidr ++ ; } }
@@ -1200,6 +1225,7 @@ Function New-ReconstructedPartialBringupJsonSpec {
12001225 ' portGroupKey' = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).vdsDetails.portgroups | Where-Object { $_.transportType -eq ' VMOTION' }).name
12011226 }
12021227
1228+ # VSAN network
12031229 [IPAddress ] $ip = ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' VSAN' }).subnetMask
12041230 $octets = $ip.IPAddressToString.Split (' .' )
12051231 Foreach ($octet in $octets ) { while (0 -ne $octet ) { $octet = ($octet -shl 1 ) -band [byte ]::MaxValue; $vsanNetworkCidr ++ ; } }
@@ -1402,12 +1428,9 @@ Function New-ReconstructedPartialBringupJsonSpec {
14021428 $credentialObject | Add-Member - notepropertyname ' username' - notepropertyvalue $mgmtHost.username
14031429 $credentialObject | Add-Member - notepropertyname ' password' - notepropertyvalue $mgmtHost.password
14041430 $ipAddressPrivateObject = New-Object - type psobject
1405- # $ipAddressPrivateObject | Add-Member -notepropertyname 'subnet' -notepropertyvalue (($extractedSddcData.workloadDomains | Where-Object {$_.domainType -eq "MANAGEMENT"}).networkDetails | Where-Object {$_.type -eq "MANAGEMENT"}).subnet_mask
1406- $ipAddressPrivateObject | Add-Member - notepropertyname ' subnet' - notepropertyvalue (($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).mgmtNetworkDetails).subnet_mask
1431+ $ipAddressPrivateObject | Add-Member - notepropertyname ' subnet' - notepropertyvalue ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).mask
14071432 $ipAddressPrivateObject | Add-Member - notepropertyname ' ipAddress' - notepropertyvalue $mgmtHost.entityIpAddress
1408- # $ipAddressPrivateObject | Add-Member -notepropertyname 'gateway' -notepropertyvalue (($extractedSddcData.workloadDomains | Where-Object {$_.domainType -eq "MANAGEMENT"}).networkDetails | Where-Object {$_.type -eq "MANAGEMENT"}).gateway
1409- $ipAddressPrivateObject | Add-Member - notepropertyname ' gateway' - notepropertyvalue (($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).mgmtNetworkDetails).gateway
1410-
1433+ $ipAddressPrivateObject | Add-Member - notepropertyname ' gateway' - notepropertyvalue ((($extractedSddcData.workloadDomains | Where-Object { $_.domainType -eq " MANAGEMENT" }).vsphereClusterDetails | Where-Object { $_.isDefault -eq ' t' }).hosts[0 ].networks | Where-Object { $_.type -eq ' MANAGEMENT' }).gateway
14111434
14121435 $hostSpecs += [PSCustomObject ]@ {
14131436 ' hostname' = $mgmtHost.entityName.split (" ." )[0 ]
0 commit comments