databricks-sdk 0.0.7__py3-none-any.whl → 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of databricks-sdk might be problematic. Click here for more details.
- databricks/sdk/__init__.py +121 -104
- databricks/sdk/core.py +76 -16
- databricks/sdk/dbutils.py +18 -17
- databricks/sdk/mixins/compute.py +6 -6
- databricks/sdk/mixins/dbfs.py +6 -6
- databricks/sdk/oauth.py +28 -14
- databricks/sdk/service/{unitycatalog.py → catalog.py} +375 -1146
- databricks/sdk/service/{clusters.py → compute.py} +2176 -61
- databricks/sdk/service/{dbfs.py → files.py} +6 -6
- databricks/sdk/service/{scim.py → iam.py} +567 -27
- databricks/sdk/service/jobs.py +44 -34
- databricks/sdk/service/{mlflow.py → ml.py} +976 -1071
- databricks/sdk/service/oauth2.py +3 -3
- databricks/sdk/service/pipelines.py +46 -30
- databricks/sdk/service/{deployment.py → provisioning.py} +47 -29
- databricks/sdk/service/settings.py +849 -0
- databricks/sdk/service/sharing.py +1176 -0
- databricks/sdk/service/sql.py +15 -15
- databricks/sdk/service/workspace.py +917 -22
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/METADATA +3 -1
- databricks_sdk-0.1.1.dist-info/RECORD +37 -0
- databricks/sdk/service/clusterpolicies.py +0 -399
- databricks/sdk/service/commands.py +0 -478
- databricks/sdk/service/gitcredentials.py +0 -202
- databricks/sdk/service/globalinitscripts.py +0 -262
- databricks/sdk/service/instancepools.py +0 -757
- databricks/sdk/service/ipaccesslists.py +0 -340
- databricks/sdk/service/libraries.py +0 -282
- databricks/sdk/service/permissions.py +0 -470
- databricks/sdk/service/repos.py +0 -250
- databricks/sdk/service/secrets.py +0 -472
- databricks/sdk/service/tokenmanagement.py +0 -182
- databricks/sdk/service/tokens.py +0 -137
- databricks/sdk/service/workspaceconf.py +0 -50
- databricks_sdk-0.0.7.dist-info/RECORD +0 -48
- /databricks/sdk/service/{endpoints.py → serving.py} +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/top_level.txt +0 -0
databricks/sdk/oauth.py
CHANGED
|
@@ -10,11 +10,15 @@ from abc import abstractmethod
|
|
|
10
10
|
from dataclasses import dataclass
|
|
11
11
|
from datetime import datetime, timedelta
|
|
12
12
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
13
|
-
from typing import Dict, List
|
|
13
|
+
from typing import Any, Dict, List
|
|
14
14
|
|
|
15
15
|
import requests
|
|
16
16
|
import requests.auth
|
|
17
17
|
|
|
18
|
+
# Error code for PKCE flow in Azure Active Directory, that gets additional retry.
|
|
19
|
+
# See https://stackoverflow.com/a/75466778/277035 for more info
|
|
20
|
+
NO_ORIGIN_FOR_SPA_CLIENT_ERROR = 'AADSTS9002327'
|
|
21
|
+
|
|
18
22
|
logger = logging.getLogger(__name__)
|
|
19
23
|
|
|
20
24
|
|
|
@@ -128,6 +132,9 @@ class _OAuthCallback(BaseHTTPRequestHandler):
|
|
|
128
132
|
self._feedback = feedback
|
|
129
133
|
super().__init__(*args)
|
|
130
134
|
|
|
135
|
+
def log_message(self, fmt: str, *args: Any) -> None:
|
|
136
|
+
logger.debug(fmt, *args)
|
|
137
|
+
|
|
131
138
|
def do_GET(self):
|
|
132
139
|
from urllib.parse import parse_qsl
|
|
133
140
|
parts = self.path.split('?')
|
|
@@ -237,23 +244,30 @@ class Consent:
|
|
|
237
244
|
if self._state != state:
|
|
238
245
|
raise ValueError('state mismatch')
|
|
239
246
|
params = {
|
|
247
|
+
'redirect_uri': self._client.redirect_url,
|
|
240
248
|
'grant_type': 'authorization_code',
|
|
241
|
-
'code': code,
|
|
242
249
|
'code_verifier': self._verifier,
|
|
243
|
-
'
|
|
250
|
+
'code': code
|
|
244
251
|
}
|
|
245
252
|
headers = {}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
while True:
|
|
254
|
+
try:
|
|
255
|
+
token = retrieve_token(client_id=self._client.client_id,
|
|
256
|
+
client_secret=self._client.client_secret,
|
|
257
|
+
token_url=self._client.token_url,
|
|
258
|
+
params=params,
|
|
259
|
+
headers=headers,
|
|
260
|
+
use_params=True)
|
|
261
|
+
return RefreshableCredentials(self._client, token)
|
|
262
|
+
except ValueError as e:
|
|
263
|
+
if NO_ORIGIN_FOR_SPA_CLIENT_ERROR in str(e):
|
|
264
|
+
# Retry in cases of 'Single-Page Application' client-type with
|
|
265
|
+
# 'Origin' header equal to client's redirect URL.
|
|
266
|
+
headers['Origin'] = self._client.redirect_url
|
|
267
|
+
msg = f'Retrying OAuth token exchange with {self._client.redirect_url} origin'
|
|
268
|
+
logger.debug(msg)
|
|
269
|
+
continue
|
|
270
|
+
raise e
|
|
257
271
|
|
|
258
272
|
|
|
259
273
|
class OAuthClient:
|