Skip to content

Commit bb9aa41

Browse files
committed
Merge branch 'develop' into dev-boc-pcli
2 parents e2ac4ba + e8e4e8f commit bb9aa41

1 file changed

Lines changed: 46 additions & 23 deletions

File tree

VMware.CloudFoundation.InstanceRecovery.psm1

Lines changed: 46 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)