/// <summary> /// Generates a disk used when the DiskCreateOption is Copy /// </summary> /// <returns></returns> private async Task <Disk> GenerateCopyDisk(string rgName, int diskSizeGB, string location) { // Create an empty disk Disk originalDisk = await GenerateDefaultDisk("Empty", rgName, diskSizeGB : diskSizeGB); await ResourceGroupsOperations.CreateOrUpdateAsync(rgName, new ResourceGroup(location)); Disk diskOut = await WaitForCompletionAsync((await DisksOperations.StartCreateOrUpdateAsync(rgName, Recording.GenerateAssetName(DiskNamePrefix + "_original"), originalDisk))); Snapshot snapshot = GenerateDefaultSnapshot(diskOut.Id); Snapshot snapshotOut = await WaitForCompletionAsync((await SnapshotsOperations.StartCreateOrUpdateAsync(rgName, "snapshotswaaggertest", snapshot))); Disk copyDisk = GenerateBaseDisk("Import"); copyDisk.CreationData.SourceResourceId = snapshotOut.Id; return(copyDisk); }
protected async Task Snapshot_List_Execute(string diskCreateOption, string methodName, int?diskSizeGB = null) { EnsureClientsInitialized(DefaultLocation); // Data var rgName1 = Recording.GenerateAssetName(TestPrefix); var rgName2 = Recording.GenerateAssetName(TestPrefix); var diskName1 = Recording.GenerateAssetName(DiskNamePrefix); var diskName2 = Recording.GenerateAssetName(DiskNamePrefix); var snapshotName1 = Recording.GenerateAssetName(DiskNamePrefix); var snapshotName2 = Recording.GenerateAssetName(DiskNamePrefix); Disk disk1 = await GenerateDefaultDisk(diskCreateOption, rgName1, diskSizeGB); Disk disk2 = await GenerateDefaultDisk(diskCreateOption, rgName2, diskSizeGB); // ********** // SETUP // ********** // Create resource groups await ResourceGroupsOperations.CreateOrUpdateAsync(rgName1, new ResourceGroup(DiskRPLocation)); await ResourceGroupsOperations.CreateOrUpdateAsync(rgName2, new ResourceGroup(DiskRPLocation)); // Put 4 disks, 2 in each resource group Disk diskOut11 = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName1, diskName1, disk1)); Disk diskOut12 = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName1, diskName2, disk2)); Disk diskOut21 = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName2, diskName1, disk1)); Disk diskOut22 = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName2, diskName2, disk2)); // Generate 4 snapshots using disks info Snapshot snapshot11 = GenerateDefaultSnapshot(diskOut11.Id); Snapshot snapshot12 = GenerateDefaultSnapshot(diskOut12.Id, SnapshotStorageAccountTypes.StandardZRS.ToString()); Snapshot snapshot21 = GenerateDefaultSnapshot(diskOut21.Id); Snapshot snapshot22 = GenerateDefaultSnapshot(diskOut22.Id); // Put 4 snapshots, 2 in each resource group await WaitForCompletionAsync(await SnapshotsOperations.StartCreateOrUpdateAsync(rgName1, snapshotName1, snapshot11)); await WaitForCompletionAsync(await SnapshotsOperations.StartCreateOrUpdateAsync(rgName1, snapshotName2, snapshot12)); await WaitForCompletionAsync(await SnapshotsOperations.StartCreateOrUpdateAsync(rgName2, snapshotName1, snapshot21)); await WaitForCompletionAsync(await SnapshotsOperations.StartCreateOrUpdateAsync(rgName2, snapshotName2, snapshot22)); // ********** // TEST // ********** // List snapshots under resource group //IPage<Snapshot> snapshotsOut = await SnapshotsClient.ListByResourceGroupAsync(rgName1); var snapshotsOut = await SnapshotsOperations.ListByResourceGroupAsync(rgName1).ToEnumerableAsync(); Assert.AreEqual(2, snapshotsOut.Count()); //Assert.Null(snapshotsOut.NextPageLink); snapshotsOut = await SnapshotsOperations.ListByResourceGroupAsync(rgName2).ToEnumerableAsync(); Assert.AreEqual(2, snapshotsOut.Count()); //Assert.Null(snapshotsOut.NextPageLink); // List snapshots under subscription snapshotsOut = await SnapshotsOperations.ListAsync().ToEnumerableAsync(); Assert.True(snapshotsOut.Count() >= 4); //if (snapshotsOut.NextPageLink != null) //{ // snapshotsOut = await SnapshotsClient.ListNext(snapshotsOut.NextPageLink); // Assert.True(snapshotsOut.Any()); //} }
protected async Task Snapshot_CRUD_Execute(string diskCreateOption, string methodName, int?diskSizeGB = null, string location = null, bool incremental = false) { EnsureClientsInitialized(DefaultLocation); DiskRPLocation = location ?? DiskRPLocation; // Data var rgName = Recording.GenerateAssetName(TestPrefix); var diskName = Recording.GenerateAssetName(DiskNamePrefix); var snapshotName = Recording.GenerateAssetName(DiskNamePrefix); Disk sourceDisk = await GenerateDefaultDisk(diskCreateOption, rgName, diskSizeGB); // ********** // SETUP // ********** // Create resource group await ResourceGroupsOperations.CreateOrUpdateAsync(rgName, new ResourceGroup(DiskRPLocation)); // Put disk Disk diskOut = await WaitForCompletionAsync(await DisksOperations.StartCreateOrUpdateAsync(rgName, diskName, sourceDisk)); Validate(sourceDisk, diskOut, DiskRPLocation); // Generate snapshot using disk info Snapshot snapshot = GenerateDefaultSnapshot(diskOut.Id, incremental: incremental); // ********** // TEST // ********** // Put Snapshot snapshotOut = await WaitForCompletionAsync(await SnapshotsOperations.StartCreateOrUpdateAsync(rgName, snapshotName, snapshot)); Validate(snapshot, snapshotOut, incremental: incremental); // Get snapshotOut = (await SnapshotsOperations.GetAsync(rgName, snapshotName)).Value; Validate(snapshot, snapshotOut, incremental: incremental); // Get access AccessUri accessUri = await WaitForCompletionAsync((await SnapshotsOperations.StartGrantAccessAsync(rgName, snapshotName, new GrantAccessData(AccessDataDefault.Access, AccessDataDefault.DurationInSeconds)))); Assert.NotNull(accessUri.AccessSAS); // Get snapshotOut = (await SnapshotsOperations.GetAsync(rgName, snapshotName)).Value; Validate(snapshot, snapshotOut, incremental: incremental); // Patch var updatesnapshot = new SnapshotUpdate(); const string tagKey = "tageKey"; updatesnapshot.Tags = new Dictionary <string, string>() { { tagKey, "tagvalue" } }; snapshotOut = await WaitForCompletionAsync(await SnapshotsOperations.StartUpdateAsync(rgName, snapshotName, updatesnapshot)); Validate(snapshot, snapshotOut, incremental: incremental); // Get snapshotOut = (await SnapshotsOperations.GetAsync(rgName, snapshotName)).Value; Validate(snapshot, snapshotOut, incremental: incremental); // End access await WaitForCompletionAsync(await SnapshotsOperations.StartRevokeAccessAsync(rgName, snapshotName)); // Delete await WaitForCompletionAsync(await SnapshotsOperations.StartDeleteAsync(rgName, snapshotName)); try { // Ensure it was really deleted await SnapshotsOperations.GetAsync(rgName, snapshotName); Assert.False(true); } catch (Exception ex) { Assert.NotNull(ex); //Assert.AreEqual(HttpStatusCode.NotFound, ex.Response.StatusCode); } }