Skip to content

Commit c7de7da

Browse files
committed
pr feedback
1 parent f2ca543 commit c7de7da

File tree

1 file changed

+24
-25
lines changed
  • metadata-ingestion/src/datahub/ingestion/source

1 file changed

+24
-25
lines changed

metadata-ingestion/src/datahub/ingestion/source/mode.py

+24-25
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ class HTTPError429(HTTPError):
194194
pass
195195

196196

197+
ModeRequestError = (HTTPError, JSONDecodeError)
198+
199+
197200
@dataclass
198201
class ModeSourceReport(StaleEntityRemovalSourceReport):
199202
filtered_spaces: LossyList[str] = dataclasses.field(default_factory=LossyList)
@@ -329,11 +332,11 @@ def __init__(self, ctx: PipelineContext, config: ModeConfig):
329332
# Test the connection
330333
try:
331334
self._get_request_json(f"{self.config.connect_uri}/api/verify")
332-
except HTTPError as http_error:
335+
except ModeRequestError as e:
333336
self.report.report_failure(
334337
title="Failed to Connect",
335338
message="Unable to verify connection to mode.",
336-
context=f"Error: {str(http_error)}",
339+
context=f"Error: {str(e)}",
337340
)
338341

339342
self.workspace_uri = f"{self.config.connect_uri}/api/{self.config.workspace}"
@@ -522,11 +525,11 @@ def _get_creator(self, href: str) -> Optional[str]:
522525
if self.config.owner_username_instead_of_email
523526
else user_json.get("email")
524527
)
525-
except HTTPError as http_error:
528+
except ModeRequestError as e:
526529
self.report.report_warning(
527530
title="Failed to retrieve Mode creator",
528531
message=f"Unable to retrieve user for {href}",
529-
context=f"Reason: {str(http_error)}",
532+
context=f"Reason: {str(e)}",
530533
)
531534
return user
532535

@@ -572,11 +575,11 @@ def _get_space_name_and_tokens(self) -> dict:
572575
logging.debug(f"Skipping space {space_name} due to space pattern")
573576
continue
574577
space_info[s.get("token", "")] = s.get("name", "")
575-
except HTTPError as http_error:
578+
except ModeRequestError as e:
576579
self.report.report_failure(
577580
title="Failed to Retrieve Spaces",
578581
message="Unable to retrieve spaces / collections for workspace.",
579-
context=f"Workspace: {self.workspace_uri}, Error: {str(http_error)}",
582+
context=f"Workspace: {self.workspace_uri}, Error: {str(e)}",
580583
)
581584

582585
return space_info
@@ -722,11 +725,11 @@ def _get_data_sources(self) -> List[dict]:
722725
try:
723726
ds_json = self._get_request_json(f"{self.workspace_uri}/data_sources")
724727
data_sources = ds_json.get("_embedded", {}).get("data_sources", [])
725-
except HTTPError as http_error:
728+
except ModeRequestError as e:
726729
self.report.report_failure(
727730
title="Failed to retrieve Data Sources",
728731
message="Unable to retrieve data sources from Mode.",
729-
context=f"Error: {str(http_error)}",
732+
context=f"Error: {str(e)}",
730733
)
731734

732735
return data_sources
@@ -813,11 +816,11 @@ def _get_definition(self, definition_name):
813816
if definition.get("name", "") == definition_name:
814817
return definition.get("source", "")
815818

816-
except HTTPError as http_error:
819+
except ModeRequestError as e:
817820
self.report.report_failure(
818821
title="Failed to Retrieve Definition",
819822
message="Unable to retrieve definition from Mode.",
820-
context=f"Definition Name: {definition_name}, Error: {str(http_error)}",
823+
context=f"Definition Name: {definition_name}, Error: {str(e)}",
821824
)
822825
return None
823826

@@ -1377,11 +1380,11 @@ def _get_reports(self, space_token: str) -> List[dict]:
13771380
f"{self.workspace_uri}/spaces/{space_token}/reports"
13781381
)
13791382
reports = reports_json.get("_embedded", {}).get("reports", {})
1380-
except HTTPError as http_error:
1383+
except ModeRequestError as e:
13811384
self.report.report_failure(
13821385
title="Failed to Retrieve Reports for Space",
13831386
message="Unable to retrieve reports for space token.",
1384-
context=f"Space Token: {space_token}, Error: {str(http_error)}",
1387+
context=f"Space Token: {space_token}, Error: {str(e)}",
13851388
)
13861389
return reports
13871390

@@ -1395,11 +1398,11 @@ def _get_datasets(self, space_token: str) -> List[dict]:
13951398
url = f"{self.workspace_uri}/spaces/{space_token}/datasets"
13961399
datasets_json = self._get_request_json(url)
13971400
datasets = datasets_json.get("_embedded", {}).get("reports", [])
1398-
except HTTPError as http_error:
1401+
except ModeRequestError as e:
13991402
self.report.report_failure(
14001403
title="Failed to Retrieve Datasets for Space",
14011404
message=f"Unable to retrieve datasets for space token {space_token}.",
1402-
context=f"Error: {str(http_error)}",
1405+
context=f"Error: {str(e)}",
14031406
)
14041407
return datasets
14051408

@@ -1411,11 +1414,11 @@ def _get_queries(self, report_token: str) -> list:
14111414
f"{self.workspace_uri}/reports/{report_token}/queries"
14121415
)
14131416
queries = queries_json.get("_embedded", {}).get("queries", {})
1414-
except HTTPError as http_error:
1417+
except ModeRequestError as e:
14151418
self.report.report_failure(
14161419
title="Failed to Retrieve Queries",
14171420
message="Unable to retrieve queries for report token.",
1418-
context=f"Report Token: {report_token}, Error: {str(http_error)}",
1421+
context=f"Report Token: {report_token}, Error: {str(e)}",
14191422
)
14201423
return queries
14211424

@@ -1428,11 +1431,11 @@ def _get_last_query_run(
14281431
f"{self.workspace_uri}/reports/{report_token}/runs/{report_run_id}/query_runs{query_run_id}"
14291432
)
14301433
queries = queries_json.get("_embedded", {}).get("queries", {})
1431-
except HTTPError as http_error:
1434+
except ModeRequestError as e:
14321435
self.report.report_failure(
14331436
title="Failed to Retrieve Queries for Report",
14341437
message="Unable to retrieve queries for report token.",
1435-
context=f"Report Token:{report_token}, Error: {str(http_error)}",
1438+
context=f"Report Token:{report_token}, Error: {str(e)}",
14361439
)
14371440
return {}
14381441
return queries
@@ -1446,13 +1449,13 @@ def _get_charts(self, report_token: str, query_token: str) -> list:
14461449
f"/queries/{query_token}/charts"
14471450
)
14481451
charts = charts_json.get("_embedded", {}).get("charts", {})
1449-
except HTTPError as http_error:
1452+
except ModeRequestError as e:
14501453
self.report.report_failure(
14511454
title="Failed to Retrieve Charts",
14521455
message="Unable to retrieve charts from Mode.",
14531456
context=f"Report Token: {report_token}, "
14541457
f"Query token: {query_token}, "
1455-
f"Error: {str(http_error)}",
1458+
f"Error: {str(e)}",
14561459
)
14571460
return charts
14581461

@@ -1472,7 +1475,7 @@ def get_request():
14721475
response = self.session.get(
14731476
url, timeout=self.config.api_options.timeout
14741477
)
1475-
if response.status_code == 204:
1478+
if response.status_code == 204: # No content, don't parse json
14761479
return {}
14771480
return response.json()
14781481
except HTTPError as http_error:
@@ -1485,10 +1488,6 @@ def get_request():
14851488
raise HTTPError429
14861489

14871490
raise http_error
1488-
except JSONDecodeError as json_error:
1489-
raise HTTPError(
1490-
f"{json_error.__class__.__name__}: {json_error}"
1491-
) from json_error
14921491

14931492
return get_request()
14941493

0 commit comments

Comments
 (0)