@@ -536,3 +536,112 @@ function Validate-VirtualMachineUsage
536
536
537
537
return $valid ;
538
538
}
539
+
540
+
541
+ <#
542
+ . SYNOPSIS
543
+ Test Virtual Machines with PIR v2
544
+ #>
545
+ function Test-VirtualMachinePIRv2
546
+ {
547
+ # Setup
548
+ $rgname = Get-ComputeTestResourceName
549
+
550
+ try
551
+ {
552
+ # Common
553
+ $loc = ' eastasia' ;
554
+ New-AzureResourceGroup - Name $rgname - Location $loc ;
555
+
556
+ # VM Profile & Hardware
557
+ $vmsize = ' Standard_A4' ;
558
+ $vmname = ' vm' + $rgname ;
559
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
560
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
561
+
562
+ # NRP
563
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
564
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
565
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
566
+ $subnetId = $vnet.Subnets [0 ].Id;
567
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
568
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
569
+ $pubipId = $pubip.Id ;
570
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
571
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
572
+ $nicId = $nic.Id ;
573
+
574
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
575
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
576
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
577
+
578
+ # Storage Account (SA)
579
+ $stoname = ' sto' + $rgname ;
580
+ $stotype = ' Standard_GRS' ;
581
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
582
+ $stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ;
583
+
584
+ $osDiskName = ' osDisk' ;
585
+ $osDiskCaching = ' ReadWrite' ;
586
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
587
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
588
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
589
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
590
+
591
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
592
+
593
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
594
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
595
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
596
+ $p = Remove-AzureVMDataDisk - VM $p - Name ' testDataDisk3' ;
597
+
598
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
599
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
600
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
601
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
602
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
603
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
604
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
605
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
606
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
607
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
608
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
609
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].VirtualHardDisk.Uri $dataDiskVhdUri2 ;
610
+
611
+ # OS & Image
612
+ $user = " Foo12" ;
613
+ $password = ' BaR@123' + $rgname ;
614
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
615
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
616
+ $computerName = ' test' ;
617
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
618
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
619
+
620
+ # $p.StorageProfile.OSDisk = $null;
621
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
622
+
623
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
624
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
625
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
626
+
627
+ # Image Reference;
628
+ $p.StorageProfile.SourceImage = $null ;
629
+ $imgRef = Get-DefaultCRPImage ;
630
+ $p = Set-AzureVMSourceImage - VM $p - ImageReference $imgRef ;
631
+
632
+ # TODO: Remove Data Disks for now
633
+ $p.StorageProfile.DataDisks = $null ;
634
+
635
+ # Virtual Machine
636
+ # TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
637
+ New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
638
+
639
+ # Remove
640
+ Remove-AzureVM - Name $vmname2 - ResourceGroupName $rgname - Force;
641
+ }
642
+ finally
643
+ {
644
+ # Cleanup
645
+ Clean - ResourceGroup $rgname
646
+ }
647
+ }
0 commit comments