public void Test_BatchMLTotalLowPriorityCoresPutRequestFailedDueToQuotaReduction() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); var newQuotaLimit = new CurrentQuotaLimitBase() { Properties = new QuotaProperties() { Limit = 2, Name = new ResourceName() { Value = "TotalLowPriorityCores" }, ResourceType = "lowPriority" } }; try { using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var quotaResponse = reservationsClient.Quota.CreateOrUpdate(QuotaSubscriptionId, BatchMLProviderId, LocationWUS, newQuotaLimit.Properties.Name.Value, newQuotaLimit); } } catch (CloudException ex) { Assert.Contains("Quota reduction is not supported", ex.ToString()); } }
public void Test_ComputeQuotaRequestsHistoryWithFilter() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); int noOfItemsRequested = 3; using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var quotaRequests = reservationsClient.QuotaRequestStatus.List(QuotaSubscriptionId, ComputeProviderId, LocationEUS, top: noOfItemsRequested); Assert.True(quotaRequests.Count() == noOfItemsRequested); Assert.True(quotaRequests.All(x => // x.ProvisioningState != null && x.Name != null && x.Id != null && x.Type != null )); } }
public void Test_ComputeSkusPatchRequestFailedDueToQuotaReduction() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); var newQuotaLimit = new CurrentQuotaLimitBase() { Properties = new QuotaProperties() { Limit = 2, Name = new ResourceName() { Value = SKUName } } }; try { using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var quotaResponse = reservationsClient.Quota.Update(QuotaSubscriptionId, ComputeProviderId, LocationWUS, newQuotaLimit.Properties.Name.Value, newQuotaLimit); System.Diagnostics.Trace.TraceInformation($"Response: {quotaResponse}"); } } catch (CloudException ex) { System.Diagnostics.Trace.TraceInformation($"Exception: {ex}"); Assert.Contains("Request failed.", ex.ToString()); } }
public void Test_AQMPutRequestDisabled() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); var newQAqi = new AutoQuotaIncreaseDetail() { Settings = new AqiSettings() { AutoQuotaIncreaseState = "Disabled" } }; try { using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var response = reservationsClient.AutoQuotaIncrease.Create(QuotaSubscriptionId, newQAqi); Assert.True(response.Settings.AutoQuotaIncreaseState.ToString() == "Disabled"); } } catch (CloudException ex) { Assert.False(false, $"Not excpected {ex.ToString()}"); } }
private void TestUpdateReservationToSingle(string reservationOrderId, string reservationId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var reservations = reservationsClient.Reservation.List(reservationOrderId); var enumerator1 = reservations.GetEnumerator(); ReservationResponse validReservation = null; while (enumerator1.MoveNext()) { var currentReservation = enumerator1.Current; if (String.Equals(currentReservation.Properties.ProvisioningState, "Succeeded")) { validReservation = currentReservation; break; } } Assert.NotNull(validReservation); reservationId = validReservation.Id.Split('/')[6]; Patch Patch = new Patch(AppliedScopeType.Single, new List <string>() { $"/subscriptions/{Common.SubscriptionId}" }, InstanceFlexibility.On); var reservation = reservationsClient.Reservation.Update(reservationOrderId, reservationId, Patch); ValidateReservation(reservation); } }
private void TestUpdateRenewalProperties(string reservationOrderId, string reservationId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var reservations = reservationsClient.Reservation.List(reservationOrderId); var enumerator1 = reservations.GetEnumerator(); ReservationResponse validReservation = null; while (enumerator1.MoveNext()) { var currentReservation = enumerator1.Current; if (String.Equals(currentReservation.Properties.ProvisioningState, "Succeeded")) { validReservation = currentReservation; break; } } Assert.NotNull(validReservation); reservationId = validReservation.Id.Split('/')[6]; var renewProperties = new PatchPropertiesRenewProperties() { PurchaseProperties = CreatePurchaseRequestBody() }; Patch Patch = new Patch(renew: true, renewProperties: renewProperties); var reservation = reservationsClient.Reservation.Update(reservationOrderId, reservationId, Patch); var reservationWithRenewProperties = reservationsClient.Reservation.Get(reservationId, reservationOrderId, "renewProperties"); ValidateReservation(reservationWithRenewProperties); Assert.True(reservationWithRenewProperties.Properties.Renew); Assert.NotNull(reservationWithRenewProperties.Properties.RenewProperties); } }
public void TestListOperations() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var operations = reservationsClient.Operation.List(); Assert.NotNull(operations); Assert.True(operations.Any()); bool serviceLimitsOperationFound = false; var enumerator = operations.GetEnumerator(); while (enumerator.MoveNext()) { var operation = enumerator.Current; Assert.NotNull(operation.Name); Assert.NotNull(operation.Display.Provider); Assert.NotNull(operation.Display.Resource); Assert.NotNull(operation.Display.Operation); Assert.NotNull(operation.Display.Description); if (operation.Name.Contains("serviceLimits")) { serviceLimitsOperationFound = true; } } Assert.True(serviceLimitsOperationFound, "ServiceLimits Operations should be listed"); } }
private void TestGetReservation(string reservationOrderId, string reservationId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var reservation = reservationsClient.Reservation.Get(reservationId, reservationOrderId); ValidateReservation(reservation); } }
private void TestGetAvailableScopes(string reservationOrderId, string reservationId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var scope = new ScopeProperties($"/subscriptions/{Common.SubscriptionId}"); var body = new SubscriptionScopeProperties(scope); var res = reservationsClient.Reservation.AvailableScopes(reservationOrderId, reservationId, body); } }
public void TestListReservationOrders() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var reservationOrderList = reservationsClient.ReservationOrder.List(); var enumerator = reservationOrderList.GetEnumerator(); if (enumerator.MoveNext()) { ValidateReservationOrder(enumerator.Current); } } }
private void TestListReservationRevisions(string reservationOrderId, string reservationId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var revisions = reservationsClient.Reservation.ListRevisions(reservationId, reservationOrderId); Assert.NotNull(revisions); Assert.True(revisions.Any()); var enumerator = revisions.GetEnumerator(); if (enumerator.MoveNext()) { ValidateReservation(enumerator.Current); } } }
public void TestGetAppliedReservations() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var appliedReservations = reservationsClient.GetAppliedReservationList(SubscriptionId); Assert.NotNull(appliedReservations.Id); Assert.NotNull(appliedReservations.Name); Assert.NotNull(appliedReservations.Type); string reservationOrderIdPattern = @"^\/providers\/Microsoft\.Capacity\/reservationorders\/[\w-]+$"; Assert.True(appliedReservations.ReservationOrderIds.Value.All(x => x is string && Regex.Match(x, reservationOrderIdPattern).Success )); } }
public void Test_GetAQMProperties() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var aqiProperties = reservationsClient.AutoQuotaIncrease.GetProperties(QuotaSubscriptionId); Assert.True(aqiProperties.Id != null && aqiProperties.Name != null && aqiProperties.Settings.AutoQuotaIncreaseState != null ); } }
public void Test_ComputeOneSkusGetRequest() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var quota = reservationsClient.Quota.Get(QuotaSubscriptionId, ComputeProviderId, LocationWUS, SKUName); Assert.True(quota.Properties.Limit != null && quota.Properties.Name != null && quota.Properties.CurrentValue != null ); } }
public void Test_ComputeQuotaRequestsById() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var quotaRequest = reservationsClient.QuotaRequestStatus.Get(QuotaSubscriptionId, ComputeProviderId, LocationWUS, QuotaRequestId); Assert.True(quotaRequest.ProvisioningState != null && quotaRequest.Name != null && quotaRequest.Id != null && quotaRequest.RequestSubmitTime != null ); } }
protected ReservationOrderResponse PurchaseReservationOrder() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var calculateRequest = CreatePurchaseRequestBody(); var calculateResponse = reservationsClient.ReservationOrder.Calculate(calculateRequest); var reservationOrderId = calculateResponse?.Properties?.ReservationOrderId; Assert.NotNull(reservationOrderId); var purchaseResponse = reservationsClient.ReservationOrder.Purchase(reservationOrderId, calculateRequest); ValidateReservationOrder(purchaseResponse); return(purchaseResponse); } }
public void Test_BatchMLBadResourceIdPutRequestFailed() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); var badResourceId = "badResId"; var newQuotaLimit = new CurrentQuotaLimitBase() { Properties = new QuotaProperties() { Limit = 2000, Name = new ResourceName() { Value = badResourceId }, ResourceType = "lowPriority" } }; try { using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient( context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.BadRequest }); var quotaResponse = reservationsClient.Quota.CreateOrUpdate(QuotaSubscriptionId, BatchMLProviderId, LocationWUS, newQuotaLimit.Properties.Name.Value, newQuotaLimit); } } catch (CloudException ex) { Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); Assert.Contains("BadRequest", ex.ToString()); } catch (ExceptionResponseException ex) { Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); } }
public void TestGetCatalog() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.VirtualMachines, "westus"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.SqlDatabases, "southeastasia"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.SuseLinux); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); } }
private void TestSplitAndMerge(string reservationOrderId) { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType().FullName)) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var reservations = reservationsClient.Reservation.List(reservationOrderId); var enumerator1 = reservations.GetEnumerator(); ReservationResponse validReservation = null; while (enumerator1.MoveNext()) { var currentReservation = enumerator1.Current; if (String.Equals(currentReservation.Properties.ProvisioningState, "Succeeded")) { validReservation = currentReservation; break; } } Assert.NotNull(validReservation); var reservationId = validReservation.Id.Split('/')[6]; // Begin split test SplitRequest Split = new SplitRequest( new List <int?>() { 1, 2 }, CreateResourceId(reservationOrderId, reservationId) ); var splitResponse = reservationsClient.Reservation.Split(reservationOrderId, Split); Assert.NotNull(splitResponse); Assert.True(splitResponse.Any()); var enumerator2 = splitResponse.GetEnumerator(); ReservationResponse splitReservation1 = null; ReservationResponse splitReservation2 = null; while (enumerator2.MoveNext()) { var currentReservation = enumerator2.Current; if (String.Equals(currentReservation.Properties.ProvisioningState, "Succeeded")) { if (splitReservation1 == null) { splitReservation1 = currentReservation; } else { splitReservation2 = currentReservation; } } } var splitReservationId1 = splitReservation1.Id.Split('/')[6]; var splitReservationId2 = splitReservation2.Id.Split('/')[6]; // Begin merge test MergeRequest Merge = new MergeRequest( new List <string>() { CreateResourceId(reservationOrderId, splitReservationId1), CreateResourceId(reservationOrderId, splitReservationId2) } ); var mergeResponse = reservationsClient.Reservation.Merge(reservationOrderId, Merge); var enumerator3 = splitResponse.GetEnumerator(); ReservationResponse mergedReservation = null; while (enumerator3.MoveNext()) { var currentReservation = enumerator3.Current; if (String.Equals(currentReservation.Properties.ProvisioningState, "Succeeded")) { mergedReservation = currentReservation; } } Assert.NotNull(mergedReservation); ValidateReservation(mergedReservation); } }
public void TestGetCatalog() { HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath(); using (MockContext context = MockContext.Start(this.GetType())) { var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); var catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.VirtualMachines, "westus"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.SqlDatabases, "southeastasia"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.SqlDataWarehouse, "eastus"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.VMwareCloudSimple, "eastus"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations != null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.SuseLinux); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.CosmosDb); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.RedHat); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.RedHatOsa); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); catalog = reservationsClient.GetCatalog(SubscriptionId, ReservedResourceType.VirtualMachineSoftware, publisherId: "test_test_pmc2pc1", offerId: "mnk_vmri_test_001", planId: "testplan001"); Assert.True(catalog.All(x => x.ResourceType != null && x.Name != null && x.SkuProperties != null && x.Locations == null && x.Terms != null )); } }