|
23 | 23 | ) |
24 | 24 | from airbyte_cdk.sources.declarative.requesters.requester import Requester |
25 | 25 | from airbyte_cdk.sources.declarative.retrievers.simple_retriever import SimpleRetriever |
| 26 | +from airbyte_cdk.sources.http_logger import format_http_message |
26 | 27 | from airbyte_cdk.sources.types import Record, StreamSlice |
27 | 28 | from airbyte_cdk.utils import AirbyteTracedException |
28 | 29 |
|
@@ -71,7 +72,15 @@ def _get_validated_polling_response(self, stream_slice: StreamSlice) -> requests |
71 | 72 | """ |
72 | 73 |
|
73 | 74 | polling_response: Optional[requests.Response] = self.polling_requester.send_request( |
74 | | - stream_slice=stream_slice |
| 75 | + stream_slice=stream_slice, |
| 76 | + log_formatter=lambda polling_response: format_http_message( |
| 77 | + response=polling_response, |
| 78 | + title="Async Job -- Polling", |
| 79 | + description="Poll the status of the server-side async job.", |
| 80 | + stream_name=None, |
| 81 | + is_auxiliary=True, |
| 82 | + type="ASYNC_POLL", |
| 83 | + ), |
75 | 84 | ) |
76 | 85 | if polling_response is None: |
77 | 86 | raise AirbyteTracedException( |
@@ -118,8 +127,17 @@ def _start_job_and_validate_response(self, stream_slice: StreamSlice) -> request |
118 | 127 | """ |
119 | 128 |
|
120 | 129 | response: Optional[requests.Response] = self.creation_requester.send_request( |
121 | | - stream_slice=stream_slice |
| 130 | + stream_slice=stream_slice, |
| 131 | + log_formatter=lambda response: format_http_message( |
| 132 | + response=response, |
| 133 | + title="Async Job -- Create", |
| 134 | + description="Create the server-side async job.", |
| 135 | + stream_name=None, |
| 136 | + is_auxiliary=True, |
| 137 | + type="ASYNC_CREATE", |
| 138 | + ), |
122 | 139 | ) |
| 140 | + |
123 | 141 | if not response: |
124 | 142 | raise AirbyteTracedException( |
125 | 143 | internal_message="Always expect a response or an exception from creation_requester", |
@@ -217,13 +235,33 @@ def abort(self, job: AsyncJob) -> None: |
217 | 235 | if not self.abort_requester: |
218 | 236 | return |
219 | 237 |
|
220 | | - self.abort_requester.send_request(stream_slice=self._get_create_job_stream_slice(job)) |
| 238 | + abort_response = self.abort_requester.send_request( |
| 239 | + stream_slice=self._get_create_job_stream_slice(job), |
| 240 | + log_formatter=lambda abort_response: format_http_message( |
| 241 | + response=abort_response, |
| 242 | + title="Async Job -- Abort", |
| 243 | + description="Abort the running server-side async job.", |
| 244 | + stream_name=None, |
| 245 | + is_auxiliary=True, |
| 246 | + type="ASYNC_ABORT", |
| 247 | + ), |
| 248 | + ) |
221 | 249 |
|
222 | 250 | def delete(self, job: AsyncJob) -> None: |
223 | 251 | if not self.delete_requester: |
224 | 252 | return |
225 | 253 |
|
226 | | - self.delete_requester.send_request(stream_slice=self._get_create_job_stream_slice(job)) |
| 254 | + delete_job_reponse = self.delete_requester.send_request( |
| 255 | + stream_slice=self._get_create_job_stream_slice(job), |
| 256 | + log_formatter=lambda delete_job_reponse: format_http_message( |
| 257 | + response=delete_job_reponse, |
| 258 | + title="Async Job -- Delete", |
| 259 | + description="Delete the specified job from the list of Jobs.", |
| 260 | + stream_name=None, |
| 261 | + is_auxiliary=True, |
| 262 | + type="ASYNC_DELETE", |
| 263 | + ), |
| 264 | + ) |
227 | 265 | self._clean_up_job(job.api_job_id()) |
228 | 266 |
|
229 | 267 | def _clean_up_job(self, job_id: str) -> None: |
|
0 commit comments