diff --git a/superset/views/core.py b/superset/views/core.py index 587a7b94cd42..30eb6fe279de 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -1694,6 +1694,8 @@ def warm_up_cache(self): .all() ) + result = [] + for slc in slices: try: form_data = get_form_data(slc.id, use_slice_data=True)[0] @@ -1707,15 +1709,18 @@ def warm_up_cache(self): form_data=form_data, force=True, ) - obj.get_json() + payload = obj.get_payload() + error = payload["error"] + status = payload["status"] except Exception as ex: - logger.exception("Failed to warm up cache") - return json_error_response(utils.error_msg_from_exception(ex)) - return json_success( - json.dumps( - [{"slice_id": slc.id, "slice_name": slc.slice_name} for slc in slices] + error = utils.error_msg_from_exception(ex) + status = None + + result.append( + {"slice_id": slc.id, "viz_error": error, "viz_status": status} ) - ) + + return json_success(json.dumps(result)) @has_access_api @expose("/favstar////") diff --git a/tests/core_tests.py b/tests/core_tests.py index 73711d9301d3..04cc5874137b 100644 --- a/tests/core_tests.py +++ b/tests/core_tests.py @@ -610,7 +610,9 @@ def test_databaseview_edit(self, username="admin"): def test_warm_up_cache(self): slc = self.get_slice("Girls", db.session) data = self.get_json_resp("/superset/warm_up_cache?slice_id={}".format(slc.id)) - self.assertEqual(data, [{"slice_id": slc.id, "slice_name": slc.slice_name}]) + self.assertEqual( + data, [{"slice_id": slc.id, "viz_error": None, "viz_status": "success"}] + ) data = self.get_json_resp( "/superset/warm_up_cache?table_name=energy_usage&db_name=main"