feat: Azure Databricks SDK-compat handler - #206
Merged
Conversation
Add Azure Databricks as a new service across all layers: portable Databricks API, driver interface, in-memory Azure provider (workspace CRUD with synchronous provisioning), and a Microsoft.Databricks ARM SDK-compat handler. Real armdatabricks WorkspacesClient works end-to-end for create/get/update/delete and list-by-resource-group/subscription.
- CreateWorkspace now applies mutable fields (tags, SKU) on a create-or-update PUT to an existing workspace instead of returning it unchanged, preserving the identity fields - UpdateWorkspaceTags swaps in a copy rather than mutating the stored struct in place, so concurrent readers never observe a torn update
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #164.
Summary
Adds Azure Databricks as a new service across all layers, with end-to-end SDK compatibility for the real
armdatabricksWorkspacesClient, plus the portable API.What's included
databricks/):Databrickswrapper with the standard cross-cutting concerns (recording, metrics, rate limiting, error injection, latency) and adriver.Databricksinterface.providers/azure/databricks/): in-memoryMicrosoft.Databricks/workspacesimplementation — create-or-update with synchronous provisioning (stateSucceeded, deterministic workspace ID + URL), get, delete, tag update, and list by resource group / subscription.server/azure/databricks/): ARM REST routing for the workspaces resource, reusing the sharedazurearmpath-parsing and error helpers. Mutating ops return 200 inline so the SDK's LRO poller terminates on the first response.Databricksfield added to the Azure provider factory and the Azure serverDriversbundle.Tests
armdatabricksclient against the in-memory server: workspace lifecycle (create/get/update/delete), list by resource group, list by subscription, and not-found handling.go build ./...,go test ./..., andgolangci-lint runall pass.