private void ValidateCapacityReservationGroup(CapacityReservationGroup expectedCRG, CapacityReservationGroup actualCRG) { if (expectedCRG == null) { Assert.Null(actualCRG); } else { Assert.NotNull(actualCRG); if (expectedCRG.CapacityReservations == null) { Assert.Null(actualCRG.CapacityReservations); } else { Assert.NotNull(actualCRG); Assert.True(actualCRG.CapacityReservations.SequenceEqual(expectedCRG.CapacityReservations)); } Assert.Equal(expectedCRG.Location, actualCRG.Location); Assert.Equal(expectedCRG.Name, actualCRG.Name); if (expectedCRG.Zones != null) { Assert.True(actualCRG.Zones.SequenceEqual(expectedCRG.Zones)); } } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.Name, VerbsCommon.New)) { CapacityReservationGroup capacityReservationGroup = new CapacityReservationGroup(); capacityReservationGroup.Location = this.Location; if (this.IsParameterBound(c => c.Tag)) { capacityReservationGroup.Tags = this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value); } if (this.IsParameterBound(c => c.Zone)) { capacityReservationGroup.Zones = this.Zone; } var result = CapacityReservationGroupClient.CreateOrUpdate(this.ResourceGroupName, this.Name, capacityReservationGroup); var psObject = new PSCapacityReservationGroup(); ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservationGroup, PSCapacityReservationGroup>(result, psObject); WriteObject(psObject); } }); }
private void ValidateCapacityReservationGroupInstanceView(CapacityReservationGroup actualCRGWithInstanceView, params CapacityReservation[] expectedCapacityReservationsInInstanceView) { Assert.NotNull(actualCRGWithInstanceView); Assert.Equal(expectedCapacityReservationsInInstanceView.Count(), actualCRGWithInstanceView.InstanceView.CapacityReservations.Count); foreach (CapacityReservation capacityReservation in expectedCapacityReservationsInInstanceView) { Assert.True(actualCRGWithInstanceView.InstanceView.CapacityReservations.FirstOrDefault(cr => cr.Name.Equals(capacityReservation.Name)) != null); } }
public void TestNonZonalCapacityReservationGroupInstanceView() { string originalTestLocation = Environment.GetEnvironmentVariable("AZURE_VM_TEST_LOCATION"); using (MockContext context = MockContext.Start(this.GetType())) { Environment.SetEnvironmentVariable("AZURE_VM_TEST_LOCATION", "southcentralus"); EnsureClientsInitialized(context); string baseRGName = ComputeManagementTestUtilities.GenerateName(TestPrefix); string rgName = baseRGName + "CR"; string crgName = "CRG-1"; string crName = "CR-1"; try { //Create a capacity reservation group, then get the capacity reseravation group and validate that they match CapacityReservationGroup createdCRG = CreateCapacityReservationGroup(rgName, crgName, availabilityZones: null); CapacityReservationGroup returnedCRG = m_CrpClient.CapacityReservationGroups.Get(rgName, crgName); ValidateCapacityReservationGroup(createdCRG, returnedCRG); //Create CapacityReservation within the CapacityReservationGroup and validate var createdCR = CreateCapacityReservation(rgName, crgName, crName, "Standard_DS1_v2"); var returnedCR = m_CrpClient.CapacityReservations.Get(rgName, crgName, crName); ValidateCapacityReservation(createdCR, returnedCR); // Validate Capacity Reservation group instance view CapacityReservationGroup returnedCRGWithInstanceView = m_CrpClient.CapacityReservationGroups.Get(rgName, crgName, CapacityReservationGroupInstanceViewTypes.InstanceView); ValidateCapacityReservationGroupInstanceView(returnedCRGWithInstanceView, createdCR); //Delete CapacityReservations and CapacityReservationGroups m_CrpClient.CapacityReservations.Delete(rgName, crgName, crName); m_CrpClient.CapacityReservationGroups.Delete(rgName, crgName); } finally { m_ResourcesClient.ResourceGroups.Delete(rgName); Environment.SetEnvironmentVariable("AZURE_VM_TEST_LOCATION", originalTestLocation); } } }
/// <summary> /// The operation to create or update a capacity reservation group. When /// updating a capacity reservation group, only tags may be modified. Please /// refer to https://aka.ms/CapacityReservation for more details. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='capacityReservationGroupName'> /// The name of the capacity reservation group. /// </param> /// <param name='parameters'> /// Parameters supplied to the Create capacity reservation Group. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <CapacityReservationGroup> CreateOrUpdateAsync(this ICapacityReservationGroupsOperations operations, string resourceGroupName, string capacityReservationGroupName, CapacityReservationGroup parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, capacityReservationGroupName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// The operation to create or update a capacity reservation group. When /// updating a capacity reservation group, only tags may be modified. Please /// refer to https://aka.ms/CapacityReservation for more details. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='capacityReservationGroupName'> /// The name of the capacity reservation group. /// </param> /// <param name='parameters'> /// Parameters supplied to the Create capacity reservation Group. /// </param> public static CapacityReservationGroup CreateOrUpdate(this ICapacityReservationGroupsOperations operations, string resourceGroupName, string capacityReservationGroupName, CapacityReservationGroup parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, capacityReservationGroupName, parameters).GetAwaiter().GetResult()); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { string resourceGroupName; string capacityReservationGroupName; if (this.ParameterSetName == ResourceIDParameterSet) { resourceGroupName = GetResourceGroupName(this.ResourceId); capacityReservationGroupName = GetResourceName(this.ResourceId, "Microsoft.Compute/capacityReservationGroups"); } else { resourceGroupName = this.ResourceGroupName; capacityReservationGroupName = this.Name; } if (ShouldGetByName(resourceGroupName, capacityReservationGroupName)) { CapacityReservationGroup result = new CapacityReservationGroup(); if (this.InstanceView.IsPresent) { result = CapacityReservationGroupClient.Get(resourceGroupName, capacityReservationGroupName, "InstanceView"); } else { result = CapacityReservationGroupClient.Get(resourceGroupName, capacityReservationGroupName); } var psObject = new PSCapacityReservationGroup(); ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservationGroup, PSCapacityReservationGroup>(result, psObject); WriteObject(psObject); } else if (ShouldListByResourceGroup(resourceGroupName, capacityReservationGroupName)) { var result = CapacityReservationGroupClient.ListByResourceGroup(resourceGroupName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = CapacityReservationGroupClient.ListByResourceGroupNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSCapacityReservationGroupList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservationGroup, PSCapacityReservationGroupList>(r)); } WriteObject(TopLevelWildcardFilter(resourceGroupName, capacityReservationGroupName, psObject), true); } else { var result = CapacityReservationGroupClient.ListBySubscription(); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = CapacityReservationGroupClient.ListBySubscriptionNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSCapacityReservationGroupList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservationGroup, PSCapacityReservationGroupList>(r)); } WriteObject(TopLevelWildcardFilter(resourceGroupName, capacityReservationGroupName, psObject), true); } }); }
public void TestCapacityReservationOperations() { string originalTestLocation = Environment.GetEnvironmentVariable("AZURE_VM_TEST_LOCATION"); using (MockContext context = MockContext.Start(this.GetType())) { Environment.SetEnvironmentVariable("AZURE_VM_TEST_LOCATION", "southcentralus"); EnsureClientsInitialized(context); string baseRGName = ComputeManagementTestUtilities.GenerateName(TestPrefix); string rgName = baseRGName + "CR"; string crgName = "CRG-1"; string crName = "CR-1"; try { // Create a capacity reservation group, then get the capacity reservation group and validate that they match CapacityReservationGroup createdCRG = CreateCapacityReservationGroup(rgName, crgName, new List <string> { "1", "2" }); CapacityReservationGroup returnedCRG = m_CrpClient.CapacityReservationGroups.Get(rgName, crgName); ValidateCapacityReservationGroup(createdCRG, returnedCRG); createdCRG.Tags = new Dictionary <string, string>() { { "testKey", "testValue" } }; returnedCRG = m_CrpClient.CapacityReservationGroups.Update(rgName, crgName, createdCRG.Tags); ValidateCapacityReservationGroup(createdCRG, returnedCRG); //List CapacityReservationGroups by subscription and by resourceGroup var listCRGsResponse = m_CrpClient.CapacityReservationGroups.ListByResourceGroup(rgName); Assert.Single(listCRGsResponse); ValidateCapacityReservationGroup(createdCRG, listCRGsResponse.First()); listCRGsResponse = m_CrpClient.CapacityReservationGroups.ListBySubscription(); returnedCRG = listCRGsResponse.First(crg => crg.Id == createdCRG.Id); Assert.NotNull(returnedCRG); ValidateCapacityReservationGroup(createdCRG, returnedCRG); //Create CapacityReservation within the CapacityReservationGroup and validate var createdCR = CreateCapacityReservation(rgName, crgName, crName, "Standard_DS1_v2", availabilityZone: "1"); var returnedCR = m_CrpClient.CapacityReservations.Get(rgName, crgName, crName); ValidateCapacityReservation(createdCR, returnedCR); //List CapacityReservations var listCRsResponse = m_CrpClient.CapacityReservations.ListByCapacityReservationGroup(rgName, crgName); Assert.Single(listCRsResponse); ValidateCapacityReservation(createdCR, listCRsResponse.First()); //Delete CapacityReservations and CapacityReservations m_CrpClient.CapacityReservations.Delete(rgName, crgName, crName); m_CrpClient.CapacityReservationGroups.Delete(rgName, crgName); } finally { m_ResourcesClient.ResourceGroups.Delete(rgName); Environment.SetEnvironmentVariable("AZURE_VM_TEST_LOCATION", originalTestLocation); } } }