File tree Expand file tree Collapse file tree 16 files changed +192
-42
lines changed Expand file tree Collapse file tree 16 files changed +192
-42
lines changed Original file line number Diff line number Diff line change @@ -14,3 +14,6 @@ superset-*.gem
14
14
15
15
# ignore local .env variables
16
16
.env
17
+
18
+ # ignore local log file
19
+ log /superset-client.log
Original file line number Diff line number Diff line change
1
+ module Superset
2
+ module DuplicateDashboardLogger
3
+
4
+
5
+ def logger
6
+ @logger ||= begin
7
+ if defined? ( Rails )
8
+ Rails . try ( :logger ) || Logger . new ( STDOUT )
9
+ else
10
+ Logger . new ( STDOUT )
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
Original file line number Diff line number Diff line change 6
6
require_relative "superset/authenticator"
7
7
require_relative "superset/client"
8
8
require_relative "superset/display"
9
+ require_relative "superset/logger"
9
10
require_relative "superset/request"
10
11
11
12
require_rel "superset"
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ def perform
18
18
raise "Error: duplicate_slices must be a boolean" unless duplicate_slices_is_boolean?
19
19
20
20
response
21
- self
21
+ Superset :: Dashboard :: Get . new ( id ) . perform # return the full new dashboard object
22
22
end
23
23
24
24
def params
Original file line number Diff line number Diff line change @@ -54,4 +54,3 @@ def title
54
54
end
55
55
end
56
56
end
57
-
Original file line number Diff line number Diff line change
1
+ module Superset
2
+ module Dashboard
3
+ module Embedded
4
+ class Put < Superset ::Request
5
+ attr_reader :dashboard_id , :embedded_domain
6
+
7
+ def initialize ( dashboard_id : , embedded_domain : )
8
+ @dashboard_id = dashboard_id
9
+ @embedded_domain = embedded_domain
10
+ end
11
+
12
+ def response
13
+ @response ||= client . put ( route , params )
14
+ end
15
+
16
+ def params
17
+ { "allowed_domains" : [ embedded_domain ] }
18
+ end
19
+
20
+ def uuid
21
+ result [ 'uuid' ] unless response [ :result ] . empty?
22
+ end
23
+
24
+ private
25
+
26
+ def route
27
+ "dashboard/#{ dashboard_id } /embedded"
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
Original file line number Diff line number Diff line change @@ -12,6 +12,11 @@ def self.call(id)
12
12
self . new ( id ) . list
13
13
end
14
14
15
+ def perform
16
+ response
17
+ self
18
+ end
19
+
15
20
def title
16
21
"#{ result [ 'dashboard_title' ] } "
17
22
end
Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ def perform
16
16
raise "Error: source_dataset_id integer is required" unless source_dataset_id . present? && source_dataset_id . is_a? ( Integer )
17
17
raise "Error: new_dataset_name string is required" unless new_dataset_name . present? && new_dataset_name . is_a? ( String )
18
18
raise "Error: new_dataset_name already in use" if new_dataset_name_already_in_use?
19
+
20
+ logger . info ( " Start Duplicate Source Dataset Id: #{ source_dataset_id } to New Dataset Name: #{ new_dataset_name } " )
19
21
20
22
new_dataset_id
21
23
end
@@ -39,7 +41,13 @@ def new_dataset_name_already_in_use?
39
41
end
40
42
41
43
def new_dataset_id
42
- response [ "id" ]
44
+ if response [ "id" ] . present?
45
+ logger . info ( " Finish Duplicate Dataset. New Dataset Id: #{ response [ 'id' ] } " )
46
+ response [ "id" ]
47
+ else
48
+ logger . error ( "Error: Unable to duplicate dataset: #{ response } " )
49
+ raise "Error: Unable to duplicate dataset: #{ response } "
50
+ end
43
51
end
44
52
45
53
def route
Original file line number Diff line number Diff line change
1
+ module Superset
2
+ class Logger
3
+
4
+ def info ( msg )
5
+ logger . info ( msg )
6
+ end
7
+
8
+ def error ( msg )
9
+ logger . error ( msg )
10
+ end
11
+
12
+ def logger
13
+ @logger ||= begin
14
+ ::Logger . new ( "log/superset-client.log" )
15
+ end
16
+ end
17
+ end
18
+ end
Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ class Request
3
3
include Display
4
4
5
5
class InvalidParameterError < StandardError ; end
6
+ class ValidationError < StandardError ; end
7
+
6
8
7
9
PAGE_SIZE = 100
8
10
@@ -12,16 +14,15 @@ def initialize(page_num: 0)
12
14
@page_num = page_num
13
15
end
14
16
15
- def logger
16
- @logger ||= Logger . new ( 'superset-api.log' )
17
- end
18
-
19
17
def self . call
20
18
self . new . response
21
19
end
22
20
23
21
def response
24
22
@response ||= client . get ( route )
23
+ rescue => e
24
+ logger . error ( "#{ e . message } " )
25
+ raise e
25
26
end
26
27
27
28
def result
@@ -53,5 +54,9 @@ def pagination
53
54
def filters
54
55
""
55
56
end
57
+
58
+ def logger
59
+ @logger ||= Superset ::Logger . new
60
+ end
56
61
end
57
62
end
You can’t perform that action at this time.
0 commit comments