@@ -537,7 +537,6 @@ function Validate-VirtualMachineUsage
537
537
return $valid ;
538
538
}
539
539
540
-
541
540
<#
542
541
. SYNOPSIS
543
542
Test Virtual Machines with PIR v2
@@ -637,11 +636,207 @@ function Test-VirtualMachinePIRv2
637
636
New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
638
637
639
638
# Remove
640
- Remove-AzureVM - Name $vmname2 - ResourceGroupName $rgname - Force;
639
+ # Remove-AzureVM -ResourceGroupName $rgname -Name $vmname -Force;
640
+ }
641
+ finally
642
+ {
643
+ # Cleanup
644
+ Clean - ResourceGroup $rgname
645
+ }
646
+ }
647
+
648
+ <#
649
+ . SYNOPSIS
650
+ Test Virtual Machines Capture
651
+ #>
652
+ function Test-VirtualMachineCapture
653
+ {
654
+ # Setup
655
+ $rgname = Get-ComputeTestResourceName
656
+
657
+ try
658
+ {
659
+ # Common
660
+ $loc = ' eastasia' ;
661
+ New-AzureResourceGroup - Name $rgname - Location $loc ;
662
+
663
+ # VM Profile & Hardware
664
+ $vmsize = ' Standard_A4' ;
665
+ $vmname = ' vm' + $rgname ;
666
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
667
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
668
+
669
+ # NRP
670
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
671
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
672
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
673
+ $subnetId = $vnet.Subnets [0 ].Id;
674
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
675
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
676
+ $pubipId = $pubip.Id ;
677
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
678
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
679
+ $nicId = $nic.Id ;
680
+
681
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
682
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
683
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
684
+
685
+ # Storage Account (SA)
686
+ $stoname = ' sto' + $rgname ;
687
+ $stotype = ' Standard_GRS' ;
688
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
689
+ $stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ;
690
+
691
+ $osDiskName = ' osDisk' ;
692
+ $osDiskCaching = ' ReadWrite' ;
693
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
694
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
695
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
696
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
697
+
698
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
699
+
700
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
701
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
702
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
703
+ $p = Remove-AzureVMDataDisk - VM $p - Name ' testDataDisk3' ;
704
+
705
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
706
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
707
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
708
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
709
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
710
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
711
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
712
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
713
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
714
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
715
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
716
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].VirtualHardDisk.Uri $dataDiskVhdUri2 ;
717
+
718
+ # OS & Image
719
+ $user = " Foo12" ;
720
+ $password = ' BaR@123' + $rgname ;
721
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
722
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
723
+ $computerName = ' test' ;
724
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
725
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
726
+
727
+ # $p.StorageProfile.OSDisk = $null;
728
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
729
+
730
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
731
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
732
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
733
+
734
+ # Image Reference;
735
+ $p.StorageProfile.SourceImage = $null ;
736
+ $imgRef = Get-DefaultCRPImage ;
737
+ $p = Set-AzureVMSourceImage - VM $p - ImageReference $imgRef ;
738
+
739
+ # TODO: Remove Data Disks for now
740
+ $p.StorageProfile.DataDisks = $null ;
741
+
742
+ # Virtual Machine
743
+ # TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
744
+ New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
745
+
746
+ # Stop the VM before Capture
747
+ Stop-AzureVM - ResourceGroupName $rgname - Name $vmname - Force;
748
+
749
+ Set-AzureVM - Generalize - ResourceGroupName $rgname - Name $vmname ;
750
+
751
+ $dest = Get-ComputeTestResourceName ;
752
+ Save-AzureVMImage - ResourceGroupName $rgname - VMName $vmname - DestinationContainerName $dest - VHDNamePrefix ' pslib' - Overwrite;
753
+
754
+ # Remove
755
+ Remove-AzureVM - ResourceGroupName $rgname - Name $vmname - Force;
641
756
}
642
757
finally
643
758
{
644
759
# Cleanup
645
760
Clean - ResourceGroup $rgname
646
761
}
647
762
}
763
+
764
+ <#
765
+ . SYNOPSIS
766
+ Test Virtual Machines Data Disks
767
+ #>
768
+ function Test-VirtualMachineDataDisk
769
+ {
770
+ # Setup
771
+ $rgname = Get-ComputeTestResourceName
772
+
773
+ try
774
+ {
775
+ # Common
776
+ $loc = ' eastasia' ;
777
+ New-AzureResourceGroup - Name $rgname - Location $loc ;
778
+
779
+ # VM Profile & Hardware
780
+ $vmsize = ' Standard_A0' ;
781
+ $vmname = ' vm' + $rgname ;
782
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
783
+ # NRP
784
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
785
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
786
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
787
+ $subnetId = $vnet.Subnets [0 ].Id;
788
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
789
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
790
+ $pubipId = $pubip.Id ;
791
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
792
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
793
+ $nicId = $nic.Id ;
794
+
795
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
796
+
797
+ # Storage Account (SA)
798
+ $stoname = ' sto' + $rgname ;
799
+ $stotype = ' Standard_GRS' ;
800
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
801
+ $stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ;
802
+
803
+ $osDiskName = ' osDisk' ;
804
+ $osDiskCaching = ' ReadWrite' ;
805
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
806
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
807
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
808
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
809
+
810
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
811
+
812
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
813
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
814
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
815
+ $p = Remove-AzureVMDataDisk - VM $p - Name ' testDataDisk3' ;
816
+
817
+ # OS & Image
818
+ $user = " Foo12" ;
819
+ $password = ' BaR@123' + $rgname ;
820
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
821
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
822
+ $computerName = ' test' ;
823
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
824
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
825
+
826
+ # $p.StorageProfile.OSDisk = $null;
827
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
828
+
829
+ # Image Reference;
830
+ $p.StorageProfile.SourceImage = $null ;
831
+ $imgRef = Get-DefaultCRPImage ;
832
+ $p = Set-AzureVMSourceImage - VM $p - ImageReference $imgRef ;
833
+
834
+ # Negative Tests on A0 Size + 2 Data Disks
835
+ Assert-ThrowsContains { New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ; } " The value of parameter 'dataDisk.lun' is invalid." ;
836
+ }
837
+ finally
838
+ {
839
+ # Cleanup
840
+ Clean - ResourceGroup $rgname
841
+ }
842
+ }
0 commit comments