Skip to content

Commit 5895b57

Browse files
unify ssl proxy
Signed-off-by: Vikrant Puppala <[email protected]>
1 parent ab3410f commit 5895b57

File tree

3 files changed

+25
-16
lines changed

3 files changed

+25
-16
lines changed

src/databricks/sql/auth/thrift_http_client.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,9 @@ def __init__(
6868

6969
if proxy_uri:
7070
parsed_proxy = urllib.parse.urlparse(proxy_uri)
71-
7271
# realhost and realport are the host and port of the actual request
7372
self.realhost = self.host
7473
self.realport = self.port
75-
7674
# this is passed to ProxyManager
7775
self.proxy_uri: str = proxy_uri
7876
self.host = parsed_proxy.hostname
@@ -112,7 +110,7 @@ def open(self):
112110
host=self.realhost if self.using_proxy() else self.host,
113111
port=self.realport if self.using_proxy() else self.port,
114112
ssl_options=self._ssl_options,
115-
proxy_uri=getattr(self, 'proxy_uri', None),
113+
proxy_uri=self.proxy_uri,
116114
proxy_headers=self.proxy_auth,
117115
retry_policy=self.retry_policy,
118116
max_connections=self.max_connections,

src/databricks/sql/backend/sea/utils/http_client.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,14 @@ def __init__(
131131

132132
if proxy_uri:
133133
parsed_proxy = urllib.parse.urlparse(proxy_uri)
134-
self.proxy_host = self.host
135-
self.proxy_port = self.port
134+
self.realhost = self.host
135+
self.realport = self.port
136136
self.proxy_uri = proxy_uri
137137
self.host = parsed_proxy.hostname
138138
self.port = parsed_proxy.port or (443 if self.scheme == "https" else 80)
139139
self.proxy_auth = proxy_auth
140140
else:
141-
self.proxy_host = None
142-
self.proxy_port = None
143-
self.proxy_auth = None
144-
self.proxy_uri = None
141+
self.realhost = self.realport = self.proxy_auth = None
145142

146143
# Initialize connection pool
147144
self._pool = None
@@ -151,8 +148,8 @@ def _open(self):
151148
"""Initialize the connection pool using shared utility."""
152149
self._pool = create_connection_pool(
153150
scheme=self.scheme,
154-
host=self.proxy_host if self.using_proxy() else self.host,
155-
port=self.proxy_port if self.using_proxy() else self.port,
151+
host=self.realhost if self.using_proxy() else self.host,
152+
port=self.realport if self.using_proxy() else self.port,
156153
ssl_options=self.ssl_options,
157154
proxy_uri=self.proxy_uri,
158155
proxy_headers=self.proxy_auth,

src/databricks/sql/common/unified_http_client.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from databricks.sql.common.http import HttpMethod
1515
from databricks.sql.common.http_utils import (
1616
detect_and_parse_proxy,
17-
create_retry_policy_from_kwargs,
1817
create_connection_pool,
1918
)
2019

@@ -62,9 +61,24 @@ def _setup_pool_manager(self):
6261

6362
parsed_url = urllib.parse.urlparse(self.config.hostname)
6463
self.scheme = parsed_url.scheme
64+
self.host = parsed_url.hostname
65+
self.port = parsed_url.port
66+
6567
# Detect proxy using shared utility
66-
proxy_uri, proxy_headers = detect_and_parse_proxy(self.scheme, self.config.hostname)
68+
proxy_uri, proxy_auth = detect_and_parse_proxy(self.scheme, self.config.hostname)
6769

70+
if proxy_uri:
71+
parsed_proxy = urllib.parse.urlparse(proxy_uri)
72+
# realhost and realport are the host and port of the actual request
73+
self.realhost = self.host
74+
self.realport = self.port
75+
# this is passed to ProxyManager
76+
self.proxy_uri: str = proxy_uri
77+
self.host = parsed_proxy.hostname
78+
self.port = parsed_proxy.port
79+
self.proxy_auth = proxy_auth
80+
else:
81+
self.realhost = self.realport = self.proxy_auth = None
6882

6983
# Create pool
7084
additional_kwargs = {}
@@ -76,11 +90,11 @@ def _setup_pool_manager(self):
7690

7791
self._pool_manager = create_connection_pool(
7892
scheme=self.scheme,
79-
host=self.config.hostname,
80-
port=443,
93+
host=self.realhost if self.using_proxy() else self.host,
94+
port=self.realport if self.using_proxy() else self.port,
8195
ssl_options=self.config.ssl_options,
8296
proxy_uri=proxy_uri,
83-
proxy_headers=proxy_headers,
97+
proxy_headers=proxy_auth,
8498
retry_policy=self._retry_policy,
8599
max_connections=self.config.pool_maxsize,
86100
**additional_kwargs

0 commit comments

Comments
 (0)