@@ -286,6 +286,166 @@ function Test-LoadBalancerCRUD-InternalStatic
286
286
}
287
287
}
288
288
289
+ <#
290
+ . SYNOPSIS
291
+ Test creating a higly available internal Load balancer with basic sku.
292
+ #>
293
+ function Test-LoadBalancerCRUD-InternalHighlyAvailableBasicSku
294
+ {
295
+ # Setup
296
+ $rgname = Get-ResourceGroupName
297
+ $vnetName = Get-ResourceName
298
+ $subnetName = Get-ResourceName
299
+ $publicIpName = Get-ResourceName
300
+ $domainNameLabel = Get-ResourceName
301
+ $lbName = Get-ResourceName
302
+ $frontendName = Get-ResourceName
303
+ $backendAddressPoolName = Get-ResourceName
304
+ $probeName = Get-ResourceName
305
+ $inboundNatRuleName = Get-ResourceName
306
+ $lbruleName = Get-ResourceName
307
+ $rglocation = Get-ProviderLocation ResourceManagement
308
+ $resourceTypeParent = " Microsoft.Network/loadBalancers"
309
+ $location = Get-ProviderLocation $resourceTypeParent
310
+
311
+ try
312
+ {
313
+ # Create the resource group
314
+ $resourceGroup = New-AzureRmResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
315
+
316
+ # Create the Virtual Network
317
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 10.0 .1.0 / 24
318
+ $vnet = New-AzureRmvirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
319
+
320
+ # Create the publicip
321
+ $publicip = New-AzureRmPublicIpAddress - ResourceGroupName $rgname - name $publicIpName - location $location - AllocationMethod Dynamic - DomainNameLabel $domainNameLabel
322
+
323
+ # Create LoadBalancer
324
+ $frontend = New-AzureRmLoadBalancerFrontendIpConfig - Name $frontendName - Subnet $vnet.Subnets [0 ]
325
+ $backendAddressPool = New-AzureRmLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName
326
+ $probe = New-AzureRmLoadBalancerProbeConfig - Name $probeName - RequestPath healthcheck.aspx - Protocol http - Port 80 - IntervalInSeconds 15 - ProbeCount 2
327
+ $lbrule = New-AzureRmLoadBalancerRuleConfig - Name $lbruleName - FrontendIPConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - Protocol All - FrontendPort 0 - BackendPort 0 - IdleTimeoutInMinutes 15 - EnableFloatingIP - LoadDistribution SourceIP
328
+ $actualLb = New-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - LoadBalancingRule $lbrule - Sku Basic
329
+
330
+ $expectedLb = Get-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname
331
+
332
+ # Verification
333
+ Assert-AreEqual $expectedLb.ResourceGroupName $actualLb.ResourceGroupName
334
+ Assert-AreEqual $expectedLb.Name $actualLb.Name
335
+ Assert-AreEqual $expectedLb.Location $actualLb.Location
336
+ Assert-AreEqual " Succeeded" $expectedLb.ProvisioningState
337
+ Assert-AreEqual 1 @ ($expectedLb.FrontendIPConfigurations ).Count
338
+
339
+ Assert-AreEqual $frontendName $expectedLb.FrontendIPConfigurations [0 ].Name
340
+ Assert-AreEqual $vnet.Subnets [0 ].Id $expectedLb.FrontendIPConfigurations [0 ].Subnet.Id
341
+ Assert-NotNull $expectedLb.FrontendIPConfigurations [0 ].PrivateIpAddress
342
+
343
+ Assert-AreEqual $backendAddressPoolName $expectedLb.BackendAddressPools [0 ].Name
344
+
345
+ Assert-AreEqual $probeName $expectedLb.Probes [0 ].Name
346
+ Assert-AreEqual $probe.RequestPath $expectedLb.Probes [0 ].RequestPath
347
+
348
+ Assert-AreEqual $lbruleName $expectedLb.LoadBalancingRules [0 ].Name
349
+ Assert-AreEqual $expectedLb.FrontendIPConfigurations [0 ].Id $expectedLb.LoadBalancingRules [0 ].FrontendIPConfiguration.Id
350
+ Assert-AreEqual $expectedLb.BackendAddressPools [0 ].Id $expectedLb.LoadBalancingRules [0 ].BackendAddressPool.Id
351
+ Assert-AreEqual 0 $expectedLb.LoadBalancingRules [0 ].FrontendPort
352
+ Assert-AreEqual 0 $expectedLb.LoadBalancingRules [0 ].BackendPort
353
+ Assert-AreEqual All $expectedLb.LoadBalancingRules [0 ].Protocol
354
+
355
+ # Delete
356
+ $deleteLb = Remove-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname - PassThru - Force
357
+ Assert-AreEqual true $deleteLb
358
+
359
+ $list = Get-AzureRmLoadBalancer - ResourceGroupName $rgname
360
+ Assert-AreEqual 0 @ ($list ).Count
361
+ }
362
+ finally
363
+ {
364
+ # Cleanup
365
+ Clean - ResourceGroup $rgname
366
+ }
367
+ }
368
+
369
+ <#
370
+ . SYNOPSIS
371
+ Tests creating a higly available internal Load balancer with standard sku.
372
+ #>
373
+ function Test-LoadBalancerCRUD-InternalHighlyAvailableStandardSku
374
+ {
375
+ # Setup
376
+ $rgname = Get-ResourceGroupName
377
+ $vnetName = Get-ResourceName
378
+ $subnetName = Get-ResourceName
379
+ $publicIpName = Get-ResourceName
380
+ $domainNameLabel = Get-ResourceName
381
+ $lbName = Get-ResourceName
382
+ $frontendName = Get-ResourceName
383
+ $backendAddressPoolName = Get-ResourceName
384
+ $probeName = Get-ResourceName
385
+ $inboundNatRuleName = Get-ResourceName
386
+ $lbruleName = Get-ResourceName
387
+ $rglocation = Get-ProviderLocation ResourceManagement
388
+ $resourceTypeParent = " Microsoft.Network/loadBalancers"
389
+ $location = Get-ProviderLocation $resourceTypeParent
390
+
391
+ try
392
+ {
393
+ # Create the resource group
394
+ $resourceGroup = New-AzureRmResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
395
+
396
+ # Create the Virtual Network
397
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 10.0 .1.0 / 24
398
+ $vnet = New-AzureRmvirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
399
+
400
+ # Create the publicip
401
+ $publicip = New-AzureRmPublicIpAddress - ResourceGroupName $rgname - name $publicIpName - location $location - AllocationMethod Dynamic - DomainNameLabel $domainNameLabel
402
+
403
+ # Create LoadBalancer
404
+ $frontend = New-AzureRmLoadBalancerFrontendIpConfig - Name $frontendName - Subnet $vnet.Subnets [0 ]
405
+ $backendAddressPool = New-AzureRmLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName
406
+ $probe = New-AzureRmLoadBalancerProbeConfig - Name $probeName - RequestPath healthcheck.aspx - Protocol http - Port 80 - IntervalInSeconds 15 - ProbeCount 2
407
+ $lbrule = New-AzureRmLoadBalancerRuleConfig - Name $lbruleName - FrontendIPConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - Protocol All - FrontendPort 0 - BackendPort 0 - IdleTimeoutInMinutes 15 - EnableFloatingIP - LoadDistribution SourceIP
408
+ $actualLb = New-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - LoadBalancingRule $lbrule - Sku Standard
409
+
410
+ $expectedLb = Get-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname
411
+
412
+ # Verification
413
+ Assert-AreEqual $expectedLb.ResourceGroupName $actualLb.ResourceGroupName
414
+ Assert-AreEqual $expectedLb.Name $actualLb.Name
415
+ Assert-AreEqual $expectedLb.Location $actualLb.Location
416
+ Assert-AreEqual " Succeeded" $expectedLb.ProvisioningState
417
+ Assert-AreEqual 1 @ ($expectedLb.FrontendIPConfigurations ).Count
418
+
419
+ Assert-AreEqual $frontendName $expectedLb.FrontendIPConfigurations [0 ].Name
420
+ Assert-AreEqual $vnet.Subnets [0 ].Id $expectedLb.FrontendIPConfigurations [0 ].Subnet.Id
421
+ Assert-NotNull $expectedLb.FrontendIPConfigurations [0 ].PrivateIpAddress
422
+
423
+ Assert-AreEqual $backendAddressPoolName $expectedLb.BackendAddressPools [0 ].Name
424
+
425
+ Assert-AreEqual $probeName $expectedLb.Probes [0 ].Name
426
+ Assert-AreEqual $probe.RequestPath $expectedLb.Probes [0 ].RequestPath
427
+
428
+ Assert-AreEqual $lbruleName $expectedLb.LoadBalancingRules [0 ].Name
429
+ Assert-AreEqual $expectedLb.FrontendIPConfigurations [0 ].Id $expectedLb.LoadBalancingRules [0 ].FrontendIPConfiguration.Id
430
+ Assert-AreEqual $expectedLb.BackendAddressPools [0 ].Id $expectedLb.LoadBalancingRules [0 ].BackendAddressPool.Id
431
+ Assert-AreEqual 0 $expectedLb.LoadBalancingRules [0 ].FrontendPort
432
+ Assert-AreEqual 0 $expectedLb.LoadBalancingRules [0 ].BackendPort
433
+ Assert-AreEqual All $expectedLb.LoadBalancingRules [0 ].Protocol
434
+
435
+ # Delete
436
+ $deleteLb = Remove-AzureRmLoadBalancer - Name $lbName - ResourceGroupName $rgname - PassThru - Force
437
+ Assert-AreEqual true $deleteLb
438
+
439
+ $list = Get-AzureRmLoadBalancer - ResourceGroupName $rgname
440
+ Assert-AreEqual 0 @ ($list ).Count
441
+ }
442
+ finally
443
+ {
444
+ # Cleanup
445
+ Clean - ResourceGroup $rgname
446
+ }
447
+ }
448
+
289
449
<#
290
450
. SYNOPSIS
291
451
Tests creating a public Load balancer without InboundNAtRule
@@ -1698,7 +1858,6 @@ function Test-SetLoadBalancerObjectAssignment
1698
1858
}
1699
1859
}
1700
1860
1701
-
1702
1861
<#
1703
1862
. SYNOPSIS
1704
1863
Tests creating a public Load balancer with basic sku.
0 commit comments