Skip to content

Commit c3ffd25

Browse files
authored
CosmosPatchTransformationPolicy Not Applied in Sovereign Clouds (Azure#44682)
* Fixing cosmos patch bug for tables * Fixing cosmos patch bug for tables * Fixing cosmos patch bug for tables
1 parent c16b952 commit c3ffd25

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

sdk/tables/azure-data-tables/src/main/java/com/azure/data/tables/BuilderHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ final class BuilderHelper {
5151
private static final Map<String, String> PROPERTIES = CoreUtils.getProperties("azure-data-tables.properties");
5252
private static final String CLIENT_NAME = PROPERTIES.getOrDefault("name", "UnknownName");
5353
private static final String CLIENT_VERSION = PROPERTIES.getOrDefault("version", "UnknownVersion");
54-
private static final String COSMOS_ENDPOINT_SUFFIX = "cosmos.azure.com";
54+
private static final String COSMOS_ENDPOINT_SUFFIX = "cosmos.azure.";
5555
private static final String TABLES_TRACING_NAMESPACE_VALUE = "Microsoft.Tables";
5656

5757
public static final ClientOptions DEFAULT_CLIENT_OPTIONS = new ClientOptions();

sdk/tables/azure-data-tables/src/test/java/com/azure/data/tables/TableServiceClientBuilderTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.azure.core.test.utils.MockTokenCredential;
1818
import com.azure.core.util.ClientOptions;
1919
import com.azure.core.util.Header;
20+
import com.azure.data.tables.implementation.CosmosPatchTransformPolicy;
2021
import org.junit.jupiter.api.BeforeEach;
2122
import org.junit.jupiter.api.Test;
2223
import reactor.core.publisher.Mono;
@@ -36,6 +37,10 @@
3637
public class TableServiceClientBuilderTest {
3738

3839
private static final String ENDPOINT = "https://myAccount.table.core.windows.net";
40+
private static final String[] COSMOS_ENDPOINTS = {
41+
"https://myAccount.table.cosmos.azure.com",
42+
"https://myAccount.table.cosmos.azure.us",
43+
"https://myAccount.table.cosmos.azure.cn" };
3944
private static final String CONNECTION_STRING
4045
= "DefaultEndpointsProtocol=https;AccountName=myAccount;AccountKey=myKey;EndpointSuffix=core.windows.net";
4146
private static final TokenCredential CREDENTIAL = new MockTokenCredential();
@@ -316,4 +321,25 @@ public void buildWithDifferentEndpointInConnectionStringThrows() {
316321
"DefaultEndpointsProtocol=https;AccountName=myOtherAccount;AccountKey=myKey;EndpointSuffix=core.windows.net")
317322
.buildAsyncClient());
318323
}
324+
325+
@Test
326+
public void cosmosEndpointsResultsInCosmosPatchPolicyAppliedToBuilder() {
327+
for (String endpoint : COSMOS_ENDPOINTS) {
328+
TableServiceClient client = new TableServiceClientBuilder().endpoint(endpoint)
329+
.credential(CREDENTIAL)
330+
.serviceVersion(serviceVersion)
331+
.buildClient();
332+
333+
int policyCount = client.getHttpPipeline().getPolicyCount();
334+
assertTrue(client.getHttpPipeline().getPolicyCount() > 0);
335+
boolean detectedCosmosPatchPolicy = false;
336+
for (int i = 0; i < policyCount; i++) {
337+
if (client.getHttpPipeline().getPolicy(i) instanceof CosmosPatchTransformPolicy) {
338+
detectedCosmosPatchPolicy = true;
339+
break;
340+
}
341+
}
342+
assertTrue(detectedCosmosPatchPolicy);
343+
}
344+
}
319345
}

sdk/tables/test-resources.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
"type": "String"
77
},
88
"endpointType": {
9-
"type": "String"
9+
"type": "String",
10+
"allowedValues": [
11+
"storage",
12+
"cosmos"
13+
],
14+
"defaultValue": "cosmos"
1015
},
1116
"testApplicationOid": {
1217
"type": "string",
@@ -17,7 +22,7 @@
1722
},
1823
"variables": {
1924
"storageMgmtApiVersion": "2022-05-01",
20-
"cosmosMgmtApiVersion": "2024-05-15",
25+
"cosmosMgmtApiVersion": "2024-11-15",
2126
"cosmosAuthorizationApiVersion": "2023-07-01-preview",
2227
"storageAuthorizationApiVersion": "2018-09-01-preview",
2328
"blobDataContributorRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/0a9a7e1f-b9d0-4cc4-a60d-0319b160aaa3')]",

0 commit comments

Comments
 (0)