From 4dd1d1df5e8327452e1043c08342ec2e01aa5405 Mon Sep 17 00:00:00 2001 From: Daniel Vaz Gaspar Date: Fri, 14 Aug 2020 14:12:44 +0100 Subject: [PATCH] fix(thumbnails): missing field, logging and new config var (#10562) * fix(thumbnails): missing field, logging and new config var * deprecate EMAIL_REPORTS_WEBDRIVER * fix after merge and conflicts * fix tests * black --- UPDATING.md | 2 ++ superset/charts/api.py | 63 ++++++++++++++++++----------------- superset/config.py | 2 +- superset/tasks/schedules.py | 4 +-- superset/tasks/thumbnails.py | 2 +- superset/utils/screenshots.py | 2 +- 6 files changed, 38 insertions(+), 37 deletions(-) diff --git a/UPDATING.md b/UPDATING.md index a18974bb3..c2ae0ab8b 100644 --- a/UPDATING.md +++ b/UPDATING.md @@ -23,6 +23,8 @@ assists people when migrating to a new version. ## Next +* [10562](https://github.com/apache/incubator-superset/pull/10562): EMAIL_REPORTS_WEBDRIVER is deprecated use WEBDRIVER_TYPE instead. + * [10567](https://github.com/apache/incubator-superset/pull/10567): Default WEBDRIVER_OPTION_ARGS are Chrome-specific. If you're using FF, should be `--headless` only * [10241](https://github.com/apache/incubator-superset/pull/10241): change on Alpha role, users started to have access to "Annotation Layers", "Css Templates" and "Import Dashboards". diff --git a/superset/charts/api.py b/superset/charts/api.py index 09f4e066b..47eb03e0f 100644 --- a/superset/charts/api.py +++ b/superset/charts/api.py @@ -86,38 +86,39 @@ class ChartRestApi(BaseSupersetModelRestApi): } class_permission_name = "SliceModelView" show_columns = [ - "slice_name", - "description", - "owners.id", - "owners.username", - "owners.first_name", - "owners.last_name", - "dashboards.id", - "dashboards.dashboard_title", - "viz_type", - "params", "cache_timeout", + "dashboards.dashboard_title", + "dashboards.id", + "description", + "owners.first_name", + "owners.id", + "owners.last_name", + "owners.username", + "params", + "slice_name", + "viz_type", ] show_select_columns = show_columns + ["table.id"] list_columns = [ - "id", - "slice_name", - "url", - "description", - "changed_by_name", - "changed_by_url", + "cache_timeout", "changed_by.first_name", "changed_by.last_name", - "changed_on_utc", + "changed_by_name", + "changed_by_url", "changed_on_delta_humanized", + "changed_on_utc", "datasource_id", - "datasource_type", "datasource_name_text", + "datasource_type", "datasource_url", + "description", + "id", + "params", + "slice_name", "table.default_endpoint", "table.table_name", "thumbnail_url", - "viz_type", + "url", "params", "cache_timeout", "owners.id", @@ -125,24 +126,24 @@ class ChartRestApi(BaseSupersetModelRestApi): "owners.first_name", "owners.last_name", ] - list_select_columns = list_columns + ["changed_on", "changed_by_fk"] + list_select_columns = list_columns + ["changed_by_fk", "changed_on"] order_columns = [ - "slice_name", - "viz_type", - "datasource_name", - "datasource_id", "changed_by.first_name", "changed_on_delta_humanized", - ] - search_columns = ( - "slice_name", - "description", - "viz_type", - "datasource_name", "datasource_id", + "datasource_name", + "slice_name", + "viz_type", + ] + search_columns = [ + "datasource_id", + "datasource_name", "datasource_type", + "description", "owners", - ) + "slice_name", + "viz_type", + ] base_order = ("changed_on", "desc") base_filters = [["id", ChartFilter, lambda: []]] search_filters = {"slice_name": [ChartNameOrDescriptionFilter]} diff --git a/superset/config.py b/superset/config.py index ff4796d6d..b4803e8c8 100644 --- a/superset/config.py +++ b/superset/config.py @@ -795,7 +795,7 @@ EMAIL_REPORTS_SUBJECT_PREFIX = "[Report] " # chrome: # Requires: headless chrome # Limitations: unable to generate screenshots of elements -EMAIL_REPORTS_WEBDRIVER = "firefox" +WEBDRIVER_TYPE = "firefox" # Window size - this will impact the rendering of the data WEBDRIVER_WINDOW = {"dashboard": (1600, 2000), "slice": (3000, 1200)} diff --git a/superset/tasks/schedules.py b/superset/tasks/schedules.py index c38f26109..2969bb6ea 100644 --- a/superset/tasks/schedules.py +++ b/superset/tasks/schedules.py @@ -199,9 +199,7 @@ def _get_url_path(view: str, user_friendly: bool = False, **kwargs: Any) -> str: def create_webdriver() -> WebDriver: - return WebDriverProxy(driver_type=config["EMAIL_REPORTS_WEBDRIVER"]).auth( - get_reports_user() - ) + return WebDriverProxy(driver_type=config["WEBDRIVER_TYPE"]).auth(get_reports_user()) def get_reports_user() -> "User": diff --git a/superset/tasks/thumbnails.py b/superset/tasks/thumbnails.py index bf7bdc562..78e58d68b 100644 --- a/superset/tasks/thumbnails.py +++ b/superset/tasks/thumbnails.py @@ -42,7 +42,7 @@ def cache_chart_thumbnail( if not thumbnail_cache: logger.warning("No cache set, refusing to compute") return None - logging.info("Caching chart at {url}") + logger.info("Caching chart: %s", url) screenshot = ChartScreenshot(url, digest) user = security_manager.find_user(current_app.config["THUMBNAIL_SELENIUM_USER"]) screenshot.compute_and_cache( diff --git a/superset/utils/screenshots.py b/superset/utils/screenshots.py index 9ac2b805a..6f22a5b74 100644 --- a/superset/utils/screenshots.py +++ b/superset/utils/screenshots.py @@ -37,7 +37,7 @@ if TYPE_CHECKING: class BaseScreenshot: - driver_type = current_app.config.get("EMAIL_REPORTS_WEBDRIVER", "chrome") + driver_type = current_app.config["WEBDRIVER_TYPE"] thumbnail_type: str = "" element: str = "" window_size: WindowSize = (800, 600)