private async Task VerifyNonDefaultValuesSucceed() { // Negative tests for a bug in 5.0.0 that read-only fields have side-effect on the request body var testStatus = new InstanceViewStatus { Code = "test", DisplayStatus = "test", Message = "test" }; string inputAvailabilitySetName = Recording.GenerateAssetName("asnondefault"); var inputAvailabilitySet = new AvailabilitySet(TestEnvironment.Location) { Tags = { { "RG", "rg" }, { "testTag", "1" }, }, PlatformFaultDomainCount = nonDefaultFD, PlatformUpdateDomainCount = nonDefaultUD }; var createOrUpdateResponse = (await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet)).Value; // This call will also delete the Availability Set await ValidateResults(createOrUpdateResponse, inputAvailabilitySet, resourceGroup1Name, inputAvailabilitySetName, nonDefaultFD, nonDefaultUD); }
private async Task VerifyDefaultValuesSucceed() { var inputAvailabilitySetName = Recording.GenerateAssetName("asdefaultvalues"); var inputAvailabilitySet = new AvailabilitySet(TestEnvironment.Location) { Tags = new Dictionary <string, string>() { { "RG", "rg" }, { "testTag", "1" }, }, }; var createOrUpdateResponse = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet); // List AvailabilitySets string expectedAvailabilitySetId = Helpers.GetAvailabilitySetRef(subId, resourceGroup1Name, inputAvailabilitySetName); var listResponse = AvailabilitySetsOperations.ListAsync(resourceGroup1Name); var listResponseList = await listResponse.ToEnumerableAsync(); ValidateAvailabilitySet(inputAvailabilitySet, listResponseList.FirstOrDefault(x => x.Name == inputAvailabilitySetName), inputAvailabilitySetName, expectedAvailabilitySetId, defaultFD, defaultUD); AvailabilitySetUpdate updateParams = new AvailabilitySetUpdate() { Tags = inputAvailabilitySet.Tags }; string updateKey = "UpdateTag"; updateParams.Tags.Add(updateKey, "updateValue"); createOrUpdateResponse = await AvailabilitySetsOperations.UpdateAsync(resourceGroup1Name, inputAvailabilitySetName, updateParams); Assert.True(createOrUpdateResponse.Value.Tags.ContainsKey(updateKey)); // This call will also delete the Availability Set await ValidateResults(createOrUpdateResponse, inputAvailabilitySet, resourceGroup1Name, inputAvailabilitySetName, defaultFD, defaultUD); }
private async Task VerifyInvalidFDUDValuesFail() { var inputAvailabilitySetName = Recording.GenerateAssetName("invalidfdud"); var inputAvailabilitySet = new AvailabilitySet(TestEnvironment.Location) { Tags = { { "RG", "rg" }, { "testTag", "1" }, }, }; // function to test the limits available. inputAvailabilitySet.PlatformFaultDomainCount = FDTooLow; AvailabilitySet createOrUpdateResponse = null; try { createOrUpdateResponse = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet); } catch (Exception ex) //catch (CloudException ex) { Assert.NotNull(ex); //Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); } Assert.True(createOrUpdateResponse == null); inputAvailabilitySet.PlatformFaultDomainCount = FDTooHi; try { createOrUpdateResponse = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet); } catch (Exception ex) { Assert.NotNull(ex); //Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); } Assert.True(createOrUpdateResponse == null); inputAvailabilitySet.PlatformUpdateDomainCount = UDTooLow; try { createOrUpdateResponse = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet); } catch (Exception ex) { Assert.NotNull(ex); //Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); } Assert.True(createOrUpdateResponse == null); inputAvailabilitySet.PlatformUpdateDomainCount = UDTooHi; try { createOrUpdateResponse = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, inputAvailabilitySetName, inputAvailabilitySet); } catch (Exception ex) { Assert.NotNull(ex); //Assert.True(ex.Response.StatusCode == HttpStatusCode.BadRequest); } Assert.True(createOrUpdateResponse == null); }
// Make sure availability sets across resource groups are listed successfully private async Task VerifyListAvailabilitySetsInSubscription() { string resourceGroup2Name = baseResourceGroupName + "_2"; string baseInputAvailabilitySetName = Recording.GenerateAssetName("asdefaultvalues"); string availabilitySet1Name = baseInputAvailabilitySetName + "_1"; string availabilitySet2Name = baseInputAvailabilitySetName + "_2"; //try //{ AvailabilitySet inputAvailabilitySet1 = new AvailabilitySet(TestEnvironment.Location) { Tags = { { "RG1", "rg1" }, { "testTag", "1" }, }, }; AvailabilitySet outputAvailabilitySet1 = await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup1Name, availabilitySet1Name, inputAvailabilitySet1); resourceGroup2 = (await ResourceGroupsOperations.CreateOrUpdateAsync( resourceGroup2Name, new ResourceGroup(TestEnvironment.Location) { Tags = { { resourceGroup2Name, Recording.UtcNow.ToString("u") } } })).Value; AvailabilitySet inputAvailabilitySet2 = new AvailabilitySet(TestEnvironment.Location) { Tags = { { "RG2", "rg2" }, { "testTag", "2" }, }, }; AvailabilitySet outputAvailabilitySet2 = (await AvailabilitySetsOperations.CreateOrUpdateAsync( resourceGroup2Name, availabilitySet2Name, inputAvailabilitySet2)).Value; var response = AvailabilitySetsOperations.ListBySubscriptionAsync(); var resp = await response.ToEnumerableAsync(); //Assert.Null(resp.NextPageLink); foreach (AvailabilitySet availabilitySet in resp) { if (availabilitySet.Name == availabilitySet1Name) { Assert.AreEqual(inputAvailabilitySet1.Location, availabilitySet.Location); Assert.IsEmpty(availabilitySet.VirtualMachines); } else if (availabilitySet.Name == availabilitySet2Name) { Assert.AreEqual(inputAvailabilitySet2.Location, availabilitySet.Location); Assert.IsEmpty(availabilitySet.VirtualMachines); } } response = AvailabilitySetsOperations.ListBySubscriptionAsync("virtualMachines/$ref"); resp = await response.ToEnumerableAsync(); int validationCount = 0; foreach (AvailabilitySet availabilitySet in resp) { Assert.NotNull(availabilitySet.VirtualMachines); if (availabilitySet.Name == availabilitySet1Name) { Assert.AreEqual(0, availabilitySet.VirtualMachines.Count); await ValidateResults(outputAvailabilitySet1, inputAvailabilitySet1, resourceGroup1Name, availabilitySet1Name, defaultFD, defaultUD); validationCount++; } else if (availabilitySet.Name == availabilitySet2Name) { Assert.AreEqual(0, availabilitySet.VirtualMachines.Count); await ValidateResults(outputAvailabilitySet2, inputAvailabilitySet2, resourceGroup2Name, availabilitySet2Name, defaultFD, defaultUD); validationCount++; } } Assert.True(validationCount == 2); }