gazer 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -20,9 +20,12 @@
20
20
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  # frozen_string_literal: true
23
+ require_relative 'alert'
23
24
 
24
25
  module Gzr
25
26
  module Dashboard
27
+ include Gzr::Alert
28
+
26
29
  def query_dashboard(dashboard_id)
27
30
  data = nil
28
31
  begin
@@ -249,6 +252,17 @@ module Gzr
249
252
  rewrite_color_palette!(o,default_colors)
250
253
  end
251
254
  end
255
+ alerts = search_alerts(fields: 'id,dashboard_element_id', group_by: 'dashboard', all_owners: true)
256
+ alerts.map!{|v| v.to_attrs}
257
+ say_warning alerts if @options[:debug]
258
+ data[:dashboard_elements].each do |e|
259
+ alerts_found = alerts.select { |a| a[:dashboard_element_id] == e[:id]}
260
+ say_warning "Found alerts #{alerts_found}" if @options[:debug]
261
+ alerts_entries = alerts_found.map { |a| get_alert(a[:id]).to_attrs }
262
+ say_warning "Looked up alerts entries #{alerts_entries}" if @options[:debug]
263
+ e[:alerts] = alerts_entries
264
+ end
265
+
252
266
  merge_result = merge_query(element[:merge_result_id])&.to_attrs if element[:merge_result_id]
253
267
  if merge_result
254
268
  merge_result[:source_queries].each_index do |j|
@@ -266,5 +280,79 @@ module Gzr
266
280
  data[:scheduled_plans] = query_scheduled_plans_for_dashboard(@dashboard_id,"all") if @options[:plans]
267
281
  data
268
282
  end
283
+
284
+ def trim_dashboard(data)
285
+ trimmed = data.select do |k,v|
286
+ (keys_to_keep('update_dashboard') + [:id,:dashboard_elements,:dashboard_filters,:dashboard_layouts,:scheduled_plans]).include? k
287
+ end
288
+
289
+ trimmed[:dashboard_elements] = data[:dashboard_elements].map do |de|
290
+ new_de = de.select do |k,v|
291
+ (keys_to_keep('update_dashboard_element') + [:id,:look,:query,:merge_result,:alerts]).include? k
292
+ end
293
+ if de[:look]
294
+ new_de[:look] = de[:look].select do |k,v|
295
+ (keys_to_keep('update_look') + [:id,:query]).include? k
296
+ end
297
+ if de[:look][:query]
298
+ new_de[:look][:query] = de[:look][:query].select do |k,v|
299
+ (keys_to_keep('create_query') + [:id]).include? k
300
+ end
301
+ end
302
+ end
303
+ if de[:query]
304
+ new_de[:query] = de[:query].select do |k,v|
305
+ (keys_to_keep('create_query') + [:id]).include? k
306
+ end
307
+ end
308
+ if de[:merge_result]
309
+ new_de[:merge_result] = de[:merge_result].select do |k,v|
310
+ (keys_to_keep('update_merge_query') + [:id]).include? k
311
+ end
312
+ new_de[:merge_result][:source_queries] = de[:merge_result][:source_queries].map do |sq|
313
+ sq.select do |k,v|
314
+ (keys_to_keep('create_query') + [:id]).include? k
315
+ end
316
+ end
317
+ end
318
+ if de[:alerts]
319
+ new_de[:alerts] = de[:alerts].map do |a|
320
+ a.select do |k,v|
321
+ (keys_to_keep('update_alert') + [:id,:owner]).include? k
322
+ end
323
+ end
324
+ end
325
+ new_de
326
+ end
327
+
328
+ trimmed[:dashboard_filters] = data[:dashboard_filters].map do |df|
329
+ new_df = df.select do |k,v|
330
+ keys_to_keep('update_dashboard_filter').include? k
331
+ end
332
+ new_df
333
+ end
334
+
335
+ trimmed[:dashboard_layouts] = data[:dashboard_layouts].map do |dl|
336
+ new_dl = dl.select do |k,v|
337
+ (keys_to_keep('update_dashboard_layout') + [:id]).include? k
338
+ end
339
+ if dl[:dashboard_layout_components]
340
+ new_dl[:dashboard_layout_components] = dl[:dashboard_layout_components].map do |dlc|
341
+ dlc.select do |k,v|
342
+ (keys_to_keep('update_dashboard_layout_component') + [:id]).include? k
343
+ end
344
+ end
345
+ end
346
+ new_dl
347
+ end
348
+
349
+ trimmed[:scheduled_plans] = data[:scheduled_plans].map do |sp|
350
+ sp.select do |k,v|
351
+ (keys_to_keep('create_scheduled_plan') + [:id]).include? k
352
+ end
353
+ end if data[:scheduled_plans]
354
+
355
+ trimmed
356
+ end
269
357
  end
270
358
  end
@@ -198,8 +198,25 @@ module Gzr
198
198
  end
199
199
  end
200
200
 
201
- data[:scheduled_plans] = query_scheduled_plans_for_look(@look_id,"all")&.to_attrs if @options[:plans]
201
+ data[:scheduled_plans] = query_scheduled_plans_for_look(@look_id,"all").map { |e| e.to_attrs } if @options[:plans]
202
202
  data
203
203
  end
204
+
205
+ def trim_look(data)
206
+ trimmed = data.select do |k,v|
207
+ (keys_to_keep('update_look') + [:id,:query]).include? k
208
+ end
209
+ trimmed[:query] = data[:query].select do |k,v|
210
+ (keys_to_keep('create_query') + [:id]).include? k
211
+ end
212
+
213
+ trimmed[:scheduled_plans] = data[:scheduled_plans].map do |sp|
214
+ sp.select do |k,v|
215
+ (keys_to_keep('create_scheduled_plan') + [:id]).include? k
216
+ end
217
+ end if data[:scheduled_plans]
218
+
219
+ trimmed
220
+ end
204
221
  end
205
222
  end
data/lib/gzr/version.rb CHANGED
@@ -20,5 +20,5 @@
20
20
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  module Gzr
23
- VERSION = '0.3.0'.freeze
23
+ VERSION = '0.3.2'.freeze
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike DeAngelo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-13 00:00:00.000000000 Z
11
+ date: 2023-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader
@@ -269,6 +269,19 @@ files:
269
269
  - lib/gzr/cli.rb
270
270
  - lib/gzr/command.rb
271
271
  - lib/gzr/commands/.gitkeep
272
+ - lib/gzr/commands/alert.rb
273
+ - lib/gzr/commands/alert/cat.rb
274
+ - lib/gzr/commands/alert/chown.rb
275
+ - lib/gzr/commands/alert/delete.rb
276
+ - lib/gzr/commands/alert/disable.rb
277
+ - lib/gzr/commands/alert/enable.rb
278
+ - lib/gzr/commands/alert/follow.rb
279
+ - lib/gzr/commands/alert/import.rb
280
+ - lib/gzr/commands/alert/ls.rb
281
+ - lib/gzr/commands/alert/notifications.rb
282
+ - lib/gzr/commands/alert/read.rb
283
+ - lib/gzr/commands/alert/threshold.rb
284
+ - lib/gzr/commands/alert/unfollow.rb
272
285
  - lib/gzr/commands/attribute.rb
273
286
  - lib/gzr/commands/attribute/cat.rb
274
287
  - lib/gzr/commands/attribute/create.rb
@@ -335,6 +348,7 @@ files:
335
348
  - lib/gzr/commands/user/enable.rb
336
349
  - lib/gzr/commands/user/ls.rb
337
350
  - lib/gzr/commands/user/me.rb
351
+ - lib/gzr/modules/alert.rb
338
352
  - lib/gzr/modules/attribute.rb
339
353
  - lib/gzr/modules/connection.rb
340
354
  - lib/gzr/modules/dashboard.rb