@@ -132,32 +132,51 @@ function Get-AzMigDiscoveredVMwareVMs {
132
132
133
133
$discoverySolution = $response
134
134
135
- $map = $discoverysolution.properties.details.extendedDetails.applianceNameToSiteIdMapV2
136
- $map = $map | ConvertFrom-Json
137
- Write-Debug $map.count
138
- if ($map ) {$map | Write-Debug }
139
- if (-not $map.count ) {throw " No Migrate Appliance in project" }
135
+ $appMap = @ {}
140
136
141
- $vmwareappliancemap = @ ()
137
+ if ($null -ne $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV2 ) {
138
+ $appMapV2 = $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV2 | ConvertFrom-Json
139
+ # Fetch all appliance from V2 map first. Then these can be updated if found again in V3 map.
140
+ foreach ($item in $appMapV2 ) {
141
+ $appMap [$item.ApplianceName ] = $item.SiteId
142
+ }
143
+ }
144
+
145
+ if ($null -ne $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV3 ) {
146
+ $appMapV3 = $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV3 | ConvertFrom-Json
147
+ foreach ($item in $appMapV3 ) {
148
+ $t = $item.psobject.properties
149
+ $appMap [$t.Name ] = $t.Value.SiteId
150
+ }
151
+ }
152
+
153
+ if ($null -eq $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV2 -And
154
+ $null -eq $discoverySolution.properties.details.extendedDetails.applianceNameToSiteIdMapV3 ) {
155
+ throw " Server Discovery Solution missing Appliance Details. Invalid Solution."
156
+ }
157
+
158
+
159
+
160
+
161
+ $vmwareappliancemap = @ {}
142
162
# Discard non-VMware appliances
143
-
144
- $map | foreach {if ($_.SiteId -match " VMwareSites" ) {$vmwareappliancemap + = $_ }}
163
+
164
+ $appMap .GetEnumerator () | foreach {if ($_.Value -match " VMwareSites" ) {$vmwareappliancemap [ $_ .Key ] = $_.Value }}
145
165
Write-Debug $vmwareappliancemap.count
146
- if ($vmwareappliancemap ) {$vmwareappliancemap | Write-Debug };
166
+ if ($vmwareappliancemap ) {$vmwareappliancemap | Out-String | Write-Debug };
147
167
if (-not $vmwareappliancemap.count ) {throw " No VMware VMs discovered in project" };
148
168
149
169
Write-Host " Please wait while the list of discovered machines is downloaded..."
150
170
151
171
$DiscoveredMachines = @ ()
152
- foreach ($item in $vmwareappliancemap ) {
153
- $SiteId = $item.SiteId ;
172
+ foreach ($item in $vmwareappliancemap.GetEnumerator () ) {
173
+ $SiteId = $item.Value ;
154
174
Write-Debug " Get machines for Site $SiteId "
155
175
$requesturi = $Properties [' baseurl' ] + $SiteId + " /machines" + $SDS_APIVERSION + " &`$ top=400"
156
176
157
177
# Write-Host $requesturi
158
178
159
- $temp = $SiteId -match " \/([^\/]*)\w{4}site$" # Extract the appliance name
160
- $appliancename = $Matches [1 ]
179
+ $appliancename = $item.Key
161
180
Write-Host " Downloading machines for appliance " $appliancename " . This can take 1-2 minutes..."
162
181
$response = $null
163
182
try {
@@ -448,4 +467,3 @@ $jsonPayload = @"
448
467
Remove-Item $temp_filename
449
468
}
450
469
Export-ModuleMember - Function Get-AzMigDependenciesAgentless
451
-
0 commit comments