public void ListSubvolumes() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var netAppMgmtClient = NetAppTestUtilities.GetNetAppManagementClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); // create a volume, get all and check var resource = ResourceUtils.CreateVolume(netAppMgmtClient, enableSubvolumes: EnableSubvolumes.Enabled); //Assert.Equal(ResourceUtils.defaultExportPolicy.ToString(), resource.ExportPolicy.ToString()); //Assert.Null(resource.Tags); // check DP properties exist but unassigned because // dataprotection volume was not created Assert.Null(resource.VolumeType); Assert.Null(resource.DataProtection); var volumesBefore = netAppMgmtClient.Volumes.List(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1); Assert.Single(volumesBefore); // create subvolume SubvolumeInfo subvolumeInfo = new SubvolumeInfo(); subvolumeInfo.Path = "/subvolume1"; subvolumeInfo.Size = 5; var subvol = netAppMgmtClient.Subvolumes.Create(subvolumeInfo, ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume1"); Assert.NotNull(subvol); var getSubVolume = netAppMgmtClient.Subvolumes.Get(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume1"); Assert.NotNull(getSubVolume); // List subvolumes var getSubVolumesList = netAppMgmtClient.Subvolumes.ListByVolume(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1); Assert.NotNull(getSubVolumesList); Assert.Single(getSubVolumesList); // create subvolume2 SubvolumeInfo subvolumeInfo2 = new SubvolumeInfo(); subvolumeInfo2.Path = "/subvolume2"; subvolumeInfo2.Size = 5; var subvol2 = netAppMgmtClient.Subvolumes.Create(subvolumeInfo2, ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume2"); Assert.NotNull(subvol2); var getSubVolume2 = netAppMgmtClient.Subvolumes.Get(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume2"); Assert.NotNull(getSubVolume2); // List subvolumes getSubVolumesList = netAppMgmtClient.Subvolumes.ListByVolume(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1); Assert.NotNull(getSubVolumesList); Assert.Equal(2, getSubVolumesList.Count()); // cleanup netAppMgmtClient.Subvolumes.Delete(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume2"); netAppMgmtClient.Subvolumes.Delete(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, "subvolume1"); netAppMgmtClient.Volumes.Delete(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1); ResourceUtils.DeletePool(netAppMgmtClient); ResourceUtils.DeleteAccount(netAppMgmtClient); } }
/// <summary> /// Create or clone a new subvolume /// </summary> /// <remarks> /// Creates a subvolume in the path or clones the subvolume mentioned in the /// parentPath /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// Subvolume object supplied in the body of the operation. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='accountName'> /// The name of the NetApp account /// </param> /// <param name='poolName'> /// The name of the capacity pool /// </param> /// <param name='volumeName'> /// The name of the volume /// </param> /// <param name='subvolumeName'> /// The name of the subvolume. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <SubvolumeInfo> BeginCreateAsync(this ISubvolumesOperations operations, SubvolumeInfo body, string resourceGroupName, string accountName, string poolName, string volumeName, string subvolumeName, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCreateWithHttpMessagesAsync(body, resourceGroupName, accountName, poolName, volumeName, subvolumeName, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Create or clone a new subvolume /// </summary> /// <remarks> /// Creates a subvolume in the path or clones the subvolume mentioned in the /// parentPath /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// Subvolume object supplied in the body of the operation. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='accountName'> /// The name of the NetApp account /// </param> /// <param name='poolName'> /// The name of the capacity pool /// </param> /// <param name='volumeName'> /// The name of the volume /// </param> /// <param name='subvolumeName'> /// The name of the subvolume. /// </param> public static SubvolumeInfo BeginCreate(this ISubvolumesOperations operations, SubvolumeInfo body, string resourceGroupName, string accountName, string poolName, string volumeName, string subvolumeName) { return(operations.BeginCreateAsync(body, resourceGroupName, accountName, poolName, volumeName, subvolumeName).GetAwaiter().GetResult()); }