-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix panic when bundle auth resolution fails #1002
Conversation
Fixing failing tests |
} | ||
return client, nil | ||
} | ||
|
||
func (b *Bundle) WorkspaceClient() *databricks.WorkspaceClient { | ||
b.clientOnce.Do(func() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we really need b.clientOnce.Do
still? Now b.client initialised either in bundle mutator or in MustWorkspaceClient
.
I'd expect we don't use WorkspaceClient()
outside of these 2 context, so we can simplify it to
func (b *Bundle) WorkspaceClient() *databricks.WorkspaceClient {
if b.client == nil {
panic("Oh no, not expected")
}
return b.client
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. There was also the databricks labs command group which uses a client without triggering the initialize mutator. Now also calling the initialize function from the databricks labs command.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reverted this. Let's keep clientOnce
. Removing it is not trivial since a bunch of tests depend upon it. One option would have been to make the InitialiseWorkspaceClient
a DefaultMutator()
, but unfortunately target resolution happens after default mutators are applied, and we need to initialize the workspace client after target resolution (because target could contain different auth credentials).
Alternately we could call InitializeWorkspaceClient
from all tests that call b.WorkspaceClient()
but that's a bigger lift and arguablely not worth it.
WDYT?
003e8cc
to
125640b
Compare
CLI: * Add documentation for positional args in commands generated from the Databricks OpenAPI specification ([#1033](#1033)). * Ask for host when .databrickscfg doesn't exist ([#1041](#1041)). * Add list of supported values for flags that represent an enum field ([#1036](#1036)). Bundles: * Fix panic when bundle auth resolution fails ([#1002](#1002)). * Add versioning for bundle templates ([#972](#972)). * Add support for conditional prompting in bundle init ([#971](#971)). * Pass parameters to task when run with `--python-params` and `python_wheel_wrapper` is true ([#1037](#1037)). * Change default_python template to auto-update version on each wheel build ([#1034](#1034)). Internal: * Rewrite the friendly log handler ([#1038](#1038)). * Move bundle schema update to an internal module ([#1012](#1012)). Dependency updates: * Bump github.com/databricks/databricks-sdk-go from 0.26.0 to 0.26.1 ([#1040](#1040)).
CLI: * Add documentation for positional args in commands generated from the Databricks OpenAPI specification ([#1033](#1033)). * Ask for host when .databrickscfg doesn't exist ([#1041](#1041)). * Add list of supported values for flags that represent an enum field ([#1036](#1036)). Bundles: * Fix panic when bundle auth resolution fails ([#1002](#1002)). * Add versioning for bundle templates ([#972](#972)). * Add support for conditional prompting in bundle init ([#971](#971)). * Pass parameters to task when run with `--python-params` and `python_wheel_wrapper` is true ([#1037](#1037)). * Change default_python template to auto-update version on each wheel build ([#1034](#1034)). Internal: * Rewrite the friendly log handler ([#1038](#1038)). * Move bundle schema update to an internal module ([#1012](#1012)). Dependency updates: * Bump github.com/databricks/databricks-sdk-go from 0.26.0 to 0.26.1 ([#1040](#1040)).
Changes
CLI would panic if an invalid bundle auth is setup when running CLI commands. This PR removes the panic and shows the error message directly instead.
Tests
The CWD is a bundle with:
Before:
After: