@@ -281,7 +281,7 @@ function Test-MultipleNetworkInterface
281
281
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [1 ].Primary true;
282
282
Assert-AreNotEqual $p.NetworkProfile.NetworkInterfaces [0 ].Primary true;
283
283
284
- # Storage Account (SA)
284
+ # Storage Account (SA)
285
285
$stoname = ' sto' + $rgname ;
286
286
$stotype = ' Standard_GRS' ;
287
287
New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
@@ -353,3 +353,110 @@ function Test-MultipleNetworkInterface
353
353
Clean - ResourceGroup $rgname
354
354
}
355
355
}
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