Skip to content

Commit 9c5fae7

Browse files
Revert "Create a method to generate OAuth tokens (#644)" (#653)
## Changes This reverts commit db1f4ae. Azure CredentialsProvider is impacted by the change: https://github.com/databricks-eng/eng-dev-ecosystem/actions/runs/9187156296/job/25264245409 Reverting to unblock the release ## Tests - [X] `make test` run locally - [X] `make fmt` applied - [X] relevant integration tests applied
1 parent db1f4ae commit 9c5fae7

File tree

14 files changed

+82
-202
lines changed

14 files changed

+82
-202
lines changed

.codegen/__init__.py.tmpl

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import databricks.sdk.core as client
22
import databricks.sdk.dbutils as dbutils
3-
from databricks.sdk.credentials_provider import CredentialsStrategy
3+
from databricks.sdk.credentials_provider import CredentialsProvider
44

55
from databricks.sdk.mixins.files import DbfsExt
66
from databricks.sdk.mixins.compute import ClustersExt
@@ -46,12 +46,10 @@ class WorkspaceClient:
4646
debug_headers: bool = None,
4747
product="unknown",
4848
product_version="0.0.0",
49-
credentials_strategy: CredentialsStrategy = None,
50-
credentials_provider: CredentialsStrategy = None,
49+
credentials_provider: CredentialsProvider = None,
5150
config: client.Config = None):
5251
if not config:
5352
config = client.Config({{range $args}}{{.}}={{.}}, {{end}}
54-
credentials_strategy=credentials_strategy,
5553
credentials_provider=credentials_provider,
5654
debug_truncate_bytes=debug_truncate_bytes,
5755
debug_headers=debug_headers,
@@ -103,12 +101,10 @@ class AccountClient:
103101
debug_headers: bool = None,
104102
product="unknown",
105103
product_version="0.0.0",
106-
credentials_strategy: CredentialsStrategy = None,
107-
credentials_provider: CredentialsStrategy = None,
104+
credentials_provider: CredentialsProvider = None,
108105
config: client.Config = None):
109106
if not config:
110107
config = client.Config({{range $args}}{{.}}={{.}}, {{end}}
111-
credentials_strategy=credentials_strategy,
112108
credentials_provider=credentials_provider,
113109
debug_truncate_bytes=debug_truncate_bytes,
114110
debug_headers=debug_headers,

databricks/sdk/__init__.py

Lines changed: 3 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/config.py

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
import requests
1212

1313
from .clock import Clock, RealClock
14-
from .credentials_provider import CredentialsStrategy, DefaultCredentials
14+
from .credentials_provider import CredentialsProvider, DefaultCredentials
1515
from .environments import (ALL_ENVS, AzureEnvironment, Cloud,
1616
DatabricksEnvironment, get_environment_for_hostname)
17-
from .oauth import OidcEndpoints, Token
17+
from .oauth import OidcEndpoints
1818
from .version import __version__
1919

2020
logger = logging.getLogger('databricks.sdk')
@@ -81,25 +81,15 @@ class Config:
8181

8282
def __init__(self,
8383
*,
84-
# Deprecated. Use credentials_strategy instead.
85-
credentials_provider: CredentialsStrategy = None,
86-
credentials_strategy: CredentialsStrategy = None,
84+
credentials_provider: CredentialsProvider = None,
8785
product="unknown",
8886
product_version="0.0.0",
8987
clock: Clock = None,
9088
**kwargs):
9189
self._header_factory = None
9290
self._inner = {}
9391
self._user_agent_other_info = []
94-
if credentials_strategy and credentials_provider:
95-
raise ValueError(
96-
"When providing `credentials_strategy` field, `credential_provider` cannot be specified.")
97-
if credentials_provider:
98-
logger.warning(
99-
"parameter 'credentials_provider' is deprecated. Use 'credentials_strategy' instead.")
100-
self._credentials_strategy = next(
101-
s for s in [credentials_strategy, credentials_provider,
102-
DefaultCredentials()] if s is not None)
92+
self._credentials_provider = credentials_provider if credentials_provider else DefaultCredentials()
10393
if 'databricks_environment' in kwargs:
10494
self.databricks_environment = kwargs['databricks_environment']
10595
del kwargs['databricks_environment']
@@ -117,9 +107,6 @@ def __init__(self,
117107
message = self.wrap_debug_info(str(e))
118108
raise ValueError(message) from e
119109

120-
def oauth_token(self) -> Token:
121-
return self._credentials_strategy.oauth_token(self)
122-
123110
def wrap_debug_info(self, message: str) -> str:
124111
debug_string = self.debug_string()
125112
if debug_string:
@@ -449,12 +436,12 @@ def _validate(self):
449436

450437
def init_auth(self):
451438
try:
452-
self._header_factory = self._credentials_strategy(self)
453-
self.auth_type = self._credentials_strategy.auth_type()
439+
self._header_factory = self._credentials_provider(self)
440+
self.auth_type = self._credentials_provider.auth_type()
454441
if not self._header_factory:
455442
raise ValueError('not configured')
456443
except ValueError as e:
457-
raise ValueError(f'{self._credentials_strategy.auth_type()} auth: {e}') from e
444+
raise ValueError(f'{self._credentials_provider.auth_type()} auth: {e}') from e
458445

459446
def __repr__(self):
460447
return f'<{self.debug_string()}>'

databricks/sdk/core.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from json import JSONDecodeError
55
from types import TracebackType
66
from typing import Any, BinaryIO, Iterator, Type
7-
from urllib.parse import urlencode
87

98
from requests.adapters import HTTPAdapter
109

@@ -14,17 +13,12 @@
1413
from .credentials_provider import *
1514
from .errors import DatabricksError, error_mapper
1615
from .errors.private_link import _is_private_link_redirect
17-
from .oauth import retrieve_token
1816
from .retries import retried
1917

2018
__all__ = ['Config', 'DatabricksError']
2119

2220
logger = logging.getLogger('databricks.sdk')
2321

24-
URL_ENCODED_CONTENT_TYPE = "application/x-www-form-urlencoded"
25-
JWT_BEARER_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer"
26-
OIDC_TOKEN_PATH = "/oidc/v1/token"
27-
2822

2923
class ApiClient:
3024
_cfg: Config
@@ -115,22 +109,6 @@ def flatten_dict(d: Dict[str, Any]) -> Dict[str, Any]:
115109
flattened = dict(flatten_dict(with_fixed_bools))
116110
return flattened
117111

118-
def get_oauth_token(self, auth_details: str) -> Token:
119-
if not self._cfg.auth_type:
120-
self._cfg.authenticate()
121-
original_token = self._cfg.oauth_token()
122-
headers = {"Content-Type": URL_ENCODED_CONTENT_TYPE}
123-
params = urlencode({
124-
"grant_type": JWT_BEARER_GRANT_TYPE,
125-
"authorization_details": auth_details,
126-
"assertion": original_token.access_token
127-
})
128-
return retrieve_token(client_id=self._cfg.client_id,
129-
client_secret=self._cfg.client_secret,
130-
token_url=self._cfg.host + OIDC_TOKEN_PATH,
131-
params=params,
132-
headers=headers)
133-
134112
def do(self,
135113
method: str,
136114
path: str,

0 commit comments

Comments
 (0)