@Test @Category({ CloudTests.class }) public void testGetServiceStats() throws StorageException { CloudBlobClient bClient = BlobTestHelper.createCloudBlobClient(); bClient.getDefaultRequestOptions().setLocationMode(LocationMode.SECONDARY_ONLY); BlobTestHelper.verifyServiceStats(bClient.getServiceStats()); }
options.setLocationMode(LocationMode.SECONDARY_ONLY); options.setRetryPolicyFactory(new RetryNoRetry()); options.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY); options.setLocationMode(LocationMode.PRIMARY_THEN_SECONDARY);
private static void testContainerDownloadAttributes(LocationMode optionsLocationMode, LocationMode clientLocationMode, StorageLocation initialLocation, List<RetryContext> retryContextList, List<RetryInfo> retryInfoList) throws URISyntaxException, StorageException { CloudBlobContainer container = BlobTestHelper.getRandomContainerReference(); MultiLocationTestHelper helper = new MultiLocationTestHelper(container.getServiceClient().getStorageUri(), initialLocation, retryContextList, retryInfoList); container.getServiceClient().getDefaultRequestOptions().setLocationMode(clientLocationMode); BlobRequestOptions options = new BlobRequestOptions(); options.setLocationMode(optionsLocationMode); options.setRetryPolicyFactory(helper.retryPolicy); try { container.downloadAttributes(null, options, helper.operationContext); } catch (StorageException ex) { assertEquals(HttpURLConnection.HTTP_NOT_FOUND, ex.getHttpStatusCode()); } finally { helper.close(); } }
options.setLocationMode(LocationMode.PRIMARY_ONLY); container.createIfNotExists(options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.PRIMARY_THEN_SECONDARY); container.createIfNotExists(options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY); container.createIfNotExists(options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.SECONDARY_ONLY); try { container.createIfNotExists(options, context); options.setLocationMode(LocationMode.PRIMARY_ONLY); container.deleteIfExists(null, options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.PRIMARY_THEN_SECONDARY); container.deleteIfExists(null, options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY); container.deleteIfExists(null, options, context); assertEquals(StorageLocation.PRIMARY, context.getRequestResults().get(0).getTargetLocation()); options.setLocationMode(LocationMode.SECONDARY_ONLY);
eventOptions.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY); eventOptions.setLocationMode(LocationMode.SECONDARY_ONLY); container.createIfNotExists(eventOptions, eventContext); fail();
eventOptions.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY);
@Test @Category({ DevFabricTests.class, DevStoreTests.class, SecondaryTests.class }) public void testBlobMaximumExecutionTime() throws URISyntaxException, StorageException { OperationContext opContext = new OperationContext(); setDelay(opContext, 2500); // set the maximum execution time BlobRequestOptions options = new BlobRequestOptions(); options.setMaximumExecutionTimeInMs(2000); // set the location mode to secondary, secondary request should fail // so set the timeout low to save time failing (or fail with a timeout) options.setLocationMode(LocationMode.SECONDARY_THEN_PRIMARY); options.setTimeoutIntervalInMs(1000); CloudBlobClient blobClient = TestHelper.createCloudBlobClient(); CloudBlobContainer container = blobClient.getContainerReference(generateRandomName("container")); try { // 1. download attributes will fail as the container does not exist // 2. the executor will attempt to retry as it is accessing secondary // 3. maximum execution time should prevent the retry from being made container.downloadAttributes(null, options, opContext); fail("Maximum execution time was reached but request did not fail."); } catch (StorageException e) { assertEquals(SR.MAXIMUM_EXECUTION_TIMEOUT_EXCEPTION, e.getMessage()); } }