gazer 0.3.5 → 0.3.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8353db2512a7ffe580a29ee37366871008368b6398d458fbc544eb5eca2e0e48
4
- data.tar.gz: 32c1c523488511675f82106447f2d78572322399548894eb35bf9fb882358b20
3
+ metadata.gz: 2ee219afcd17f3191d17c1f87ed6b6683beecc7210736fa9da4e5190bc9cab07
4
+ data.tar.gz: 6982e0ee5cb893d2ef81e23987e7fe26f729f8c33bd417195c0d226dff01e4a4
5
5
  SHA512:
6
- metadata.gz: c5cdda279be77bb67a70ac68c8d7970550b67bfbf6a4a9ec93df3ed4515cf326179c1b7fc5b3a6d41c6f2ee8888c1b31e1e189bdf12ac5620cdc0a6c31bcedf5
7
- data.tar.gz: babe51b71247333c6fd6091d814fa7ada1adaf71d852f07a4aa7ece6b93c8576415157c82370a49e4317bf9610b4cc3796e2aca22c43791fe2df5e3409448e29
6
+ metadata.gz: 2e28feecde59cbe5d3dc3b0f0da26162bd057828d2e6c615cb0598ed834e2729770fa6d4fb1a2a2ffb7e4e80624adba886a1ef17aa7990df41f05baef8d84f5b
7
+ data.tar.gz: d5688042b3437473cec0caed7e3521e1b38f10d22fee304cabfb01052c36a03a88269c16bb7b4338f74e401b2cc7470e4e169fa4c346d6efcd487893f36fc015
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.7](https://github.com/looker-open-source/gzr/compare/v0.3.6...v0.3.7) (2023-05-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * option to sync lookml dashboard on import_lookml if it exists already ([#196](https://github.com/looker-open-source/gzr/issues/196)) ([c8ec619](https://github.com/looker-open-source/gzr/commit/c8ec619186c6a0ce81633d701f78444f4e488a5b))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Update connection calling wrong API method ([#197](https://github.com/looker-open-source/gzr/issues/197)) ([e122b47](https://github.com/looker-open-source/gzr/commit/e122b47fca9f2ff218cff0904c147cf94d54fe69))
14
+
15
+ ## [0.3.6](https://github.com/looker-open-source/gzr/compare/v0.3.5...v0.3.6) (2023-05-09)
16
+
17
+
18
+ ### Features
19
+
20
+ * dashboard sync_lookml to sync UDDs with their associated lookml dashboards ([#194](https://github.com/looker-open-source/gzr/issues/194)) ([7b94a79](https://github.com/looker-open-source/gzr/commit/7b94a7962d36d865759b105b481f602aac87523e))
21
+
3
22
  ## [0.3.5](https://github.com/looker-open-source/gzr/compare/v0.3.4...v0.3.5) (2023-05-05)
4
23
 
5
24
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gazer (0.3.5)
4
+ gazer (0.3.7)
5
5
  faraday (~> 1.10.3)
6
6
  looker-sdk (~> 0.1.1)
7
7
  net-http-persistent (~> 4.0, >= 4.0.1)
@@ -49,12 +49,19 @@ module Gzr
49
49
  matching_title = false
50
50
  end
51
51
 
52
- if matching_title
52
+ if matching_title && !(matching_title.first[:lookml_link_id] == @dashboard_id)
53
53
  raise Gzr::CLI::Error, "Dashboard #{dash[:title]} already exists in folder #{@target_folder_id}\nUse --force if you want to overwrite it" unless @options[:force]
54
54
  say_ok "Deleting existing dashboard #{matching_title.first[:id]} #{matching_title.first[:title]} in folder #{@target_folder_id}", output: output
55
55
  update_dashboard(matching_title.first[:id],{:deleted=>true})
56
56
  end
57
57
 
58
+ if matching_title && (matching_title.first[:lookml_link_id] == @dashboard_id)
59
+ raise Gzr::CLI::Error, "Linked Dashboard #{dash[:title]} already exists in folder #{@target_folder_id}\nUse --sync if you want to synchronize it" unless @options[:sync]
60
+ say_ok "Syncing existing dashboard #{matching_title.first[:id]} #{matching_title.first[:title]} in folder #{@target_folder_id}", output: output
61
+ output.puts sync_lookml_dashboard(@dashboard_id)
62
+ return
63
+ end
64
+
58
65
  new_dash = import_lookml_dashboard(@dashboard_id,@target_folder_id)
59
66
 
60
67
  if @options[:unlink]
@@ -0,0 +1,52 @@
1
+ # The MIT License (MIT)
2
+
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
+
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ # this software and associated documentation files (the "Software"), to deal in
7
+ # the Software without restriction, including without limitation the rights to
8
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ # the Software, and to permit persons to whom the Software is furnished to do so,
10
+ # subject to the following conditions:
11
+
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ # frozen_string_literal: true
23
+
24
+ require_relative '../../../gzr'
25
+ require_relative '../../command'
26
+ require_relative '../../modules/dashboard'
27
+
28
+ module Gzr
29
+ module Commands
30
+ class Dashboard
31
+ class SyncLookml < Gzr::Command
32
+ include Gzr::Dashboard
33
+ def initialize(dashboard_id, options)
34
+ super()
35
+ @dashboard_id = dashboard_id
36
+ @options = options
37
+ end
38
+
39
+ def execute(input: $stdin, output: $stdout)
40
+ say_warning("options: #{@options.inspect}", output: output) if @options[:debug]
41
+ with_session do
42
+
43
+ dash = query_dashboard(@dashboard_id)
44
+ raise Gzr::CLI::Error, "Dashboard with id #{@dashboard_id} does not exist" unless dash
45
+
46
+ say_ok sync_lookml_dashboard(@dashboard_id)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -104,6 +104,8 @@ module Gzr
104
104
  desc: 'Unlink the new user defined dashboard from the LookML dashboard'
105
105
  method_option :force, type: :boolean,
106
106
  desc: 'Overwrite a dashboard with the same name in the target folder'
107
+ method_option :sync, type: :boolean,
108
+ desc: 'If linked dashboard already exists, sync it with LookML dashboard'
107
109
  def import_lookml(dashboard_id, target_folder_id)
108
110
  if options[:help]
109
111
  invoke :help, ['import_lookml']
@@ -112,6 +114,18 @@ module Gzr
112
114
  Gzr::Commands::Dashboard::ImportLookml.new(dashboard_id, target_folder_id, options).execute
113
115
  end
114
116
  end
117
+
118
+ desc 'sync_lookml DASHBOARD_ID', 'Sync any UDD from a lookml dashboard'
119
+ method_option :help, aliases: '-h', type: :boolean,
120
+ desc: 'Display usage information'
121
+ def sync_lookml(dashboard_id)
122
+ if options[:help]
123
+ invoke :help, ['sync_lookml']
124
+ else
125
+ require_relative 'dashboard/sync_lookml'
126
+ Gzr::Commands::Dashboard::SyncLookml.new(dashboard_id, options).execute
127
+ end
128
+ end
115
129
  end
116
130
  end
117
131
  end
@@ -98,7 +98,7 @@ module Gzr
98
98
  def update_connection(name,body)
99
99
  data = nil
100
100
  begin
101
- data = @sdk.connection(name,body).to_attrs
101
+ data = @sdk.update_connection(name,body).to_attrs
102
102
  rescue LookerSDK::NotFound => e
103
103
  say_warning "Connection #{name} not found"
104
104
  rescue LookerSDK::Error => e
@@ -364,5 +364,15 @@ module Gzr
364
364
  raise
365
365
  end
366
366
  end
367
+
368
+ def sync_lookml_dashboard(id)
369
+ begin
370
+ return @sdk.sync_lookml_dashboard(id, {})
371
+ rescue LookerSDK::Error => e
372
+ say_error "Error sync_lookml_dashboard(#{id})"
373
+ say_error e
374
+ raise
375
+ end
376
+ end
367
377
  end
368
378
  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.5'.freeze
23
+ VERSION = '0.3.7'.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.5
4
+ version: 0.3.7
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-05-05 00:00:00.000000000 Z
11
+ date: 2023-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader
@@ -303,6 +303,7 @@ files:
303
303
  - lib/gzr/commands/dashboard/import_lookml.rb
304
304
  - lib/gzr/commands/dashboard/mv.rb
305
305
  - lib/gzr/commands/dashboard/rm.rb
306
+ - lib/gzr/commands/dashboard/sync_lookml.rb
306
307
  - lib/gzr/commands/folder.rb
307
308
  - lib/gzr/commands/folder/cat.rb
308
309
  - lib/gzr/commands/folder/create.rb