Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codegen/_openapi_sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4ad0f0856225e3ebc6bb11392d09d63a19e6d140
a7c320a6b531263c8fa45619c1565b63849750e5
20 changes: 20 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ docs/data-sources/apps_settings_custom_template.md linguist-generated=true
docs/data-sources/apps_settings_custom_templates.md linguist-generated=true
docs/data-sources/budget_policies.md linguist-generated=true
docs/data-sources/budget_policy.md linguist-generated=true
docs/data-sources/data_classification_catalog_config.md linguist-generated=true
docs/data-sources/data_quality_monitor.md linguist-generated=true
docs/data-sources/data_quality_monitors.md linguist-generated=true
docs/data-sources/data_quality_refresh.md linguist-generated=true
Expand All @@ -43,6 +44,10 @@ docs/data-sources/feature_engineering_kafka_config.md linguist-generated=true
docs/data-sources/feature_engineering_kafka_configs.md linguist-generated=true
docs/data-sources/feature_engineering_materialized_feature.md linguist-generated=true
docs/data-sources/feature_engineering_materialized_features.md linguist-generated=true
docs/data-sources/knowledge_assistant.md linguist-generated=true
docs/data-sources/knowledge_assistant_knowledge_source.md linguist-generated=true
docs/data-sources/knowledge_assistant_knowledge_sources.md linguist-generated=true
docs/data-sources/knowledge_assistants.md linguist-generated=true
docs/data-sources/materialized_features_feature_tag.md linguist-generated=true
docs/data-sources/materialized_features_feature_tags.md linguist-generated=true
docs/data-sources/online_store.md linguist-generated=true
Expand Down Expand Up @@ -78,6 +83,7 @@ docs/resources/alert_v2.md linguist-generated=true
docs/resources/app_space.md linguist-generated=true
docs/resources/apps_settings_custom_template.md linguist-generated=true
docs/resources/budget_policy.md linguist-generated=true
docs/resources/data_classification_catalog_config.md linguist-generated=true
docs/resources/data_quality_monitor.md linguist-generated=true
docs/resources/data_quality_refresh.md linguist-generated=true
docs/resources/database_database_catalog.md linguist-generated=true
Expand All @@ -89,6 +95,8 @@ docs/resources/external_metadata.md linguist-generated=true
docs/resources/feature_engineering_feature.md linguist-generated=true
docs/resources/feature_engineering_kafka_config.md linguist-generated=true
docs/resources/feature_engineering_materialized_feature.md linguist-generated=true
docs/resources/knowledge_assistant.md linguist-generated=true
docs/resources/knowledge_assistant_knowledge_source.md linguist-generated=true
docs/resources/materialized_features_feature_tag.md linguist-generated=true
docs/resources/online_store.md linguist-generated=true
docs/resources/policy_info.md linguist-generated=true
Expand Down Expand Up @@ -137,6 +145,8 @@ internal/providers/pluginfw/products/apps_settings_custom_template/resource_apps
internal/providers/pluginfw/products/budget_policy/data_budget_policies.go linguist-generated=true
internal/providers/pluginfw/products/budget_policy/data_budget_policy.go linguist-generated=true
internal/providers/pluginfw/products/budget_policy/resource_budget_policy.go linguist-generated=true
internal/providers/pluginfw/products/data_classification_catalog_config/data_data_classification_catalog_config.go linguist-generated=true
internal/providers/pluginfw/products/data_classification_catalog_config/resource_data_classification_catalog_config.go linguist-generated=true
internal/providers/pluginfw/products/data_quality_monitor/data_data_quality_monitor.go linguist-generated=true
internal/providers/pluginfw/products/data_quality_monitor/data_data_quality_monitors.go linguist-generated=true
internal/providers/pluginfw/products/data_quality_monitor/resource_data_quality_monitor.go linguist-generated=true
Expand Down Expand Up @@ -170,6 +180,12 @@ internal/providers/pluginfw/products/feature_engineering_kafka_config/resource_f
internal/providers/pluginfw/products/feature_engineering_materialized_feature/data_feature_engineering_materialized_feature.go linguist-generated=true
internal/providers/pluginfw/products/feature_engineering_materialized_feature/data_feature_engineering_materialized_features.go linguist-generated=true
internal/providers/pluginfw/products/feature_engineering_materialized_feature/resource_feature_engineering_materialized_feature.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant/data_knowledge_assistant.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant/data_knowledge_assistants.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant/resource_knowledge_assistant.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant_knowledge_source/data_knowledge_assistant_knowledge_source.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant_knowledge_source/data_knowledge_assistant_knowledge_sources.go linguist-generated=true
internal/providers/pluginfw/products/knowledge_assistant_knowledge_source/resource_knowledge_assistant_knowledge_source.go linguist-generated=true
internal/providers/pluginfw/products/materialized_features_feature_tag/data_materialized_features_feature_tag.go linguist-generated=true
internal/providers/pluginfw/products/materialized_features_feature_tag/data_materialized_features_feature_tags.go linguist-generated=true
internal/providers/pluginfw/products/materialized_features_feature_tag/resource_materialized_features_feature_tag.go linguist-generated=true
Expand Down Expand Up @@ -249,6 +265,8 @@ internal/service/dashboards_tf/legacy_model.go linguist-generated=true
internal/service/dashboards_tf/model.go linguist-generated=true
internal/service/database_tf/legacy_model.go linguist-generated=true
internal/service/database_tf/model.go linguist-generated=true
internal/service/dataclassification_tf/legacy_model.go linguist-generated=true
internal/service/dataclassification_tf/model.go linguist-generated=true
internal/service/dataquality_tf/legacy_model.go linguist-generated=true
internal/service/dataquality_tf/model.go linguist-generated=true
internal/service/files_tf/legacy_model.go linguist-generated=true
Expand All @@ -259,6 +277,8 @@ internal/service/iamv2_tf/legacy_model.go linguist-generated=true
internal/service/iamv2_tf/model.go linguist-generated=true
internal/service/jobs_tf/legacy_model.go linguist-generated=true
internal/service/jobs_tf/model.go linguist-generated=true
internal/service/knowledgeassistants_tf/legacy_model.go linguist-generated=true
internal/service/knowledgeassistants_tf/model.go linguist-generated=true
internal/service/marketplace_tf/legacy_model.go linguist-generated=true
internal/service/marketplace_tf/model.go linguist-generated=true
internal/service/ml_tf/legacy_model.go linguist-generated=true
Expand Down
3 changes: 3 additions & 0 deletions NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

* Added `databricks_postgres_database` resource and data source.
* Renamed `databricks_apps_space` to `databricks_app_space`.
* Added `databricks_data_classification_catalog_config` resource and data source.
* Added `databricks_knowledge_assistant` resource and data source.
* Added `databricks_knowledge_assistant_knowledge_source` resource and data source.

### Bug Fixes

Expand Down
42 changes: 34 additions & 8 deletions common/client.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 41 additions & 4 deletions common/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,25 +351,62 @@ func TestWorkspaceClientForWorkspace_WorkspaceDoesNotExist(t *testing.T) {
WorkspaceId: 12345,
}).Return(nil, fmt.Errorf("workspace not found"))

// Create a DatabricksClient with the mock account client
// Create a DatabricksClient with an account host. When the account API fails,
// the fallback (tryWorkspaceClientDirect) also fails because account hosts
// cannot be used to create workspace clients.
dc := &DatabricksClient{
DatabricksClient: &client.DatabricksClient{
Config: &config.Config{},
Config: &config.Config{
Host: "https://accounts.cloud.databricks.com",
Token: "dapi123",
},
},
}
dc.SetAccountClient(mockAcc.AccountClient)

// Call the method with a non-existent workspace ID
_, err := dc.WorkspaceClientForWorkspace(context.Background(), 12345)

// Verify the error
// Both the account API and the fallback fail
assert.Error(t, err)
assert.Contains(t, err.Error(), "workspace not found")
}

func TestWorkspaceClientForWorkspace_AccountAPIFails_FallsBackToDirect(t *testing.T) {
mockAcc := mocks.NewMockAccountClient(t)
mockWorkspacesAPI := mockAcc.GetMockWorkspacesAPI()

// Setup the mock to return an error (e.g. no account-level access)
mockWorkspacesAPI.EXPECT().Get(mock.Anything, provisioning.GetWorkspaceRequest{
WorkspaceId: 12345,
}).Return(nil, fmt.Errorf("workspace not found"))

// Create a DatabricksClient with the mock account client
dc := &DatabricksClient{
DatabricksClient: &client.DatabricksClient{
Config: &config.Config{
Token: "dapi123",
},
},
}
dc.SetAccountClient(mockAcc.AccountClient)

// When account API fails, fallback creates a direct workspace client
workspaceClient, err := dc.WorkspaceClientForWorkspace(context.Background(), 12345)
assert.NoError(t, err)
assert.NotNil(t, workspaceClient)

// Verify the client is cached
dc.mu.Lock()
cachedClient, exists := dc.cachedWorkspaceClients[12345]
dc.mu.Unlock()
assert.True(t, exists)
assert.Equal(t, workspaceClient, cachedClient)
}

func TestWorkspaceClientForWorkspace_WorkspaceExistsNotInCache(t *testing.T) {
mockAcc := mocks.NewMockAccountClient(t)
mockAcc.AccountClient.Config = &config.Config{
Host: "https://accounts.cloud.databricks.com",
Token: "dapi123", // Instantiating WorkspaceClient attempts authentication, this allows Configure() to complete quickly.
}
mockWorkspacesAPI := mockAcc.GetMockWorkspacesAPI()
Expand Down
8 changes: 4 additions & 4 deletions docs/data-sources/budget_policies.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions docs/data-sources/data_classification_catalog_config.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading