public async Task GetQueuesAsync_SecondaryStorageFirstRetrySuccessful() { TestExceptionPolicy testExceptionPolicy = await PerformSecondaryStorageTest(1); // one GET failure means the GET request should end up using the SECONDARY host AssertSecondaryStorageFirstRetrySuccessful(SecondaryStorageTenantPrimaryHost(), SecondaryStorageTenantSecondaryHost(), testExceptionPolicy); }
public async Task GetQueuesAsync_SecondaryStorageSecondRetrySuccessful() { TestExceptionPolicy testExceptionPolicy = await PerformSecondaryStorageTest(2); // two GET failures means the GET request should end up using the PRIMARY host AssertSecondaryStorageSecondRetrySuccessful(SecondaryStorageTenantPrimaryHost(), SecondaryStorageTenantSecondaryHost(), testExceptionPolicy); }
protected void AssertSecondaryStorageFirstRetrySuccessful(string primaryHost, string secondaryHost, TestExceptionPolicy testExceptionPolicy) { Assert.AreEqual(primaryHost, testExceptionPolicy.HostsSetInRequests[0]); Assert.AreEqual(secondaryHost, testExceptionPolicy.HostsSetInRequests[1]); }
protected void AssertSecondaryStorage404OnSecondary(string primaryHost, string secondaryHost, TestExceptionPolicy testExceptionPolicy) { Assert.AreEqual(primaryHost, testExceptionPolicy.HostsSetInRequests[0]); Assert.AreEqual(secondaryHost, testExceptionPolicy.HostsSetInRequests[1]); Assert.AreEqual(primaryHost, testExceptionPolicy.HostsSetInRequests[2]); Assert.AreEqual(primaryHost, testExceptionPolicy.HostsSetInRequests[3]); }
private BlobServiceClient GetSecondaryReadServiceClient(TenantConfiguration config, int numberOfReadFailuresToSimulate, out TestExceptionPolicy testExceptionPolicy, bool simulate404 = false, List <RequestMethod> enabledRequestMethods = null) { BlobClientOptions options = GetSecondaryStorageOptions(config, out testExceptionPolicy, numberOfReadFailuresToSimulate, simulate404, enabledRequestMethods); return(InstrumentClient( new BlobServiceClient( new Uri(config.BlobServiceEndpoint), new StorageSharedKeyCredential(config.AccountName, config.AccountKey), options))); }
public BlobServiceClient GetServiceClient_SecondaryAccount_ReadEnabledOnRetry(int numberOfReadFailuresToSimulate, out TestExceptionPolicy testExceptionPolicy, bool simulate404 = false, List <RequestMethod> enabledRequestMethods = null) => GetSecondaryReadServiceClient(Tenants.TestConfigSecondary, numberOfReadFailuresToSimulate, out testExceptionPolicy, simulate404, enabledRequestMethods);
private BlobContainerClient GetSecondaryReadBlobContainerClient(TenantConfiguration config, int numberOfReadFailuresToSimulate, out TestExceptionPolicy testExceptionPolicy, bool simulate404 = false, List <RequestMethod> enabledRequestMethods = null) { BlobClientOptions options = GetSecondaryStorageOptions(config, out testExceptionPolicy, numberOfReadFailuresToSimulate, simulate404, enabledRequestMethods); Uri uri = new Uri(config.BlobServiceEndpoint); string containerName = BlobsClientBuilder.GetNewContainerName(); return(InstrumentClient( new BlobContainerClient( uri.AppendToPath(containerName), new StorageSharedKeyCredential(config.AccountName, config.AccountKey), options))); }
public async Task GetQueuesAsync_SecondaryStorage404OnSecondary() { TestExceptionPolicy testExceptionPolicy = await PerformSecondaryStorageTest(3, true); // three GET failures + 404 on SECONDARY host means the GET request should end up using the PRIMARY host AssertSecondaryStorage404OnSecondary(SecondaryStorageTenantPrimaryHost(), SecondaryStorageTenantSecondaryHost(), testExceptionPolicy); }
public async Task ListContainersSegmentAsync_SecondaryStorageThirdRetrySuccessful() { TestExceptionPolicy testExceptionPolicy = await PerformSecondaryStorageTest(3); // three GET failures means the GET request should end up using the SECONDARY host AssertSecondaryStorageThirdRetrySuccessful(SecondaryStorageTenantPrimaryHost(), SecondaryStorageTenantSecondaryHost(), testExceptionPolicy); }
public QueueClient GetQueueClient_SecondaryAccount_ReadEnabledOnRetry(int numberOfReadFailuresToSimulate, out TestExceptionPolicy testExceptionPolicy, bool simulate404 = false) => GetSecondaryReadQueueClient(TestConfigSecondary, numberOfReadFailuresToSimulate, out testExceptionPolicy, simulate404);
private QueueClientOptions getSecondaryStorageOptions(TenantConfiguration config, out TestExceptionPolicy testExceptionPolicy, int numberOfReadFailuresToSimulate = 1, bool simulate404 = false, List <RequestMethod> enabledRequestMethods = null) { QueueClientOptions options = GetOptions(); options.GeoRedundantSecondaryUri = new Uri(config.QueueServiceSecondaryEndpoint); options.Retry.MaxRetries = 4; testExceptionPolicy = new TestExceptionPolicy(numberOfReadFailuresToSimulate, options.GeoRedundantSecondaryUri, simulate404, enabledRequestMethods); options.AddPolicy(testExceptionPolicy, HttpPipelinePosition.PerRetry); return(options); }