@@ -460,3 +460,134 @@ function Test-AddNetworkInterface
460
460
Clean - ResourceGroup $rgname
461
461
}
462
462
}
463
+
464
+ <#
465
+ . SYNOPSIS
466
+ Test Get effective routes and nsg
467
+ #>
468
+ function Test-EffectiveRoutesAndNsg
469
+ {
470
+ # Setup
471
+ $rgname = Get-ComputeTestResourceName
472
+
473
+ try
474
+ {
475
+ # Common
476
+ $loc = Get-ComputeVMLocation ;
477
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
478
+
479
+ # VM Profile & Hardware
480
+ $vmsize = ' Standard_A2' ;
481
+ $vmname = ' vm' + $rgname ;
482
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
483
+ Assert-AreEqual $p.HardwareProfile.VmSize $vmsize ;
484
+
485
+ # NRP
486
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
487
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - Subnet $subnet ;
488
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
489
+ $subnetId = $vnet.Subnets [0 ].Id;
490
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
491
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
492
+ $pubipId = $pubip.Id ;
493
+
494
+ # Attach NSG to NIC
495
+ $nsg = New-AzureRmNetworkSecurityGroup - Force - Name (' nsg' + $rgname ) - ResourceGroupName $rgname - Location $loc
496
+ $nsgId = $nsg.Id
497
+
498
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id - NetworkSecurityGroupId $nsgId ;
499
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
500
+ $nicId = $nic.Id ;
501
+
502
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
503
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
504
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
505
+ Assert-Null $p.NetworkProfile.NetworkInterfaces [0 ].Primary;
506
+
507
+ # Storage Account (SA)
508
+ $stoname = ' sto' + $rgname ;
509
+ $stotype = ' Standard_GRS' ;
510
+ New-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
511
+ $stoaccount = Get-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname ;
512
+
513
+ $osDiskName = ' osDisk' ;
514
+ $osDiskCaching = ' ReadWrite' ;
515
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
516
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
517
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
518
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
519
+
520
+ $p = Set-AzureRmVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
521
+
522
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
523
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
524
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
525
+ $p = Remove-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' ;
526
+
527
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
528
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
529
+ Assert-AreEqual $p.StorageProfile.OSDisk.Vhd.Uri $osDiskVhdUri ;
530
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
531
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
532
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
533
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
534
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Vhd.Uri $dataDiskVhdUri1 ;
535
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
536
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
537
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
538
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Vhd.Uri $dataDiskVhdUri2 ;
539
+
540
+ # OS & Image
541
+ $user = " Foo12" ;
542
+ $password = $PLACEHOLDER ;
543
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
544
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
545
+ $computerName = ' test' ;
546
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
547
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
548
+
549
+ # $p.StorageProfile.OSDisk = $null;
550
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
551
+
552
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
553
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
554
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
555
+
556
+ # Image Reference
557
+ $imgRef = Get-DefaultCRPImage ;
558
+ $p = ($imgRef | Set-AzureRmVMSourceImage - VM $p );
559
+ Assert-NotNull $p.StorageProfile.ImageReference ;
560
+ Assert-Null $p.StorageProfile.SourceImageId ;
561
+
562
+ # TODO: Remove Data Disks for now
563
+ $p.StorageProfile.DataDisks = $null ;
564
+
565
+ # Virtual Machine
566
+ # TODO: Still need to do retry for New-AzureRmVM for SA, even it's returned in Get-.
567
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - VM $p ;
568
+
569
+ # Get VM
570
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
571
+ Assert-AreEqual $vm1.Name $vmname ;
572
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
573
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
574
+
575
+ # Get NetworkInterface
576
+ $getnic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
577
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $getnic.Id ;
578
+ Assert-AreEqual $getnic.Primary true;
579
+ Assert-NotNull $getnic.MacAddress ;
580
+
581
+ # Get Effective route
582
+ $effectiveRoute = Get-AzureRmEffectiveRouteTable - ResourceGroupName $rgname - NetworkInterfaceName $getnic.Name
583
+
584
+ # Get Effective NSG
585
+ $effectiveNsgs = Get-AzureRmEffectiveNetworkSecurityGroup - ResourceGroupName $rgname - NetworkInterfaceName $getnic.Name
586
+
587
+ }
588
+ finally
589
+ {
590
+ # Cleanup
591
+ Clean - ResourceGroup $rgname
592
+ }
593
+ }
0 commit comments