private async Task UltraSSD_CRUD_Helper(string location, string methodName, bool useZones = false, bool sharedDisks = false) { EnsureClientsInitialized(DefaultLocation); // Data var rgName = Recording.GenerateAssetName(TestPrefix); var diskName = Recording.GenerateAssetName(DiskNamePrefix); Disk disk = GenerateBaseDisk("Empty"); disk.Sku = new DiskSku(DiskStorageAccountTypes.UltraSSDLRS, "Ultra"); disk.DiskSizeGB = 32; if (useZones) { disk.Zones = new List <string> { "1" }; } disk.DiskMBpsReadWrite = 8; disk.DiskIopsReadWrite = 512; disk.Location = location; if (sharedDisks) { disk.DiskIopsReadOnly = 512; disk.DiskMBpsReadOnly = 8; disk.MaxShares = 2; } await ResourceGroupsOperations.CreateOrUpdateAsync(rgName, new ResourceGroup(location)); // Put Disk diskOut = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName, diskName, disk)); Validate(disk, diskOut, location); // Get diskOut = (await DisksOperations.GetAsync(rgName, diskName)).Value; Validate(disk, diskOut, location); // Patch const string tagKey = "tagKey"; var updatedisk = new DiskUpdate(); updatedisk.Tags = new Dictionary <string, string>() { { tagKey, "tagValue" } }; updatedisk.DiskMBpsReadWrite = 9; updatedisk.DiskIopsReadWrite = 600; if (sharedDisks) { updatedisk.DiskMBpsReadOnly = 9; updatedisk.DiskIopsReadOnly = 600; updatedisk.MaxShares = 3; } updatedisk.Sku = new DiskSku(DiskStorageAccountTypes.UltraSSDLRS, "Ultra"); diskOut = await WaitForCompletionAsync(await DisksOperations.StartUpdateAsync(rgName, diskName, updatedisk)); Validate(disk, diskOut, location, update: true); Assert.AreEqual(updatedisk.DiskIopsReadWrite, diskOut.DiskIopsReadWrite); Assert.AreEqual(updatedisk.DiskMBpsReadWrite, diskOut.DiskMBpsReadWrite); if (sharedDisks) { Assert.AreEqual(updatedisk.DiskIopsReadOnly, diskOut.DiskIopsReadOnly); Assert.AreEqual(updatedisk.DiskMBpsReadOnly, diskOut.DiskMBpsReadOnly); Assert.AreEqual(updatedisk.MaxShares, diskOut.MaxShares); } // Get diskOut = await DisksOperations.GetAsync(rgName, diskName); Validate(disk, diskOut, location, update: true); Assert.AreEqual(updatedisk.DiskIopsReadWrite, diskOut.DiskIopsReadWrite); Assert.AreEqual(updatedisk.DiskMBpsReadWrite, diskOut.DiskMBpsReadWrite); if (sharedDisks) { Assert.AreEqual(updatedisk.DiskIopsReadOnly, diskOut.DiskIopsReadOnly); Assert.AreEqual(updatedisk.DiskMBpsReadOnly, diskOut.DiskMBpsReadOnly); Assert.AreEqual(updatedisk.MaxShares, diskOut.MaxShares); } // Delete await WaitForCompletionAsync(await DisksOperations.StartDeleteAsync(rgName, diskName)); try { // Ensure it was really deleted await DisksOperations.GetAsync(rgName, diskName); Assert.False(true); } catch (Exception ex) { Assert.NotNull(ex); //Assert.AreEqual(HttpStatusCode.NotFound, ex.Response.StatusCode); } }
protected async Task Disk_CRUD_Execute(string diskCreateOption, string methodName, int?diskSizeGB = null, string location = null, IList <string> zones = null) { EnsureClientsInitialized(DefaultLocation); DiskRPLocation = location ?? DiskRPLocation; // Data var rgName = Recording.GenerateAssetName(TestPrefix); var diskName = Recording.GenerateAssetName(DiskNamePrefix); Disk disk = await GenerateDefaultDisk(diskCreateOption, rgName, diskSizeGB, zones, location); // ********** // SETUP // ********** // Create resource group, unless create option is import in which case resource group will be created with vm, // or copy in which casethe resource group will be created with the original disk. if (diskCreateOption != DiskCreateOption.Import && diskCreateOption != DiskCreateOption.Copy) { await ResourceGroupsOperations.CreateOrUpdateAsync(rgName, new ResourceGroup(DiskRPLocation)); } // ********** // TEST // ********** // Put Disk diskOut = await WaitForCompletionAsync((await DisksOperations.StartCreateOrUpdateAsync(rgName, diskName, disk))); Validate(disk, diskOut, DiskRPLocation); // Get diskOut = await DisksOperations.GetAsync(rgName, diskName); Validate(disk, diskOut, DiskRPLocation); //string resourceGroupName, string diskName, AccessLevel access, int durationInSeconds, CancellationToken cancellationToken = default // Get disk access AccessUri accessUri = await WaitForCompletionAsync(await DisksOperations.StartGrantAccessAsync(rgName, diskName, new GrantAccessData(AccessDataDefault.Access, AccessDataDefault.DurationInSeconds))); Assert.NotNull(accessUri.AccessSAS); // Get diskOut = await DisksOperations.GetAsync(rgName, diskName); Validate(disk, diskOut, DiskRPLocation); // Patch // TODO: Bug 9865640 - DiskRP doesn't follow patch semantics for zones: skip this for zones if (zones == null) { const string tagKey = "tageKey"; var updatedisk = new DiskUpdate(); updatedisk.Tags = new Dictionary <string, string>() { { tagKey, "tagvalue" } }; diskOut = await WaitForCompletionAsync(await DisksOperations.StartUpdateAsync(rgName, diskName, updatedisk)); Validate(disk, diskOut, DiskRPLocation); } // Get diskOut = await DisksOperations.GetAsync(rgName, diskName); Validate(disk, diskOut, DiskRPLocation); // End disk access await WaitForCompletionAsync(await DisksOperations.StartRevokeAccessAsync(rgName, diskName)); // Delete await WaitForCompletionAsync(await DisksOperations.StartDeleteAsync(rgName, diskName)); try { // Ensure it was really deleted await DisksOperations.GetAsync(rgName, diskName); Assert.False(true); } catch (Exception ex) { Assert.NotNull(ex); //Assert.AreEqual(HttpStatusCode.NotFound, ex.Response.StatusCode); } }