@@ -281,7 +281,7 @@ function Test-MultipleNetworkInterface
281281        Assert-AreEqual  $p.NetworkProfile.NetworkInterfaces  [1 ].Primary true;
282282        Assert-AreNotEqual  $p.NetworkProfile.NetworkInterfaces  [0 ].Primary true;
283283
284-                  #  Storage Account (SA)
284+         #  Storage Account (SA)
285285        $stoname  =  ' sto' +  $rgname ;
286286        $stotype  =  ' Standard_GRS' 
287287        New-AzureStorageAccount  - ResourceGroupName $rgname  - Name $stoname  - Location $loc  - Type $stotype ;
@@ -353,3 +353,110 @@ function Test-MultipleNetworkInterface
353353        Clean - ResourceGroup $rgname 
354354    }
355355}
356+ 
357+ <# 
358+ . SYNOPSIS 
359+ Test Virtual Machines with VMAgent and AutoUpdate 
360+ #> 
361+ function  Test-AddNetworkInterface 
362+ {
363+     #  Setup
364+     $rgname  =  Get-ComputeTestResourceName 
365+ 
366+     try 
367+     {
368+         #  Common
369+         $loc  =  ' westus' 
370+         New-AzureResourceGroup  - Name $rgname  - Location $loc  - Force;
371+ 
372+         #  VM Profile & Hardware
373+         $vmsize  =  ' Standard_A2' 
374+         $vmname  =  ' vm' +  $rgname ;
375+         $p  =  New-AzureVMConfig  - VMName $vmname  - VMSize $vmsize ;
376+         Assert-AreEqual  $p.HardwareProfile.VirtualMachineSize   $vmsize ;
377+ 
378+         #  NRP
379+         $subnet  =  New-AzureVirtualNetworkSubnetConfig  - Name (' subnet' +  $rgname ) - AddressPrefix " 10.0.0.0/24" 
380+         $vnet  =  New-AzureVirtualNetwork  - Force - Name (' vnet' +  $rgname ) - ResourceGroupName $rgname  - Location $loc  - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
381+         $vnet  =  Get-AzureVirtualNetwork  - Name (' vnet' +  $rgname ) - ResourceGroupName $rgname ;
382+         $subnetId  =  $vnet.Subnets  [0 ].Id;
383+         $pubip  =  New-AzurePublicIpAddress  - Force - Name (' pubip' +  $rgname ) - ResourceGroupName $rgname  - Location $loc  - AllocationMethod Dynamic - DomainNameLabel (' pubip' +  $rgname );
384+         $pubip  =  Get-AzurePublicIpAddress  - Name (' pubip' +  $rgname ) - ResourceGroupName $rgname ;
385+         $pubipId  =  $pubip.Id  ;
386+         $nic  =  New-AzureNetworkInterface  - Force - Name (' nic' +  $rgname ) - ResourceGroupName $rgname  - Location $loc  - SubnetId $subnetId  - PublicIpAddressId $pubip.Id  ;
387+         $nicId  =  $nic.Id  ;
388+ 
389+         $nicList  =  Get-AzureNetworkInterface  - ResourceGroupName $rgname ;
390+         $nicList [0 ].Primary =  $true ;
391+         $p  =  Add-AzureVMNetworkInterface  - VM $p  - NetworkInterface $nicList ;
392+         Assert-AreEqual  $p.NetworkProfile.NetworkInterfaces.Count   1 ;
393+         Assert-AreEqual  $p.NetworkProfile.NetworkInterfaces  [0 ].ReferenceUri $nicList [0 ].Id;
394+         Assert-AreEqual  $p.NetworkProfile.NetworkInterfaces  [0 ].Primary $true ;
395+ 
396+         #  Storage Account (SA)
397+         $stoname  =  ' sto' +  $rgname ;
398+         $stotype  =  ' Standard_GRS' 
399+         New-AzureStorageAccount  - ResourceGroupName $rgname  - Name $stoname  - Location $loc  - Type $stotype ;
400+         $stoaccount  =  Get-AzureStorageAccount  - ResourceGroupName $rgname  - Name $stoname ;
401+ 
402+         $osDiskName  =  ' osDisk' 
403+         $osDiskCaching  =  ' ReadWrite' 
404+         $osDiskVhdUri  =  " https://$stoname .blob.core.windows.net/test/os.vhd" 
405+         $dataDiskVhdUri1  =  " https://$stoname .blob.core.windows.net/test/data1.vhd" 
406+         $dataDiskVhdUri2  =  " https://$stoname .blob.core.windows.net/test/data2.vhd" 
407+         $dataDiskVhdUri3  =  " https://$stoname .blob.core.windows.net/test/data3.vhd" 
408+ 
409+         $p  =  Set-AzureVMOSDisk  - VM $p  - Name $osDiskName  - VhdUri $osDiskVhdUri  - Caching $osDiskCaching  - CreateOption FromImage;
410+ 
411+         $p  =  Add-AzureVMDataDisk  - VM $p  - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10  - Lun 1  - VhdUri $dataDiskVhdUri1  - CreateOption Empty;
412+         $p  =  Add-AzureVMDataDisk  - VM $p  - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11  - Lun 2  - VhdUri $dataDiskVhdUri2  - CreateOption Empty;
413+ 
414+         Assert-AreEqual  $p.StorageProfile.OSDisk.Caching   $osDiskCaching ;
415+         Assert-AreEqual  $p.StorageProfile.OSDisk.Name   $osDiskName ;
416+         Assert-AreEqual  $p.StorageProfile.OSDisk.VirtualHardDisk.Uri   $osDiskVhdUri ;
417+         Assert-AreEqual  $p.StorageProfile.DataDisks.Count   2 ;
418+         Assert-AreEqual  $p.StorageProfile.DataDisks  [0 ].Caching ' ReadOnly' 
419+         Assert-AreEqual  $p.StorageProfile.DataDisks  [0 ].DiskSizeGB 10 ;
420+         Assert-AreEqual  $p.StorageProfile.DataDisks  [0 ].Lun 1 ;
421+         Assert-AreEqual  $p.StorageProfile.DataDisks  [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
422+         Assert-AreEqual  $p.StorageProfile.DataDisks  [1 ].Caching ' ReadOnly' 
423+         Assert-AreEqual  $p.StorageProfile.DataDisks  [1 ].DiskSizeGB 11 ;
424+         Assert-AreEqual  $p.StorageProfile.DataDisks  [1 ].Lun 2 ;
425+         Assert-AreEqual  $p.StorageProfile.DataDisks  [1 ].VirtualHardDisk.Uri $dataDiskVhdUri2 ;
426+ 
427+ 		#  OS & Image
428+         $user  =  " Foo12" 
429+         $password  =  ' BaR@123' +  $rgname ;
430+         $securePassword  =  ConvertTo-SecureString  $password  - AsPlainText - Force;
431+         $cred  =  New-Object  System.Management.Automation.PSCredential ($user ,  $securePassword );
432+         $computerName  =  ' test' 
433+         $p  =  Set-AzureVMOperatingSystem  - VM $p  - Windows - ComputerName $computerName  - Credential $cred ;
434+ 
435+         Assert-AreEqual  $p.OSProfile.AdminUsername   $user ;
436+         Assert-AreEqual  $p.OSProfile.ComputerName   $computerName ;
437+         Assert-AreEqual  $p.OSProfile.AdminPassword   $password ;
438+ 
439+         #  Image Reference
440+         $imgRef  =  Get-DefaultCRPImage ;
441+         $p  =  ($imgRef  |  Set-AzureVMSourceImage  - VM $p );
442+         Assert-NotNull  $p.StorageProfile.ImageReference  ;
443+         Assert-Null  $p.StorageProfile.SourceImageId  ;
444+ 
445+         #  TODO: Remove Data Disks for now
446+         $p.StorageProfile.DataDisks   =  $null ;
447+ 
448+         #  Virtual Machine
449+         #  TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
450+         New-AzureVM  - ResourceGroupName $rgname  - Location $loc  - Name $vmname  - VM $p ;
451+ 
452+         $vm1  =  Get-AzureVM  - Name $vmname  - ResourceGroupName $rgname ;
453+         Assert-AreEqual  $vm1.Name   $vmname ;
454+         Assert-AreEqual  $vm1.NetworkProfile.NetworkInterfaces.Count   1 ;
455+         Assert-AreEqual  $vm1.NetworkProfile.NetworkInterfaces  [0 ].ReferenceUri $nicId ;
456+     }
457+     finally 
458+     {
459+         #  Cleanup
460+         Clean - ResourceGroup $rgname 
461+     }
462+ }
0 commit comments