Skip to content

Commit

Permalink
Add exception handling and fix pytest
Browse files Browse the repository at this point in the history
  • Loading branch information
OnkarVO7 committed Jan 22, 2024
1 parent 0445223 commit c52d6d9
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 20 deletions.
2 changes: 0 additions & 2 deletions ingestion/src/metadata/clients/domo_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,6 @@ def get_chart_details(self, page_id) -> Optional[DomoChartDetails]:

return None

# def get_owner_details(self, owner_id) -> dict:

def get_pipelines(self):
try:
response = self.client._request( # pylint: disable=protected-access
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,18 @@ def get_dashboard_details(self, dashboard: dict) -> dict:
return self.client.get_dashboard(dashboard["slug"])

def process_owner(self, dashboard_details) -> Optional[EntityReference]:
"""Get owner from mail"""
if dashboard_details.get("user") and dashboard_details["user"].get("email"):
return self.metadata.get_reference_by_email(
dashboard_details["user"].get("email")
)
"""
Get owner from email
"""
try:
if dashboard_details.get("user") and dashboard_details["user"].get("email"):
return self.metadata.get_reference_by_email(
dashboard_details["user"].get("email")
)
return None
except Exception as err:
logger.debug(traceback.format_exc())
logger.warning(f"Could not fetch owner data due to {err}")
return None

def get_dashboard_url(self, dashboard_details: dict) -> str:
Expand Down
24 changes: 14 additions & 10 deletions ingestion/src/metadata/ingestion/source/dashboard/superset/mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,16 +103,20 @@ def _get_user_by_email(self, email: Optional[str]) -> Optional[EntityReference]:
def process_owner(
self, dashboard_details: Union[DashboardResult, FetchDashboard]
) -> EntityReference:
if hasattr(dashboard_details, "owner"):
for owner in dashboard_details.owners or []:
if owner.email:
user = self._get_user_by_email(owner.email)
if user:
return user
if dashboard_details.email:
user = self._get_user_by_email(dashboard_details.email)
if user:
return user
try:
if hasattr(dashboard_details, "owners"):
for owner in dashboard_details.owners or []:
if owner.email:
user = self._get_user_by_email(owner.email)
if user:
return user
if dashboard_details.email:
user = self._get_user_by_email(dashboard_details.email)
if user:
return user
except Exception as err:
logger.debug(traceback.format_exc())
logger.warning(f"Could not fetch owner data due to {err}")
return None

def _get_charts_of_dashboard(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,17 @@ def get_dashboard_details(self, dashboard: TableauDashboard) -> TableauDashboard
def process_owner(
self, dashboard_details: TableauDashboard
) -> Optional[EntityReference]:
"""Get dashboard owner from email"""
if dashboard_details.owner and dashboard_details.owner.email:
return self.metadata.get_reference_by_email(dashboard_details.owner.email)
"""
Get dashboard owner from email
"""
try:
if dashboard_details.owner and dashboard_details.owner.email:
return self.metadata.get_reference_by_email(
dashboard_details.owner.email
)
except Exception as err:
logger.debug(traceback.format_exc())
logger.warning(f"Could not fetch owner data due to {err}")
return None

def yield_tags(
Expand Down
1 change: 1 addition & 0 deletions ingestion/tests/unit/topology/dashboard/test_superset.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@
sourceUrl="https://my-superset.com/superset/dashboard/14/",
charts=[chart.fullyQualifiedName for chart in EXPECTED_CHART_ENTITY],
service=EXPECTED_DASH_SERVICE.fullyQualifiedName,
owner=EXPECTED_USER,
)

EXPECTED_CHART = CreateChartRequest(
Expand Down

0 comments on commit c52d6d9

Please sign in to comment.