gazer 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb3e55196fbe071e490c13afebb778e87599ecae42af96d09f8f8cffe87dbee3
4
- data.tar.gz: 50c66f3ad811fe73ee10c465a1a9708756cd5f97ae0fd548a842fb9051a5bc3a
3
+ metadata.gz: 8353db2512a7ffe580a29ee37366871008368b6398d458fbc544eb5eca2e0e48
4
+ data.tar.gz: 32c1c523488511675f82106447f2d78572322399548894eb35bf9fb882358b20
5
5
  SHA512:
6
- metadata.gz: a9ccb0e1bceca808eab9c60b940febd17cd681a3a79e617724fe395c59eb5ac70e50d55023c2075493f4dcb471f081dc8d86843025f8c3242d0e26e4a85ef5a7
7
- data.tar.gz: 1114f587dd788bced9db44c5b788ff1a5e69776cc1e3f7ac0feb20ed78a16d5b6b605acf499b7e528e988d9ed9565c2faf59f1cda67a08df2a9322eef5941221
6
+ metadata.gz: c5cdda279be77bb67a70ac68c8d7970550b67bfbf6a4a9ec93df3ed4515cf326179c1b7fc5b3a6d41c6f2ee8888c1b31e1e189bdf12ac5620cdc0a6c31bcedf5
7
+ data.tar.gz: babe51b71247333c6fd6091d814fa7ada1adaf71d852f07a4aa7ece6b93c8576415157c82370a49e4317bf9610b4cc3796e2aca22c43791fe2df5e3409448e29
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.5](https://github.com/looker-open-source/gzr/compare/v0.3.4...v0.3.5) (2023-05-05)
4
+
5
+
6
+ ### Features
7
+
8
+ * dashboard import_lookml ([#192](https://github.com/looker-open-source/gzr/issues/192)) ([248d5eb](https://github.com/looker-open-source/gzr/commit/248d5eb4b9e1c9ae302ab1b598784dd5065e9bf0))
9
+
3
10
  ## [0.3.4](https://github.com/looker-open-source/gzr/compare/v0.3.3...v0.3.4) (2023-05-04)
4
11
 
5
12
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gazer (0.3.4)
4
+ gazer (0.3.5)
5
5
  faraday (~> 1.10.3)
6
6
  looker-sdk (~> 0.1.1)
7
7
  net-http-persistent (~> 4.0, >= 4.0.1)
@@ -0,0 +1,72 @@
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 ImportLookml < Gzr::Command
32
+ include Gzr::Dashboard
33
+ def initialize(dashboard_id, target_folder_id, options)
34
+ super()
35
+ @dashboard_id = dashboard_id
36
+ @target_folder_id = target_folder_id
37
+ @options = options
38
+ end
39
+
40
+ def execute(input: $stdin, output: $stdout)
41
+ say_warning("options: #{@options.inspect}", output: output) if @options[:debug]
42
+ with_session do
43
+
44
+ dash = query_dashboard(@dashboard_id)
45
+ raise Gzr::CLI::Error, "Dashboard with id #{@dashboard_id} does not exist" unless dash
46
+
47
+ matching_title = search_dashboards_by_title(dash[:title],@target_folder_id)
48
+ if matching_title.empty? || matching_title.first[:deleted]
49
+ matching_title = false
50
+ end
51
+
52
+ if matching_title
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
+ say_ok "Deleting existing dashboard #{matching_title.first[:id]} #{matching_title.first[:title]} in folder #{@target_folder_id}", output: output
55
+ update_dashboard(matching_title.first[:id],{:deleted=>true})
56
+ end
57
+
58
+ new_dash = import_lookml_dashboard(@dashboard_id,@target_folder_id)
59
+
60
+ if @options[:unlink]
61
+ body = {}
62
+ body[:lookml_link_id] = nil
63
+ update_dashboard(new_dash[:id],body)
64
+ end
65
+ output.puts "Created user defined dashboard #{new_dash[:id]} in folder #{@target_folder_id}" unless @options[:plain]
66
+ output.puts new_dash[:id] if @options[:plain]
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -96,6 +96,22 @@ module Gzr
96
96
  Gzr::Commands::Dashboard::Rm.new(id, options).execute
97
97
  end
98
98
  end
99
+
100
+ desc 'import_lookml DASHBOARD_ID TARGET_FOLDER_ID', 'Create a UDD from a lookml dashboard in the given folder'
101
+ method_option :help, aliases: '-h', type: :boolean,
102
+ desc: 'Display usage information'
103
+ method_option :unlink, type: :boolean,
104
+ desc: 'Unlink the new user defined dashboard from the LookML dashboard'
105
+ method_option :force, type: :boolean,
106
+ desc: 'Overwrite a dashboard with the same name in the target folder'
107
+ def import_lookml(dashboard_id, target_folder_id)
108
+ if options[:help]
109
+ invoke :help, ['import_lookml']
110
+ else
111
+ require_relative 'dashboard/import_lookml'
112
+ Gzr::Commands::Dashboard::ImportLookml.new(dashboard_id, target_folder_id, options).execute
113
+ end
114
+ end
99
115
  end
100
116
  end
101
117
  end
@@ -354,5 +354,15 @@ module Gzr
354
354
 
355
355
  trimmed
356
356
  end
357
+
358
+ def import_lookml_dashboard(id,folder)
359
+ begin
360
+ return @sdk.import_lookml_dashboard(id,folder)&.to_attrs
361
+ rescue LookerSDK::Error => e
362
+ say_error "Error import_lookml_dashboard(#{id},#{folder})"
363
+ say_error e
364
+ raise
365
+ end
366
+ end
357
367
  end
358
368
  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.4'.freeze
23
+ VERSION = '0.3.5'.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.4
4
+ version: 0.3.5
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-04 00:00:00.000000000 Z
11
+ date: 2023-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader
@@ -300,6 +300,7 @@ files:
300
300
  - lib/gzr/commands/dashboard.rb
301
301
  - lib/gzr/commands/dashboard/cat.rb
302
302
  - lib/gzr/commands/dashboard/import.rb
303
+ - lib/gzr/commands/dashboard/import_lookml.rb
303
304
  - lib/gzr/commands/dashboard/mv.rb
304
305
  - lib/gzr/commands/dashboard/rm.rb
305
306
  - lib/gzr/commands/folder.rb