gazer 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/gzr/command.rb +9 -5
  5. data/lib/gzr/commands/alert/cat.rb +2 -2
  6. data/lib/gzr/commands/alert/ls.rb +2 -2
  7. data/lib/gzr/commands/alert/notifications.rb +2 -2
  8. data/lib/gzr/commands/attribute/cat.rb +3 -3
  9. data/lib/gzr/commands/attribute/create.rb +2 -2
  10. data/lib/gzr/commands/attribute/get_group_value.rb +4 -4
  11. data/lib/gzr/commands/attribute/import.rb +3 -3
  12. data/lib/gzr/commands/attribute/ls.rb +3 -3
  13. data/lib/gzr/commands/attribute/rm.rb +4 -4
  14. data/lib/gzr/commands/attribute/set_group_value.rb +4 -4
  15. data/lib/gzr/commands/connection/dialects.rb +4 -4
  16. data/lib/gzr/commands/connection/ls.rb +2 -2
  17. data/lib/gzr/commands/connection/test.rb +2 -2
  18. data/lib/gzr/commands/dashboard/import.rb +30 -30
  19. data/lib/gzr/commands/dashboard/mv.rb +1 -1
  20. data/lib/gzr/commands/folder/cat.rb +3 -3
  21. data/lib/gzr/commands/folder/create.rb +3 -3
  22. data/lib/gzr/commands/folder/export.rb +2 -2
  23. data/lib/gzr/commands/folder/ls.rb +3 -4
  24. data/lib/gzr/commands/folder/rm.rb +3 -3
  25. data/lib/gzr/commands/folder/top.rb +4 -4
  26. data/lib/gzr/commands/folder/tree.rb +11 -11
  27. data/lib/gzr/commands/group/ls.rb +3 -3
  28. data/lib/gzr/commands/group/member_groups.rb +3 -3
  29. data/lib/gzr/commands/group/member_users.rb +3 -3
  30. data/lib/gzr/commands/look/cat.rb +1 -1
  31. data/lib/gzr/commands/look/import.rb +5 -5
  32. data/lib/gzr/commands/look/mv.rb +1 -1
  33. data/lib/gzr/commands/look/rm.rb +1 -1
  34. data/lib/gzr/commands/model/ls.rb +4 -4
  35. data/lib/gzr/commands/model/set/ls.rb +2 -2
  36. data/lib/gzr/commands/permission/ls.rb +2 -2
  37. data/lib/gzr/commands/permission/set/ls.rb +2 -2
  38. data/lib/gzr/commands/plan/cat.rb +3 -3
  39. data/lib/gzr/commands/plan/disable.rb +3 -3
  40. data/lib/gzr/commands/plan/enable.rb +3 -3
  41. data/lib/gzr/commands/plan/failures.rb +12 -7
  42. data/lib/gzr/commands/plan/import.rb +5 -5
  43. data/lib/gzr/commands/plan/ls.rb +5 -5
  44. data/lib/gzr/commands/plan/run.rb +2 -2
  45. data/lib/gzr/commands/project/branch.rb +4 -4
  46. data/lib/gzr/commands/project/ls.rb +3 -3
  47. data/lib/gzr/commands/role/cat.rb +2 -2
  48. data/lib/gzr/commands/role/group_add.rb +2 -2
  49. data/lib/gzr/commands/role/group_ls.rb +3 -3
  50. data/lib/gzr/commands/role/group_rm.rb +2 -2
  51. data/lib/gzr/commands/role/ls.rb +3 -3
  52. data/lib/gzr/commands/role/user_add.rb +2 -2
  53. data/lib/gzr/commands/role/user_ls.rb +3 -3
  54. data/lib/gzr/commands/role/user_rm.rb +2 -2
  55. data/lib/gzr/commands/user/cat.rb +5 -3
  56. data/lib/gzr/commands/user/delete.rb +2 -1
  57. data/lib/gzr/commands/user/disable.rb +2 -1
  58. data/lib/gzr/commands/user/enable.rb +2 -1
  59. data/lib/gzr/commands/user/ls.rb +22 -11
  60. data/lib/gzr/commands/user/me.rb +6 -2
  61. data/lib/gzr/commands/user.rb +2 -0
  62. data/lib/gzr/modules/alert.rb +30 -17
  63. data/lib/gzr/modules/attribute.rb +24 -22
  64. data/lib/gzr/modules/connection.rb +10 -25
  65. data/lib/gzr/modules/dashboard.rb +86 -44
  66. data/lib/gzr/modules/folder.rb +20 -28
  67. data/lib/gzr/modules/group.rb +8 -10
  68. data/lib/gzr/modules/look.rb +23 -21
  69. data/lib/gzr/modules/model/set.rb +6 -6
  70. data/lib/gzr/modules/model.rb +14 -7
  71. data/lib/gzr/modules/permission/set.rb +2 -2
  72. data/lib/gzr/modules/permission.rb +2 -4
  73. data/lib/gzr/modules/plan.rb +36 -36
  74. data/lib/gzr/modules/project.rb +26 -21
  75. data/lib/gzr/modules/role.rb +48 -36
  76. data/lib/gzr/modules/session.rb +2 -2
  77. data/lib/gzr/modules/user.rb +52 -43
  78. data/lib/gzr/version.rb +1 -1
  79. metadata +2 -2
@@ -41,9 +41,11 @@ module Gzr
41
41
  say_warning("options: #{@options.inspect}") if @options[:debug]
42
42
  with_session do
43
43
  data = query_user(@user_id,@options[:fields])
44
- write_file(@options[:dir] ? "User_#{data.id}_#{data.display_name}.json" : nil, @options[:dir],nil, output) do |f|
45
- f.puts JSON.pretty_generate(data.to_attrs)
46
- end
44
+ data = trim_user(data) if @options[:trim]
45
+ write_file(@options[:dir] ? "User_#{data[:id]}_#{data[:first_name]}_#{data[:last_name]}.json" : nil, @options[:dir],nil, output) do |f|
46
+ f.puts JSON.pretty_generate(data)
47
+ end if data
48
+ say_error "user #{@user_id} not found" unless data
47
49
  end
48
50
  end
49
51
  end
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -39,6 +39,7 @@ module Gzr
39
39
  say_warning(@options) if @options[:debug]
40
40
  with_session do
41
41
  data = delete_user(@user_id)
42
+ say_error "user #{@user_id} not found" unless data
42
43
  end
43
44
  end
44
45
  end
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -39,6 +39,7 @@ module Gzr
39
39
  say_warning(@options) if @options[:debug]
40
40
  with_session do
41
41
  data = update_user(@user_id, { :is_disabled=>true })
42
+ say_error "user #{@user_id} not found" unless data
42
43
  end
43
44
  end
44
45
  end
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -39,6 +39,7 @@ module Gzr
39
39
  say_warning(@options) if @options[:debug]
40
40
  with_session do
41
41
  data = update_user(@user_id, { :is_disabled=>false })
42
+ say_error "user #{@user_id} not found" unless data
42
43
  end
43
44
  end
44
45
  end
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -37,9 +37,19 @@ module Gzr
37
37
 
38
38
  def execute(input: $stdin, output: $stdout)
39
39
  say_warning(@options) if @options[:debug]
40
+ credentials = [
41
+ 'credentials_email',
42
+ 'credentials_embed',
43
+ 'credentials_google',
44
+ 'credentials_ldap',
45
+ 'credentials_looker_openid',
46
+ 'credentials_oidc',
47
+ 'credentials_saml',
48
+ 'credentials_totp'
49
+ ]
40
50
  with_session do
41
51
  f = @options[:fields]
42
- f += ',credentials_email,credentials_totp,credentials_google,credentials_saml,credentials_oidc' if @options[:"last-login"]
52
+ f = f + ',' + credentials.join(',') if @options[:"last-login"]
43
53
  data = query_all_users(f, "id")
44
54
  begin
45
55
  say_ok "No users found"
@@ -50,17 +60,18 @@ module Gzr
50
60
  fields = field_names(@options[:fields])
51
61
  fields.unshift 'last_login' if @options[:"last-login"]
52
62
  table_hash[:header] = fields unless @options[:plain]
53
- expressions = fields.collect { |fn| field_expression(fn) }
63
+ expressions = fields.collect { |fn| field_expression_hash(fn) }
54
64
  table_hash[:rows] = data.map do |row|
55
65
  expressions.collect do |e|
56
- next(eval "row.#{e}") unless (e == 'last_login')
57
- [
58
- row.credentials_email()&.logged_in_at(),
59
- (row.credentials_totp()&.logged_in_at()),
60
- (row.credentials_google()&.logged_in_at()),
61
- (row.credentials_saml()&.logged_in_at()),
62
- (row.credentials_oidc()&.logged_in_at())
63
- ].compact.max
66
+ next(eval "row#{e}") unless (e == '&.fetch(:last_login,nil)')
67
+ credentials.collect do |c|
68
+ obj = row.fetch(c.to_sym)
69
+ if obj.kind_of?(Array)
70
+ obj.collect { |e| e.fetch(:logged_in_at,nil)&.to_s }
71
+ else
72
+ obj&.fetch(:logged_in_at,nil)&.to_s
73
+ end
74
+ end.flatten.compact.max
64
75
  end
65
76
  end
66
77
  table = TTY::Table.new(table_hash)
@@ -40,17 +40,20 @@ module Gzr
40
40
  say_warning(@options) if @options[:debug]
41
41
  with_session do
42
42
  data = query_me(@options[:fields])
43
+
43
44
  table_hash = Hash.new
44
45
  fields = field_names(@options[:fields])
45
46
  table_hash[:header] = fields unless @options[:plain]
46
- expressions = fields.collect { |fn| field_expression(fn) }
47
+ expressions = fields.collect { |fn| field_expression_hash(fn) }
47
48
  table_hash[:rows] = [expressions.collect do |e|
48
- eval "data.#{e}"
49
+ eval "data#{e}"
49
50
  end]
51
+
50
52
  table = TTY::Table.new(table_hash) if data
51
53
  alignments = fields.collect do |k|
52
54
  (k =~ /id$/) ? :right : :left
53
55
  end
56
+
54
57
  begin
55
58
  if @options[:csv] then
56
59
  output.puts render_csv(table)
@@ -58,6 +61,7 @@ module Gzr
58
61
  output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
59
62
  end
60
63
  end if table
64
+
61
65
  end
62
66
  end
63
67
  end
@@ -72,6 +72,8 @@ module Gzr
72
72
  desc: 'Fields to display'
73
73
  method_option :dir, type: :string,
74
74
  desc: 'Directory to store output file'
75
+ method_option :trim, type: :boolean,
76
+ desc: 'Trim output to minimal set of fields for later import'
75
77
  def cat(user_id)
76
78
  if options[:help]
77
79
  invoke :help, ['cat']
@@ -26,7 +26,7 @@ module Gzr
26
26
  def get_alert(alert_id)
27
27
  data = nil
28
28
  begin
29
- data = @sdk.get_alert(alert_id)
29
+ data = @sdk.get_alert(alert_id).to_attrs
30
30
  rescue LookerSDK::NotFound => e
31
31
  # do nothing
32
32
  rescue LookerSDK::Error => e
@@ -34,11 +34,11 @@ module Gzr
34
34
  say_error e
35
35
  raise
36
36
  end
37
- if data[:owner_id]
37
+ if data and data[:owner_id]
38
38
  owner = get_user_by_id(data[:owner_id])
39
- data[:owner] = owner.to_attrs.select do |k,v|
39
+ data[:owner] = owner.select do |k,v|
40
40
  [:email,:last_name,:first_name].include?(k) && !(v.nil? || v.empty?)
41
- end
41
+ end if owner
42
42
  end
43
43
  data
44
44
  end
@@ -57,7 +57,7 @@ module Gzr
57
57
  req[:all_owners] = all_owners unless all_owners.nil?
58
58
  req[:limit] = 64
59
59
  loop do
60
- page = @sdk.search_alerts(req)
60
+ page = @sdk.search_alerts(req).collect { |a| a.to_attrs }
61
61
  data+=page
62
62
  break unless page.length == req[:limit]
63
63
  req[:offset] = (req[:offset] || 0) + req[:limit]
@@ -75,6 +75,10 @@ module Gzr
75
75
  def follow_alert(alert_id)
76
76
  begin
77
77
  @sdk.follow_alert(alert_id)
78
+ rescue LookerSDK::NotFound => e
79
+ say_error "Alert #{alert_id} not found"
80
+ say_error e
81
+ raise
78
82
  rescue LookerSDK::Error => e
79
83
  say_error "Error following alert(#{alert_id})"
80
84
  say_error e
@@ -85,8 +89,12 @@ module Gzr
85
89
  def unfollow_alert(alert_id)
86
90
  begin
87
91
  @sdk.unfollow_alert(alert_id)
92
+ rescue LookerSDK::NotFound => e
93
+ say_error "Alert #{alert_id} not found"
94
+ say_error e
95
+ raise
88
96
  rescue LookerSDK::Error => e
89
- say_error "Error following alert(#{alert_id})"
97
+ say_error "Error unfollowing alert(#{alert_id})"
90
98
  say_error e
91
99
  raise
92
100
  end
@@ -99,20 +107,26 @@ module Gzr
99
107
  req[:disabled_reason] = disabled_reason unless disabled_reason.nil?
100
108
  req[:is_public] = is_public unless is_public.nil?
101
109
  req[:threshold] = threshold unless threshold.nil?
102
- data = nil
103
110
  begin
104
- data = @sdk.update_alert_field(alert_id, req)
111
+ @sdk.update_alert_field(alert_id, req).to_attrs
112
+ rescue LookerSDK::NotFound => e
113
+ say_error "Alert #{alert_id} not found"
114
+ say_error e
115
+ raise
105
116
  rescue LookerSDK::Error => e
106
117
  say_error "Error calling update_alert_field(#{alert_id},#{JSON.pretty_generate(req)})"
107
118
  say_error e
108
119
  raise
109
120
  end
110
- data
111
121
  end
112
122
 
113
123
  def delete_alert(alert_id)
114
124
  begin
115
125
  @sdk.delete_alert(alert_id)
126
+ rescue LookerSDK::NotFound => e
127
+ say_error "Alert #{alert_id} not found"
128
+ say_error e
129
+ raise
116
130
  rescue LookerSDK::Error => e
117
131
  say_error "Error calling delete_alert(#{alert_id})"
118
132
  say_error e
@@ -126,7 +140,7 @@ module Gzr
126
140
  begin
127
141
  req[:limit] = 64
128
142
  loop do
129
- page = @sdk.alert_notifications(req)
143
+ page = @sdk.alert_notifications(req).collect { |a| a.to_attrs }
130
144
  data+=page
131
145
  break unless page.length == req[:limit]
132
146
  req[:offset] = (req[:offset] || 0) + req[:limit]
@@ -142,28 +156,27 @@ module Gzr
142
156
  end
143
157
 
144
158
  def read_alert_notification(notification_id)
145
- data = nil
146
159
  begin
147
- data = @sdk.read_alert_notification(notification_id)
160
+ @sdk.read_alert_notification(notification_id).to_attrs
161
+ rescue LookerSDK::NotFound => e
162
+ say_error "Alert notification #{notification_id} not found"
163
+ say_error e
164
+ raise
148
165
  rescue LookerSDK::Error => e
149
166
  say_error "Error calling read_alert_notification(#{notification_id})"
150
167
  say_error e
151
168
  raise
152
169
  end
153
- data.to_attrs
154
170
  end
155
171
 
156
172
  def create_alert(req)
157
- data = nil
158
173
  begin
159
- data = @sdk.create_alert(req)
174
+ @sdk.create_alert(req).to_attrs
160
175
  rescue LookerSDK::Error => e
161
176
  say_error "Error calling create_alert(#{JSON.pretty_generate(req)})"
162
177
  say_error e
163
178
  raise
164
179
  end
165
- data.to_attrs
166
180
  end
167
-
168
181
  end
169
182
  end
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -24,89 +24,91 @@
24
24
  module Gzr
25
25
  module Attribute
26
26
  def query_user_attribute(attr_id,fields=nil)
27
- data = nil
28
27
  begin
29
28
  req = {}
30
29
  req[:fields] = fields if fields
31
- data = @sdk.user_attribute(attr_id,req)
30
+ @sdk.user_attribute(attr_id,req).to_attrs
32
31
  rescue LookerSDK::NotFound => e
33
- # do nothing
32
+ say_error "User_attribute #{attr_id} not found"
33
+ say_error e
34
+ raise
34
35
  rescue LookerSDK::Error => e
35
36
  say_error "Error querying user_attribute(#{attr_id},#{JSON.pretty_generate(req)})"
36
37
  say_error e
37
38
  raise
38
39
  end
39
- data
40
40
  end
41
41
 
42
42
  def query_all_user_attributes(fields=nil, sorts=nil)
43
- data = nil
44
43
  begin
45
44
  req = {}
46
45
  req[:fields] = fields if fields
47
46
  req[:sorts] = sorts if sorts
48
- data = @sdk.all_user_attributes(req)
47
+ @sdk.all_user_attributes(req).collect { |a| a.to_attrs }
48
+ rescue LookerSDK::NotFound => e
49
+ []
49
50
  rescue LookerSDK::Error => e
50
51
  say_error "Error querying all_user_attributes(#{JSON.pretty_generate(req)})"
51
52
  say_error e
52
53
  raise
53
54
  end
54
- data
55
55
  end
56
56
 
57
57
  def get_attribute_by_name(name, fields = nil)
58
- data = query_all_user_attributes(fields).select {|a| a.name == name}
58
+ data = query_all_user_attributes(fields).select {|a| a[:name] == name}
59
59
  return nil if data.empty?
60
60
  data.first
61
61
  end
62
62
 
63
63
  def get_attribute_by_label(label, fields = nil)
64
- data = query_all_user_attributes(fields).select {|a| a.label == label}
64
+ data = query_all_user_attributes(fields).select {|a| a[:label] == label}
65
65
  return nil if data.empty?
66
66
  data.first
67
67
  end
68
68
 
69
69
  def create_attribute(attr)
70
- data = nil
71
70
  begin
72
- data = @sdk.create_user_attribute(attr)
71
+ @sdk.create_user_attribute(attr).to_attrs
73
72
  rescue LookerSDK::Error => e
74
73
  say_error "Error creating user_attribute(#{JSON.pretty_generate(attr)})"
75
74
  say_error e
76
75
  raise
77
76
  end
78
- data
79
77
  end
80
78
 
81
79
  def update_attribute(id,attr)
82
- data = nil
83
80
  begin
84
- data = @sdk.update_user_attribute(id,attr)
81
+ @sdk.update_user_attribute(id,attr).to_attrs
82
+ rescue LookerSDK::NotFound => e
83
+ say_error "user_attribute #{id} not found"
84
+ say_error e
85
+ raise
85
86
  rescue LookerSDK::Error => e
86
87
  say_error "Error updating user_attribute(#{id},#{JSON.pretty_generate(attr)})"
87
88
  say_error e
88
89
  raise
89
90
  end
90
- data
91
91
  end
92
92
 
93
93
  def delete_user_attribute(id)
94
- data = nil
95
94
  begin
96
- data = @sdk.delete_user_attribute(id)
95
+ @sdk.delete_user_attribute(id)
96
+ rescue LookerSDK::NotFound => e
97
+ say_error "user_attribute #{id} not found"
98
+ say_error e
99
+ raise
97
100
  rescue LookerSDK::Error => e
98
101
  say_error "Error deleting user_attribute(#{id})"
99
102
  say_error e
100
103
  raise
101
104
  end
102
- data
103
105
  end
104
106
 
105
107
  def query_all_user_attribute_group_values(attr_id, fields=nil)
106
108
  begin
107
109
  req = {}
108
110
  req[:fields] = fields if fields
109
- return @sdk.all_user_attribute_group_values(attr_id,req)
111
+ return @sdk.all_user_attribute_group_values(attr_id,req).collect { |v| v.to_attrs }
110
112
  rescue LookerSDK::NotFound => e
111
113
  return nil
112
114
  rescue LookerSDK::Error => e
@@ -117,7 +119,7 @@ module Gzr
117
119
  end
118
120
 
119
121
  def query_user_attribute_group_value(group_id, attr_id)
120
- data = query_all_user_attribute_group_values(attr_id)&.select {|a| a.group_id == group_id}
122
+ data = query_all_user_attribute_group_values(attr_id)&.select {|a| a[:group_id] == group_id}
121
123
  return nil if data.nil? || data.empty?
122
124
  data.first
123
125
  end
@@ -141,7 +143,7 @@ module Gzr
141
143
  keys_to_keep('update_user_attribute').include?(k) && !(name_used[k] == v)
142
144
  end
143
145
 
144
- return update_attribute(existing.id,upd_attr)
146
+ return update_attribute(existing[:id],upd_attr)
145
147
  else
146
148
  new_attr = source.select do |k,v|
147
149
  (keys_to_keep('create_user_attribute') - [:hidden_value_domain_whitelist]).include? k
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- # Copyright (c) 2018 Mike DeAngelo Looker Data Sciences, Inc.
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
4
 
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  # this software and associated documentation files (the "Software"), to deal in
@@ -25,50 +25,41 @@ module Gzr
25
25
  module Connection
26
26
 
27
27
  def query_all_connections(fields=nil)
28
- data = nil
29
28
  begin
30
- data = @sdk.all_connections(fields ? {:fields=>fields} : nil )
29
+ @sdk.all_connections(fields ? {:fields=>fields} : nil ).collect { |e| e.to_attrs }
31
30
  rescue LookerSDK::Error => e
32
31
  say_error "Error querying all_connections({:fields=>\"#{fields}\"})"
33
32
  say_error e
34
33
  raise
35
34
  end
36
- data
37
35
  end
38
36
 
39
37
  def query_all_dialects(fields=nil)
40
- data = nil
41
38
  begin
42
- data = @sdk.all_dialect_infos(fields ? {:fields=>fields} : nil )
39
+ @sdk.all_dialect_infos(fields ? {:fields=>fields} : nil ).collect { |e| e.to_attrs }
43
40
  rescue LookerSDK::Error => e
44
41
  say_error "Error querying all_dialect_infos({:fields=>\"#{fields}\"})"
45
42
  say_error e
46
43
  raise
47
44
  end
48
- data
49
45
  end
50
46
 
51
47
  def test_connection(name, tests=nil)
52
- data = nil
53
-
54
48
  if tests.nil?
55
49
  connection = cat_connection(name)
56
- if connection.nil?
57
- return nil
58
- end
50
+ return nil if connection.nil?
59
51
  tests = connection[:dialect][:connection_tests]
60
52
  end
61
53
 
62
54
  begin
63
- data = @sdk.test_connection(name, {}, tests: tests)
55
+ @sdk.test_connection(name, {}, tests: tests).collect { |e| e.to_attrs }
64
56
  rescue LookerSDK::NotFound => e
65
- return nil
57
+ return []
66
58
  rescue LookerSDK::Error => e
67
59
  say_error "Error executing test_connection(#{name},#{tests})"
68
60
  say_error e
69
61
  raise
70
62
  end
71
- data
72
63
  end
73
64
 
74
65
  def delete_connection(name)
@@ -84,21 +75,18 @@ module Gzr
84
75
  end
85
76
 
86
77
  def create_connection(body)
87
- data = nil
88
78
  begin
89
- data = @sdk.create_connection(body).to_attrs
79
+ @sdk.create_connection(body).to_attrs
90
80
  rescue LookerSDK::Error => e
91
81
  say_error "Error executing create_connection(#{JSON.pretty_generate(body)})"
92
82
  say_error e
93
83
  raise
94
84
  end
95
- data
96
85
  end
97
86
 
98
87
  def update_connection(name,body)
99
- data = nil
100
88
  begin
101
- data = @sdk.update_connection(name,body).to_attrs
89
+ @sdk.update_connection(name,body).to_attrs
102
90
  rescue LookerSDK::NotFound => e
103
91
  say_warning "Connection #{name} not found"
104
92
  rescue LookerSDK::Error => e
@@ -106,21 +94,18 @@ module Gzr
106
94
  say_error e
107
95
  raise
108
96
  end
109
- data
110
97
  end
111
98
 
112
99
  def cat_connection(name)
113
- data = nil
114
100
  begin
115
- data = @sdk.connection(name).to_attrs
101
+ @sdk.connection(name).to_attrs
116
102
  rescue LookerSDK::NotFound => e
117
- return nil
103
+ nil
118
104
  rescue LookerSDK::Error => e
119
105
  say_error "Error executing connection(#{name})"
120
106
  say_error e
121
107
  raise
122
108
  end
123
- data
124
109
  end
125
110
 
126
111
  def trim_connection(data)