Fix Quicksight URL (#10592)

This commit is contained in:
Ayush Shah 2023-03-15 13:35:38 +05:30 committed by GitHub
parent ff2190036f
commit 7e4ba4567b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 20 deletions

View File

@ -57,6 +57,9 @@ class QuicksightSource(DashboardServiceSource):
super().__init__(config, metadata_config)
self.aws_account_id = self.service_connection.awsAccountId
self.dashboard_url = None
self.aws_region = (
self.config.serviceConnection.__root__.config.awsConfig.awsRegion
)
self.default_args = {
"AwsAccountId": self.aws_account_id,
"MaxResults": QUICKSIGHT_MAXRESULTS,
@ -129,14 +132,6 @@ class QuicksightSource(DashboardServiceSource):
"""
Method to Get Dashboard Entity
"""
self.dashboard_url = self.client.get_dashboard_embed_url(
AwsAccountId=self.aws_account_id,
DashboardId=dashboard_details["DashboardId"],
IdentityType=self.config.serviceConnection.__root__.config.identityType.value,
Namespace=self.config.serviceConnection.__root__.config.namespace
or "default",
)["EmbedUrl"]
yield CreateDashboardRequest(
name=dashboard_details["DashboardId"],
dashboardUrl=self.dashboard_url,
@ -176,12 +171,16 @@ class QuicksightSource(DashboardServiceSource):
self.status.filter(chart["Name"], "Chart Pattern not allowed")
continue
self.dashboard_url = (
f"https://{self.aws_region}.quicksight.aws.amazon.com/sn/dashboards"
f'/{dashboard_details.get("DashboardId")}'
)
yield CreateChartRequest(
name=chart["SheetId"],
displayName=chart["Name"],
description="",
chartType=ChartType.Other.value,
chartUrl=f"{self.dashboard_url}/sheets/{chart['SheetId']}",
chartUrl=self.dashboard_url,
service=self.context.dashboard_service.fullyQualifiedName.__root__,
)
self.status.scanned(chart["Name"])

View File

@ -92,7 +92,7 @@ EXPECTED_DASHBOARD = CreateDashboardRequest(
name="552315335",
displayName="New Dashboard",
description="",
dashboardUrl="https://dashboards.example.com/embed/1234",
dashboardUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335",
charts=[],
tags=None,
owner=None,
@ -106,7 +106,7 @@ EXPECTED_DASHBOARDS = [
displayName="Top Salespeople",
description="",
chartType="Other",
chartUrl="https://dashboards.example.com/embed/1234/sheets/1108771657",
chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335",
tables=None,
tags=None,
owner=None,
@ -117,7 +117,7 @@ EXPECTED_DASHBOARDS = [
displayName="Milan Datasets",
description="",
chartType="Other",
chartUrl="https://dashboards.example.com/embed/1234/sheets/1985861713",
chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335",
tables=None,
tags=None,
owner=None,
@ -128,7 +128,7 @@ EXPECTED_DASHBOARDS = [
displayName="Page Fans",
description="",
chartType="Other",
chartUrl="https://dashboards.example.com/embed/1234/sheets/2025899139",
chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335",
tables=None,
tags=None,
owner=None,
@ -137,10 +137,6 @@ EXPECTED_DASHBOARDS = [
]
def mock_get_dashboard_embed_url(AwsAccountId, DashboardId, IdentityType, Namespace):
return {"EmbedUrl": "https://dashboards.example.com/embed/1234"}
class QuickSightUnitTest(TestCase):
"""
Implements the necessary methods to extract
@ -158,10 +154,11 @@ class QuickSightUnitTest(TestCase):
mock_quicksight_config["source"],
self.config.workflowConfig.openMetadataServerConfig,
)
self.quicksight.dashboard_url = "https://dashboards.example.com/embed/1234"
self.quicksight.dashboard_url = (
"https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335"
)
self.quicksight.context.__dict__["dashboard"] = MOCK_DASHBOARD
self.quicksight.context.__dict__["dashboard_service"] = MOCK_DASHBOARD_SERVICE
self.quicksight.client.get_dashboard_embed_url = mock_get_dashboard_embed_url
@pytest.mark.order(1)
def test_dashboard(self):

View File

@ -148,7 +148,7 @@ If you are planning on going to PROD, we recommend to validate below points:
- MySQL and OpenSearch (ElasticSearch) are available.
- OpenMetadata-Server require the minimum configuration of 2vCPU and 6Memory (GiB)
- OpenMetadata-Ingestion require the minimum configuration of 2vCPU and 8Memory (GiB)
- We also recommend to bind Docker Volumes for data persistence. Minimum disck space required would be 128 Gib. Learn how to do so [here](/deployment/docker/volumes).
- We also recommend to bind Docker Volumes for data persistence. Minimum disk space required would be 128 Gib. Learn how to do so [here](/deployment/docker/volumes).
### Steps for Deploying Ingestion
- Download the docker-compose.yml file from the release page [here](https://github.com/open-metadata/OpenMetadata/releases).
- Update the environment variables below for OpenMetadata-Ingestion Docker Compose backed systems to connect with Database.