Skip to content

Commit 36a1066

Browse files
Sync Azure environment resolution logic with Go SDK (#667)
## What changes are proposed in this pull request? ### Summary Unified the Azure environment resolution logic between `getAzureEnvironment()` and `getDatabricksEnvironment()` to ensure consistent behavior and sync with the Go SDK implementation. ### Problem Previously, `getAzureEnvironment()` and `getDatabricksEnvironment()` had separate, independent logic for resolving Azure environments, which could lead to inconsistent results: - `getAzureEnvironment()` always defaulted to "PUBLIC" and directly called `AzureEnvironment.getEnvironment()` - `getDatabricksEnvironment()` had its own Azure environment matching logic that was only triggered when `host == null` This divergence meant that `config.getAzureEnvironment()` and `config.getDatabricksEnvironment().getAzureEnvironment()` could return different values for the same configuration. ### Changes 1. **Unified environment resolution**: `getAzureEnvironment()` now delegates to `getDatabricksEnvironment().getAzureEnvironment()` instead of maintaining separate logic 2. **Expanded Azure environment matching condition**: Updated `getDatabricksEnvironment()` to trigger Azure environment matching when: - `azureWorkspaceResourceId` is set AND - Either `host` is null OR `azureEnvironment` is explicitly set This allows users to explicitly override the environment even when a host is configured. 3. **Updated test**: Modified `DatabricksAuthManualTest.azureCliUserWithManagementAccess` to explicitly set `azureEnvironment("PUBLIC")` to reflect the new unified behavior. ## Testing - All 1067 tests passing ✅ - Verified Azure CLI authentication works correctly with explicit environment setting - Confirmed consistent behavior between `getAzureEnvironment()` and `getDatabricksEnvironment().getAzureEnvironment()`
1 parent bc904c2 commit 36a1066

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

NEXT_CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
### Bug Fixes
88

9+
* Fixed inconsistent Azure environment resolution between `getAzureEnvironment()` and `getDatabricksEnvironment()` methods ([#XXX](https://github.com/databricks/databricks-sdk-java/pull/XXX))
10+
911
### Security Vulnerabilities
1012

1113
### Documentation

databricks-sdk-java/src/main/java/com/databricks/sdk/core/DatabricksConfig.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -532,11 +532,7 @@ public DatabricksConfig setAzureTenantId(String azureTenantId) {
532532
}
533533

534534
public AzureEnvironment getAzureEnvironment() {
535-
String env = "PUBLIC";
536-
if (azureEnvironment != null) {
537-
env = azureEnvironment;
538-
}
539-
return AzureEnvironment.getEnvironment(env);
535+
return getDatabricksEnvironment().getAzureEnvironment();
540536
}
541537

542538
public DatabricksConfig setAzureEnvironment(String azureEnvironment) {
@@ -871,10 +867,11 @@ public DatabricksEnvironment getDatabricksEnvironment() {
871867
return this.databricksEnvironment;
872868
}
873869

874-
if (this.host == null && this.azureWorkspaceResourceId != null) {
870+
if ((this.host == null || this.azureEnvironment != null)
871+
&& this.azureWorkspaceResourceId != null) {
875872
String azureEnv = "PUBLIC";
876-
if (this.azureEnvironment != null) {
877-
azureEnv = this.azureEnvironment;
873+
if (this.azureEnvironment != null && !this.azureEnvironment.isEmpty()) {
874+
azureEnv = this.azureEnvironment.toUpperCase();
878875
}
879876
for (DatabricksEnvironment env : DatabricksEnvironment.ALL_ENVIRONMENTS) {
880877
if (env.getCloud() != Cloud.AZURE) {

databricks-sdk-java/src/test/java/com/databricks/sdk/DatabricksAuthManualTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ void azureCliUserWithManagementAccess() {
5050
createConfigWithMockClient()
5151
.setAuthType("azure-cli")
5252
.setHost("https://x")
53+
.setAzureEnvironment("PUBLIC")
5354
.setAzureWorkspaceResourceId(azureWorkspaceResourceId);
5455
resolveConfig(config, env);
5556
Map<String, String> headers = config.authenticate();

0 commit comments

Comments
 (0)