/// <summary> /// Performs pool change for given volume /// </summary> /// <param name="anfClient">ANF object</param> /// <param name="resourceGroupName">Resource group name</param> /// <param name="accountName">Azure NetApp Files Account name</param> /// <param name="poolName">Azure NetApp Files Capacity Pool name</param> /// <param name="volumeName">Azure NetApp Files Volume name</param> /// <param name="newPoolResourceId">New Capacity Pool resource Id</param> /// <returns></returns> public static async Task ChangeVolumeCapacityPoolAsync(AzureNetAppFilesManagementClient anfClient, string resourceGroupName, string accountName, string poolName, string volumeName, string newPoolResourceId) { PoolChangeRequest changeRequestBody = new PoolChangeRequest() { NewPoolResourceId = newPoolResourceId }; await anfClient.Volumes.PoolChangeAsync(resourceGroupName, accountName, poolName, volumeName, changeRequestBody); }
public override void ExecuteCmdlet() { if (ParameterSetName == ResourceIdParameterSet) { var resourceIdentifier = new ResourceIdentifier(ResourceId); ResourceGroupName = resourceIdentifier.ResourceGroupName; var parentResources = resourceIdentifier.ParentResource.Split('/'); AccountName = parentResources[1]; PoolName = parentResources[3]; Name = resourceIdentifier.ResourceName; } else if (ParameterSetName == ObjectParameterSet) { ResourceGroupName = InputObject.ResourceGroupName; var NameParts = InputObject.Name.Split('/'); AccountName = NameParts[0]; PoolName = NameParts[1]; Name = NameParts[2]; } else if (ParameterSetName == ParentObjectParameterSet) { ResourceGroupName = PoolObject.ResourceGroupName; var NameParts = PoolObject.Name.Split('/'); AccountName = NameParts[0]; PoolName = NameParts[1]; } Management.NetApp.Models.Volume existingVolume = null; try { existingVolume = AzureNetAppFilesManagementClient.Volumes.Get(ResourceGroupName, AccountName, PoolName, Name); } catch { existingVolume = null; } if (existingVolume == null) { throw new AzPSResourceNotFoundCloudException($"A Volume with name '{this.Name}' in resource group '{this.ResourceGroupName}' does not exists. Please use New-AzNetAppFilesVolume to create a new Volume."); } if (ShouldProcess(Name, string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.PoolChangeMessage, this.Name))) { var poolChangeBody = new PoolChangeRequest() { NewPoolResourceId = NewPoolResourceId }; var newPoolResourceIdentifier = new ResourceIdentifier(NewPoolResourceId); AzureNetAppFilesManagementClient.Volumes.PoolChange(ResourceGroupName, AccountName, PoolName, Name, poolChangeBody); var anfVolumes = AzureNetAppFilesManagementClient.Volumes.Get(ResourceGroupName, AccountName, newPoolResourceIdentifier.ResourceName, Name); WriteObject(anfVolumes, true); } }
public void ChangePoolForVolume() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var netAppMgmtClient = NetAppTestUtilities.GetNetAppManagementClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); // create the volume var volume = ResourceUtils.CreateVolume(netAppMgmtClient); // create the other pool var secondPool = ResourceUtils.CreatePool(netAppMgmtClient, ResourceUtils.poolName2, accountName: ResourceUtils.accountName1, resourceGroup: ResourceUtils.resourceGroup, location: ResourceUtils.location, poolOnly: true, serviceLevel: ServiceLevel.Standard); Assert.Equal("Premium", volume.ServiceLevel); Assert.Equal(100 * ResourceUtils.gibibyte, volume.UsageThreshold); if (Environment.GetEnvironmentVariable("AZURE_TEST_MODE") == "Record") { Thread.Sleep(30000); } var poolChangeRequest = new PoolChangeRequest() { NewPoolResourceId = secondPool.Id }; //Change pools netAppMgmtClient.Volumes.PoolChange(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName1, ResourceUtils.volumeName1, poolChangeRequest); if (Environment.GetEnvironmentVariable("AZURE_TEST_MODE") == "Record") { Thread.Sleep(30000); } // retrieve the volume and check var volume2 = netAppMgmtClient.Volumes.Get(ResourceUtils.resourceGroup, ResourceUtils.accountName1, ResourceUtils.poolName2, ResourceUtils.volumeName1); Assert.Equal(volume2.Name, ResourceUtils.accountName1 + '/' + ResourceUtils.poolName2 + '/' + ResourceUtils.volumeName1); // cleanup ResourceUtils.DeleteVolume(netAppMgmtClient, volumeName: ResourceUtils.volumeName1, accountName: ResourceUtils.accountName1, poolName: ResourceUtils.poolName2); ResourceUtils.DeletePool(netAppMgmtClient); ResourceUtils.DeletePool(netAppMgmtClient, poolName: ResourceUtils.poolName2); ResourceUtils.DeleteAccount(netAppMgmtClient); } }
public override void ExecuteCmdlet() { if (ParameterSetName == ResourceIdParameterSet) { var resourceIdentifier = new ResourceIdentifier(ResourceId); ResourceGroupName = resourceIdentifier.ResourceGroupName; var parentResources = resourceIdentifier.ParentResource.Split('/'); AccountName = parentResources[1]; PoolName = parentResources[3]; Name = resourceIdentifier.ResourceName; } else if (ParameterSetName == ObjectParameterSet) { ResourceGroupName = InputObject.ResourceGroupName; var NameParts = InputObject.Name.Split('/'); AccountName = NameParts[0]; PoolName = NameParts[1]; Name = NameParts[2]; } else if (ParameterSetName == ParentObjectParameterSet) { ResourceGroupName = PoolObject.ResourceGroupName; var NameParts = PoolObject.Name.Split('/'); AccountName = NameParts[0]; PoolName = NameParts[1]; } if (ShouldProcess(Name, string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.RemoveResourceMessage, ResourceGroupName))) { var poolChangeBody = new PoolChangeRequest() { NewPoolResourceId = NewPoolResourceId }; var newPoolResourceIdentifier = new ResourceIdentifier(NewPoolResourceId); AzureNetAppFilesManagementClient.Volumes.PoolChange(ResourceGroupName, AccountName, PoolName, Name, poolChangeBody); var anfVolumes = AzureNetAppFilesManagementClient.Volumes.Get(ResourceGroupName, AccountName, newPoolResourceIdentifier.ResourceName, Name); WriteObject(anfVolumes, true); } }