Skip to content

Commit dab4b38

Browse files
committed
fix minor issues & improvement
Signed-off-by: Nikhil Suri <[email protected]>
1 parent e7e8b4b commit dab4b38

File tree

6 files changed

+14
-27
lines changed

6 files changed

+14
-27
lines changed

src/databricks/sql/auth/common.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,7 @@ def __init__(
8484
self.pool_connections = pool_connections or 10
8585
self.pool_maxsize = pool_maxsize or 20
8686
self.user_agent = user_agent
87-
self.telemetry_circuit_breaker_enabled = (
88-
telemetry_circuit_breaker_enabled
89-
if telemetry_circuit_breaker_enabled is not None
90-
else False
91-
)
87+
self.telemetry_circuit_breaker_enabled = bool(telemetry_circuit_breaker_enabled)
9288

9389

9490
def get_effective_azure_login_app_id(hostname) -> str:

src/databricks/sql/telemetry/telemetry_push_client.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,8 @@ def request(
129129
)
130130
except CircuitBreakerError as e:
131131
logger.warning(
132-
"Circuit breaker is open for host %s, blocking telemetry request to %s: %s",
132+
"Circuit breaker is open for host %s, blocking telemetry request",
133133
self._host,
134-
url,
135-
e,
136134
)
137135
raise
138136
except Exception as e:
@@ -150,21 +148,18 @@ def request_context(
150148
):
151149
"""Context manager for making HTTP requests with circuit breaker protection."""
152150
try:
153-
# Use circuit breaker to protect the request
154-
def _make_request():
155-
with self._delegate.request_context(
156-
method, url, headers, **kwargs
157-
) as response:
158-
return response
159-
160-
response = self._circuit_breaker.call(_make_request)
161-
yield response
151+
# Keep the context manager open while yielding the response
152+
# Circuit breaker will track failures through the exception handling
153+
with self._delegate.request_context(
154+
method, url, headers, **kwargs
155+
) as response:
156+
# Record success with circuit breaker before yielding
157+
self._circuit_breaker.call(lambda: None)
158+
yield response
162159
except CircuitBreakerError as e:
163160
logger.warning(
164-
"Circuit breaker is open for host %s, blocking telemetry request to %s: %s",
161+
"Circuit breaker is open for host %s, blocking telemetry request",
165162
self._host,
166-
url,
167-
e,
168163
)
169164
raise
170165
except Exception as e:

tests/unit/test_circuit_breaker_http_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ def test_circuit_breaker_recovers_after_success(self):
223223
client.request(HttpMethod.POST, "https://test.com", {})
224224

225225
# Wait for reset timeout
226-
time.sleep(RESET_TIMEOUT + 0.1)
226+
time.sleep(RESET_TIMEOUT + 1.0)
227227

228228
# Simulate successful calls
229229
self.mock_delegate.request.side_effect = None

tests/unit/test_circuit_breaker_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def failing_func():
155155
assert breaker.current_state == "open"
156156

157157
# Wait for reset timeout
158-
time.sleep(RESET_TIMEOUT + 0.1)
158+
time.sleep(RESET_TIMEOUT + 1.0)
159159

160160
# Try successful call to close circuit breaker
161161
def successful_func():

tests/unit/test_telemetry_circuit_breaker_integration.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ def setup_method(self):
2121
# Create mock client context with circuit breaker config
2222
self.client_context = Mock(spec=ClientContext)
2323
self.client_context.telemetry_circuit_breaker_enabled = True
24-
self.client_context.telemetry_circuit_breaker_failure_threshold = (
25-
0.1 # 10% failure rate
26-
)
2724
self.client_context.telemetry_circuit_breaker_minimum_calls = 2
2825
self.client_context.telemetry_circuit_breaker_timeout = 30
2926
self.client_context.telemetry_circuit_breaker_reset_timeout = (
@@ -274,7 +271,6 @@ def setup_method(self):
274271
"""Set up test fixtures."""
275272
self.client_context = Mock(spec=ClientContext)
276273
self.client_context.telemetry_circuit_breaker_enabled = True
277-
self.client_context.telemetry_circuit_breaker_failure_threshold = 0.1
278274
self.client_context.telemetry_circuit_breaker_minimum_calls = 2
279275
self.client_context.telemetry_circuit_breaker_timeout = 30
280276
self.client_context.telemetry_circuit_breaker_reset_timeout = 1

tests/unit/test_telemetry_push_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ def test_circuit_breaker_recovers_after_success(self):
256256
client.request(HttpMethod.POST, "https://test.com", {})
257257

258258
# Wait for reset timeout
259-
time.sleep(RESET_TIMEOUT + 0.1)
259+
time.sleep(RESET_TIMEOUT + 1.0)
260260

261261
# Simulate successful calls
262262
self.mock_delegate.request.side_effect = None

0 commit comments

Comments
 (0)