|
1 | 1 | module Superset
|
2 | 2 | module Dataset
|
3 | 3 | class WarmUpCache < Superset::Request
|
4 |
| - attr_reader :db_name |
5 | 4 |
|
6 |
| - def initialize(db_name:) |
7 |
| - @db_name = db_name |
| 5 | + attr_reader :dashboard_id |
| 6 | + |
| 7 | + def initialize(dashboard_id:) |
| 8 | + @dashboard_id = dashboard_id |
8 | 9 | end
|
9 | 10 |
|
10 | 11 | def perform
|
11 |
| - dashboard_ids = fetch_dashboard_ids |
12 |
| - dashboard_ids.each do |dashboard_id| |
13 |
| - dataset_names = fetch_dataset_names(dashboard_id) |
14 |
| - dataset_names.each do |dataset_name| |
15 |
| - begin |
16 |
| - client.put(route, params(dataset_name, dashboard_id)) |
17 |
| - rescue => e |
18 |
| - Rollbar.error(e.message) |
19 |
| - end |
20 |
| - end |
21 |
| - end |
| 12 | + dataset_details = fetch_dataset_details(dashboard_id) |
| 13 | + dataset_details.each do |dataset| |
| 14 | + begin |
| 15 | + client.put(route, params(dashboard_id, dataset["datasource_name"], dataset["name"])) |
| 16 | + rescue => e |
| 17 | + Rollbar.error(e.message) |
| 18 | + end |
| 19 | + end |
22 | 20 | end
|
23 | 21 |
|
24 |
| - def params(dataset_name, dashboard_id) |
| 22 | + def params(dashboard_id, dataset_name, db_name) |
25 | 23 | {
|
26 | 24 | "dashboard_id" => dashboard_id,
|
27 | 25 | "table_name" => dataset_name,
|
28 | 26 | "db_name" => db_name
|
29 | 27 | }
|
30 | 28 | end
|
31 | 29 |
|
32 |
| - def fetch_dashboard_ids |
33 |
| - Superset::Dashboard::List.new(tags_equal: ['embedded', 'product:jobready']).ids |
34 |
| - end |
35 |
| - |
36 |
| - def fetch_dataset_names(dashboard_id) |
37 |
| - Superset::Dashboard::Datasets::List.new(dashboard_id).dataset_names |
| 30 | + def fetch_dataset_details(dashboard_id) |
| 31 | + Superset::Dashboard::Datasets::List.new(dashboard_id).datasets_details.map { |dataset| dataset['database'].slice('name').merge(dataset.slice('datasource_name'))} |
38 | 32 | end
|
39 | 33 |
|
40 | 34 | private
|
|
0 commit comments