modules/ProbesMigration/ProbesMigration.psm1
# Load Modules Import-Module ((Split-Path $PSScriptRoot -Parent) + "/Log/Log.psd1") function ProbesMigration { [CmdletBinding()] param ( [Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $BasicLoadBalancer, [Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $StdLoadBalancer ) log -Message "[ProbesMigration] Initiating Probes Migration" $probes = $BasicLoadBalancer.Probes foreach ($probe in $probes) { log -Message "[ProbesMigration] Adding Probe $($probe.Name) to Standard Load Balancer" $probeConfig = @{ Name = $probe.Name Port = $probe.Port Protocol = $probe.Protocol RequestPath = $probe.RequestPath IntervalInSeconds = $probe.IntervalInSeconds ProbeCount = $probe.NumberOfProbes } try { $ErrorActionPreference = 'Stop' $StdLoadBalancer | Add-AzLoadBalancerProbeConfig @probeConfig > $null } catch { $message = "[ProbesMigration] Failed to add health probe config '$($probe.Name)' to new standard load balancer '$($stdLoadBalancer.Name)' in resource group '$($StdLoadBalancer.ResourceGroupName)'. To recover address the following error, then follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_" log "Error" $message -terminateOnError } } log -Message "[ProbesMigration] Saving Standard Load Balancer $($StdLoadBalancer.Name)" try { $ErrorActionPreference = 'Stop' Set-AzLoadBalancer -LoadBalancer $StdLoadBalancer > $null } catch { $message = "[ProbesMigration] Failed to add health probe config '$($probe.Name)' to new standard load balancer '$($stdLoadBalancer.Name)' in resource group '$($StdLoadBalancer.ResourceGroupName)'. To recover address the following error, then follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_ " log "Error" $message -terminateOnError } log -Message "[ProbesMigration] Probes Migration Completed" } Export-ModuleMember -Function ProbesMigration |