gazer 0.2.44 → 0.2.46
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 +4 -4
- data/.travis.yml +2 -2
- data/CODE_OF_CONDUCT.md +58 -39
- data/CONTRIBUTING.md +21 -21
- data/Gemfile.lock +41 -19
- data/gzr.gemspec +2 -1
- data/lib/gzr/cli.rb +2 -0
- data/lib/gzr/commands/attribute/ls.rb +1 -1
- data/lib/gzr/commands/connection/dialects.rb +1 -1
- data/lib/gzr/commands/connection/ls.rb +1 -1
- data/lib/gzr/commands/group/ls.rb +1 -1
- data/lib/gzr/commands/group/member_groups.rb +1 -1
- data/lib/gzr/commands/group/member_users.rb +1 -1
- data/lib/gzr/commands/model/ls.rb +1 -1
- data/lib/gzr/commands/permissions/ls.rb +1 -1
- data/lib/gzr/commands/plan/failures.rb +1 -1
- data/lib/gzr/commands/plan/ls.rb +1 -1
- data/lib/gzr/commands/role/group_ls.rb +1 -1
- data/lib/gzr/commands/role/ls.rb +1 -1
- data/lib/gzr/commands/role/user_ls.rb +1 -1
- data/lib/gzr/commands/space/ls.rb +1 -1
- data/lib/gzr/commands/space/top.rb +1 -1
- data/lib/gzr/commands/user/ls.rb +1 -1
- data/lib/gzr/commands/user/me.rb +1 -1
- data/lib/gzr/modules/session.rb +33 -19
- data/lib/gzr/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1111e80913b3cdb2b0649e59b963a0d656f19b84e6ccb523f20609f70d9dd068
|
|
4
|
+
data.tar.gz: 4733f9a2ac19d708b91e5729e3b7a588344f63a8726dfb776444ac3ec297d9ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b296ce9ecb25983851508cda708c8ad2ded39834a63d2d4f1c00ce924311268fb6ce990ee9c4c2fd37d715dbe208472ceb1866539d456a585a09720305d584c2
|
|
7
|
+
data.tar.gz: cb29a1df8bf6e02bc061c99ba33cb1746805b66d46edc777589c2112a5d7db837b953033c53a5547605216063aa3b0119a23f644b2f4e38ce1fc66452ffb48af
|
data/.travis.yml
CHANGED
data/CODE_OF_CONDUCT.md
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Code of Conduct
|
|
2
2
|
|
|
3
3
|
## Our Pledge
|
|
4
4
|
|
|
5
5
|
In the interest of fostering an open and welcoming environment, we as
|
|
6
6
|
contributors and maintainers pledge to making participation in our project and
|
|
7
7
|
our community a harassment-free experience for everyone, regardless of age, body
|
|
8
|
-
size, disability, ethnicity, gender identity and expression, level of
|
|
9
|
-
|
|
10
|
-
orientation.
|
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of
|
|
9
|
+
experience, education, socio-economic status, nationality, personal appearance,
|
|
10
|
+
race, religion, or sexual identity and orientation.
|
|
11
11
|
|
|
12
12
|
## Our Standards
|
|
13
13
|
|
|
14
14
|
Examples of behavior that contributes to creating a positive environment
|
|
15
15
|
include:
|
|
16
16
|
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* Using welcoming and inclusive language
|
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
|
19
|
+
* Gracefully accepting constructive criticism
|
|
20
|
+
* Focusing on what is best for the community
|
|
21
|
+
* Showing empathy towards other community members
|
|
22
22
|
|
|
23
23
|
Examples of unacceptable behavior by participants include:
|
|
24
24
|
|
|
25
|
-
*
|
|
26
|
-
advances
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
|
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
26
|
+
advances
|
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
28
|
+
* Public or private harassment
|
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
|
30
|
+
address, without explicit permission
|
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
|
32
|
+
professional setting
|
|
33
33
|
|
|
34
34
|
## Our Responsibilities
|
|
35
35
|
|
|
@@ -37,11 +37,11 @@ Project maintainers are responsible for clarifying the standards of acceptable
|
|
|
37
37
|
behavior and are expected to take appropriate and fair corrective action in
|
|
38
38
|
response to any instances of unacceptable behavior.
|
|
39
39
|
|
|
40
|
-
Project maintainers have the right and responsibility to remove, edit, or
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or reject
|
|
41
|
+
comments, commits, code, wiki edits, issues, and other contributions that are
|
|
42
|
+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
|
|
43
|
+
contributor for other behaviors that they deem inappropriate, threatening,
|
|
44
|
+
offensive, or harmful.
|
|
45
45
|
|
|
46
46
|
## Scope
|
|
47
47
|
|
|
@@ -52,23 +52,42 @@ address, posting via an official social media account, or acting as an appointed
|
|
|
52
52
|
representative at an online or offline event. Representation of a project may be
|
|
53
53
|
further defined and clarified by project maintainers.
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
This Code of Conduct also applies outside the project spaces when the Project
|
|
56
|
+
Steward has a reasonable belief that an individual's behavior may have a
|
|
57
|
+
negative impact on the project or its community.
|
|
58
|
+
|
|
59
|
+
## Conflict Resolution
|
|
60
|
+
|
|
61
|
+
We do not believe that all conflict is bad; healthy debate and disagreement
|
|
62
|
+
often yield positive results. However, it is never okay to be disrespectful or
|
|
63
|
+
to engage in behavior that violates the project’s code of conduct.
|
|
64
|
+
|
|
65
|
+
If you see someone violating the code of conduct, you are encouraged to address
|
|
66
|
+
the behavior directly with those involved. Many issues can be resolved quickly
|
|
67
|
+
and easily, and this gives people more control over the outcome of their
|
|
68
|
+
dispute. If you are unable to resolve the matter for any reason, or if the
|
|
69
|
+
behavior is threatening or harassing, report it. We are dedicated to providing
|
|
70
|
+
an environment where participants feel welcome and safe.
|
|
71
|
+
|
|
72
|
+
Reports should be directed to *Mike DeAngelo* drstrangelove@google.com, the
|
|
73
|
+
Project Steward(s) for *gzr*. It is the Project Steward’s duty to
|
|
74
|
+
receive and address reported violations of the code of conduct. They will then
|
|
75
|
+
work with a committee consisting of representatives from the Open Source
|
|
76
|
+
Programs Office and the Google Open Source Strategy team. If for any reason you
|
|
77
|
+
are uncomfortable reaching out to the Project Steward, please email
|
|
78
|
+
opensource@google.com.
|
|
79
|
+
|
|
80
|
+
We will investigate every complaint, but you may not receive a direct response.
|
|
81
|
+
We will use our discretion in determining when and how to follow up on reported
|
|
82
|
+
incidents, which may range from not taking action to permanent expulsion from
|
|
83
|
+
the project and project-sponsored spaces. We will notify the accused of the
|
|
84
|
+
report and provide them an opportunity to discuss it before any action is taken.
|
|
85
|
+
The identity of the reporter will be omitted from the details of the report
|
|
86
|
+
supplied to the accused. In potentially harmful situations, such as ongoing
|
|
87
|
+
harassment or threats to anyone's safety, we may take action without notice.
|
|
67
88
|
|
|
68
89
|
## Attribution
|
|
69
90
|
|
|
70
|
-
This Code of Conduct is adapted from the
|
|
71
|
-
available at
|
|
72
|
-
|
|
73
|
-
[homepage]: http://contributor-covenant.org
|
|
74
|
-
[version]: http://contributor-covenant.org/version/1/4/
|
|
91
|
+
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
|
|
92
|
+
available at
|
|
93
|
+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
data/CONTRIBUTING.md
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
# How to Contribute
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
We'd love to accept your patches and contributions to this project. There are
|
|
4
|
+
just a few small guidelines you need to follow.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
## Contributor License Agreement
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Contributions to this project must be accompanied by a Contributor License
|
|
9
|
+
Agreement (CLA). You (or your employer) retain the copyright to your
|
|
10
|
+
contribution; this simply gives us permission to use and redistribute your
|
|
11
|
+
contributions as part of the project. Head over to
|
|
12
|
+
<https://cla.developers.google.com/> to see your current agreements on file or
|
|
13
|
+
to sign a new one.
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
You generally only need to submit a CLA once, so if you've already submitted one
|
|
16
|
+
(even if it was for a different project), you probably don't need to do it
|
|
17
|
+
again.
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
## Code Reviews
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
All submissions, including submissions by project members, require review. We
|
|
22
|
+
use GitHub pull requests for this purpose. Consult
|
|
23
|
+
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
|
24
|
+
information on using pull requests.
|
|
14
25
|
|
|
15
|
-
|
|
26
|
+
## Community Guidelines
|
|
16
27
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
#### **Do you intend to add a new feature or change an existing one?**
|
|
20
|
-
|
|
21
|
-
* Again please open an issue in GitHub. Larger projects often segregate bugs from new features and enhancements, but we are still small enough that it is not an issue.
|
|
22
|
-
|
|
23
|
-
#### **Do you have questions about the source code?**
|
|
24
|
-
|
|
25
|
-
* Ask any question about how to use Gazer by contacting the [primary developer](mailto:deangelo+gzr@looker.com).
|
|
26
|
-
|
|
27
|
-
Thanks! :heart: :heart: :heart:
|
|
28
|
-
|
|
29
|
-
Gazer Team
|
|
28
|
+
This project follows
|
|
29
|
+
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gazer (0.2.
|
|
5
|
-
looker-sdk (~> 0.
|
|
4
|
+
gazer (0.2.46)
|
|
5
|
+
looker-sdk (~> 0.1.1)
|
|
6
|
+
net-http-persistent (~> 4.0.1)
|
|
6
7
|
netrc (~> 0.11.0)
|
|
7
8
|
pastel (~> 0.7.2)
|
|
8
9
|
rubyzip (~> 1.3.0)
|
|
@@ -14,18 +15,38 @@ PATH
|
|
|
14
15
|
GEM
|
|
15
16
|
remote: https://rubygems.org/
|
|
16
17
|
specs:
|
|
17
|
-
addressable (2.
|
|
18
|
+
addressable (2.8.0)
|
|
18
19
|
public_suffix (>= 2.0.2, < 5.0)
|
|
20
|
+
connection_pool (2.2.5)
|
|
19
21
|
diff-lcs (1.3)
|
|
20
22
|
equatable (0.5.0)
|
|
21
|
-
faraday (
|
|
23
|
+
faraday (1.8.0)
|
|
24
|
+
faraday-em_http (~> 1.0)
|
|
25
|
+
faraday-em_synchrony (~> 1.0)
|
|
26
|
+
faraday-excon (~> 1.1)
|
|
27
|
+
faraday-httpclient (~> 1.0.1)
|
|
28
|
+
faraday-net_http (~> 1.0)
|
|
29
|
+
faraday-net_http_persistent (~> 1.1)
|
|
30
|
+
faraday-patron (~> 1.0)
|
|
31
|
+
faraday-rack (~> 1.0)
|
|
22
32
|
multipart-post (>= 1.2, < 3)
|
|
33
|
+
ruby2_keywords (>= 0.0.4)
|
|
34
|
+
faraday-em_http (1.0.0)
|
|
35
|
+
faraday-em_synchrony (1.0.0)
|
|
36
|
+
faraday-excon (1.1.0)
|
|
37
|
+
faraday-httpclient (1.0.1)
|
|
38
|
+
faraday-net_http (1.0.1)
|
|
39
|
+
faraday-net_http_persistent (1.2.0)
|
|
40
|
+
faraday-patron (1.0.0)
|
|
41
|
+
faraday-rack (1.0.0)
|
|
23
42
|
kramdown (1.16.2)
|
|
24
|
-
looker-sdk (0.
|
|
25
|
-
faraday (>=
|
|
43
|
+
looker-sdk (0.1.1)
|
|
44
|
+
faraday (>= 1.2, < 2.0)
|
|
26
45
|
sawyer (~> 0.8)
|
|
27
46
|
multipart-post (2.1.1)
|
|
28
47
|
necromancer (0.4.0)
|
|
48
|
+
net-http-persistent (4.0.1)
|
|
49
|
+
connection_pool (~> 2.2)
|
|
29
50
|
netrc (0.11.0)
|
|
30
51
|
pastel (0.7.2)
|
|
31
52
|
equatable (~> 0.5.0)
|
|
@@ -33,19 +54,20 @@ GEM
|
|
|
33
54
|
public_suffix (4.0.6)
|
|
34
55
|
rake (12.3.3)
|
|
35
56
|
rouge (3.1.1)
|
|
36
|
-
rspec (3.
|
|
37
|
-
rspec-core (~> 3.
|
|
38
|
-
rspec-expectations (~> 3.
|
|
39
|
-
rspec-mocks (~> 3.
|
|
40
|
-
rspec-core (3.
|
|
41
|
-
rspec-support (~> 3.
|
|
42
|
-
rspec-expectations (3.
|
|
57
|
+
rspec (3.10.0)
|
|
58
|
+
rspec-core (~> 3.10.0)
|
|
59
|
+
rspec-expectations (~> 3.10.0)
|
|
60
|
+
rspec-mocks (~> 3.10.0)
|
|
61
|
+
rspec-core (3.10.1)
|
|
62
|
+
rspec-support (~> 3.10.0)
|
|
63
|
+
rspec-expectations (3.10.1)
|
|
43
64
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
44
|
-
rspec-support (~> 3.
|
|
45
|
-
rspec-mocks (3.
|
|
65
|
+
rspec-support (~> 3.10.0)
|
|
66
|
+
rspec-mocks (3.10.2)
|
|
46
67
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
47
|
-
rspec-support (~> 3.
|
|
48
|
-
rspec-support (3.
|
|
68
|
+
rspec-support (~> 3.10.0)
|
|
69
|
+
rspec-support (3.10.2)
|
|
70
|
+
ruby2_keywords (0.0.5)
|
|
49
71
|
rubyzip (1.3.0)
|
|
50
72
|
sawyer (0.8.2)
|
|
51
73
|
addressable (>= 2.3.5)
|
|
@@ -56,7 +78,7 @@ GEM
|
|
|
56
78
|
unicode_utils (~> 1.4)
|
|
57
79
|
strings-ansi (0.2.0)
|
|
58
80
|
thor (0.20.3)
|
|
59
|
-
timers (4.3.
|
|
81
|
+
timers (4.3.3)
|
|
60
82
|
tty (0.8.1)
|
|
61
83
|
bundler (~> 1.16, < 2.0)
|
|
62
84
|
equatable (~> 0.5.0)
|
|
@@ -129,7 +151,7 @@ GEM
|
|
|
129
151
|
tty-screen (~> 0.6.4)
|
|
130
152
|
tty-tree (0.1.0)
|
|
131
153
|
tty-which (0.3.0)
|
|
132
|
-
unicode-display_width (1.
|
|
154
|
+
unicode-display_width (1.8.0)
|
|
133
155
|
unicode_utils (1.4.0)
|
|
134
156
|
wisper (2.0.1)
|
|
135
157
|
|
data/gzr.gemspec
CHANGED
|
@@ -59,7 +59,8 @@ Gem::Specification.new do |spec|
|
|
|
59
59
|
spec.add_dependency "thor", "~> 0.20.0"
|
|
60
60
|
spec.add_dependency 'netrc', "~> 0.11.0"
|
|
61
61
|
spec.add_dependency 'rubyzip', "~> 1.3.0"
|
|
62
|
-
spec.add_dependency 'looker-sdk', "~> 0.
|
|
62
|
+
spec.add_dependency 'looker-sdk', "~> 0.1.1"
|
|
63
|
+
spec.add_dependency 'net-http-persistent', '~> 4.0.1'
|
|
63
64
|
|
|
64
65
|
spec.add_development_dependency "bundler", "~> 1.17"
|
|
65
66
|
spec.add_development_dependency "rake", "~> 12.3.3"
|
data/lib/gzr/cli.rb
CHANGED
|
@@ -41,6 +41,8 @@ module Gzr
|
|
|
41
41
|
class_option :http_proxy, type: :string, desc: 'HTTP Proxy for connecting to Looker host'
|
|
42
42
|
class_option :force, type: :boolean, default: false, desc: 'Overwrite objects on server'
|
|
43
43
|
class_option :su, type: :string, desc: 'After connecting, change to user_id given'
|
|
44
|
+
class_option :width, type: :numeric, default: nil, desc: 'Width of rendering for tables'
|
|
45
|
+
class_option :persistent, type: :boolean, default: false, desc: 'Use persistent connection to communicate with host'
|
|
44
46
|
|
|
45
47
|
|
|
46
48
|
# Error raised by this runner
|
|
@@ -62,7 +62,7 @@ module Gzr
|
|
|
62
62
|
if @options[:csv] then
|
|
63
63
|
output.puts render_csv(table)
|
|
64
64
|
else
|
|
65
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
65
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
66
66
|
end
|
|
67
67
|
end if table
|
|
68
68
|
end
|
|
@@ -61,7 +61,7 @@ module Gzr
|
|
|
61
61
|
if @options[:csv] then
|
|
62
62
|
output.puts render_csv(table)
|
|
63
63
|
else
|
|
64
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
64
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
65
65
|
end
|
|
66
66
|
end if table
|
|
67
67
|
end
|
|
@@ -61,7 +61,7 @@ module Gzr
|
|
|
61
61
|
if @options[:csv] then
|
|
62
62
|
output.puts render_csv(table)
|
|
63
63
|
else
|
|
64
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024)
|
|
64
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024, width: @options[:width] || TTY::Screen.width)
|
|
65
65
|
end
|
|
66
66
|
end if table
|
|
67
67
|
end
|
|
@@ -62,7 +62,7 @@ module Gzr
|
|
|
62
62
|
if @options[:csv] then
|
|
63
63
|
output.puts render_csv(table)
|
|
64
64
|
else
|
|
65
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
65
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
66
66
|
end
|
|
67
67
|
end if table
|
|
68
68
|
end
|
|
@@ -63,7 +63,7 @@ module Gzr
|
|
|
63
63
|
if @options[:csv] then
|
|
64
64
|
output.puts render_csv(table)
|
|
65
65
|
else
|
|
66
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
66
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
67
67
|
end
|
|
68
68
|
end if table
|
|
69
69
|
end
|
|
@@ -63,7 +63,7 @@ module Gzr
|
|
|
63
63
|
if @options[:csv] then
|
|
64
64
|
output.puts render_csv(table)
|
|
65
65
|
else
|
|
66
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
66
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
67
67
|
end
|
|
68
68
|
end if table
|
|
69
69
|
end
|
|
@@ -61,7 +61,7 @@ module Gzr
|
|
|
61
61
|
if @options[:csv] then
|
|
62
62
|
output.puts render_csv(table)
|
|
63
63
|
else
|
|
64
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
64
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
65
65
|
end
|
|
66
66
|
end if table
|
|
67
67
|
end
|
|
@@ -63,7 +63,7 @@ module Gzr
|
|
|
63
63
|
if @options[:csv] then
|
|
64
64
|
output.puts render_csv(table)
|
|
65
65
|
else
|
|
66
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024)
|
|
66
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024, width: @options[:width] || TTY::Screen.width)
|
|
67
67
|
end
|
|
68
68
|
end if table
|
|
69
69
|
end
|
|
@@ -87,7 +87,7 @@ module Gzr
|
|
|
87
87
|
if @options[:csv] then
|
|
88
88
|
output.puts render_csv(table)
|
|
89
89
|
else
|
|
90
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
90
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width, width: @options[:width] || TTY::Screen.width)
|
|
91
91
|
end
|
|
92
92
|
end if table
|
|
93
93
|
end
|
data/lib/gzr/commands/plan/ls.rb
CHANGED
|
@@ -91,7 +91,7 @@ module Gzr
|
|
|
91
91
|
if @options[:csv] then
|
|
92
92
|
output.puts render_csv(table)
|
|
93
93
|
else
|
|
94
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
94
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
95
95
|
end
|
|
96
96
|
end if table
|
|
97
97
|
end
|
|
@@ -65,7 +65,7 @@ module Gzr
|
|
|
65
65
|
if @options[:csv] then
|
|
66
66
|
output.puts render_csv(table)
|
|
67
67
|
else
|
|
68
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
|
|
68
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
69
69
|
end
|
|
70
70
|
end if table
|
|
71
71
|
end
|
data/lib/gzr/commands/role/ls.rb
CHANGED
|
@@ -64,7 +64,7 @@ module Gzr
|
|
|
64
64
|
if @options[:csv] then
|
|
65
65
|
output.puts render_csv(table)
|
|
66
66
|
else
|
|
67
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
|
|
67
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
68
68
|
end
|
|
69
69
|
end if table
|
|
70
70
|
end
|
|
@@ -65,7 +65,7 @@ module Gzr
|
|
|
65
65
|
if @options[:csv] then
|
|
66
66
|
output.puts render_csv(table)
|
|
67
67
|
else
|
|
68
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
|
|
68
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
69
69
|
end
|
|
70
70
|
end if table
|
|
71
71
|
end
|
|
@@ -101,7 +101,7 @@ module Gzr
|
|
|
101
101
|
if @options[:csv] then
|
|
102
102
|
output.puts render_csv(table)
|
|
103
103
|
else
|
|
104
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
104
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
105
105
|
end
|
|
106
106
|
end if table
|
|
107
107
|
end
|
|
@@ -65,7 +65,7 @@ module Gzr
|
|
|
65
65
|
if @options[:csv] then
|
|
66
66
|
output.puts render_csv(table)
|
|
67
67
|
else
|
|
68
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: [:right])
|
|
68
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: [:right], width: @options[:width] || TTY::Screen.width)
|
|
69
69
|
end
|
|
70
70
|
end if table
|
|
71
71
|
end
|
data/lib/gzr/commands/user/ls.rb
CHANGED
|
@@ -71,7 +71,7 @@ module Gzr
|
|
|
71
71
|
if @options[:csv] then
|
|
72
72
|
output.puts render_csv(table)
|
|
73
73
|
else
|
|
74
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
74
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
75
75
|
end
|
|
76
76
|
end if table
|
|
77
77
|
end
|
data/lib/gzr/commands/user/me.rb
CHANGED
|
@@ -55,7 +55,7 @@ module Gzr
|
|
|
55
55
|
if @options[:csv] then
|
|
56
56
|
output.puts render_csv(table)
|
|
57
57
|
else
|
|
58
|
-
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
|
|
58
|
+
output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
|
|
59
59
|
end
|
|
60
60
|
end if table
|
|
61
61
|
end
|
data/lib/gzr/modules/session.rb
CHANGED
|
@@ -46,13 +46,19 @@ module Gzr
|
|
|
46
46
|
output.puts pastel.red data
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
@versions = []
|
|
50
|
+
@current_version = nil
|
|
51
|
+
|
|
52
|
+
def sufficient_version?(given_version, minimum_version)
|
|
53
|
+
return true unless (given_version && minimum_version)
|
|
54
|
+
versions = @versions.map {|v| v.version}.sort
|
|
55
|
+
!versions.drop_while {|v| v < minimum_version}.reverse.drop_while {|v| v > given_version}.empty?
|
|
51
56
|
end
|
|
52
57
|
|
|
53
|
-
|
|
58
|
+
|
|
59
|
+
def build_connection_hash(api_version=nil)
|
|
54
60
|
conn_hash = Hash.new
|
|
55
|
-
conn_hash[:api_endpoint] = "http#{@options[:ssl] ? "s" : ""}://#{@options[:host]}:#{@options[:port]}/api/#{api_version}"
|
|
61
|
+
conn_hash[:api_endpoint] = "http#{@options[:ssl] ? "s" : ""}://#{@options[:host]}:#{@options[:port]}/api/#{api_version||@current_version||""}"
|
|
56
62
|
if @options[:http_proxy]
|
|
57
63
|
conn_hash[:connection_options] ||= {}
|
|
58
64
|
conn_hash[:connection_options][:proxy] = {
|
|
@@ -95,10 +101,16 @@ module Gzr
|
|
|
95
101
|
conn_hash
|
|
96
102
|
end
|
|
97
103
|
|
|
98
|
-
def
|
|
104
|
+
def faraday_connection
|
|
105
|
+
@faraday_connection ||= Faraday.new { |conn|
|
|
106
|
+
if @options[:persistent]
|
|
107
|
+
conn.adapter :net_http_persistent
|
|
108
|
+
end
|
|
109
|
+
}
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def login(min_api_version=nil)
|
|
99
113
|
@secret = nil
|
|
100
|
-
versions = nil
|
|
101
|
-
current_version = nil
|
|
102
114
|
begin
|
|
103
115
|
conn_hash = build_connection_hash
|
|
104
116
|
|
|
@@ -119,8 +131,8 @@ module Gzr
|
|
|
119
131
|
|
|
120
132
|
begin
|
|
121
133
|
versions_response = agent.call(:get,"/versions")
|
|
122
|
-
versions = versions_response.data.supported_versions
|
|
123
|
-
current_version = versions_response.data.current_version
|
|
134
|
+
@versions = versions_response.data.supported_versions
|
|
135
|
+
@current_version = versions_response.data.current_version.version
|
|
124
136
|
rescue Faraday::SSLError => e
|
|
125
137
|
raise Gzr::CLI::Error, "SSL Certificate could not be verified\nDo you need the --no-verify-ssl option or the --no-ssl option?"
|
|
126
138
|
rescue Faraday::ConnectionFailed => cf
|
|
@@ -128,23 +140,25 @@ module Gzr
|
|
|
128
140
|
rescue LookerSDK::NotFound => nf
|
|
129
141
|
say_warning "endpoint #{root}/versions was not found"
|
|
130
142
|
end
|
|
131
|
-
versions.each do |v|
|
|
132
|
-
@v3_1_available = true if v.version == "3.1"
|
|
133
|
-
end
|
|
134
143
|
end
|
|
135
144
|
|
|
136
|
-
say_warning "API
|
|
145
|
+
say_warning "API current_version #{@current_version}" if @options[:debug]
|
|
146
|
+
say_warning "API versions #{@versions.map{|v| v.version}}" if @options[:debug]
|
|
137
147
|
|
|
138
|
-
raise Gzr::CLI::Error, "Operation requires API
|
|
139
|
-
raise Gzr::CLI::Error, "Operation requires API v3.1, which is not available from this host" if (api_version == "3.1") && !v3_1_available?
|
|
148
|
+
raise Gzr::CLI::Error, "Operation requires API v#{min_api_version}, but user specified version #{@options[:api_version]}" unless sufficient_version?(@options[:api_version],min_api_version)
|
|
140
149
|
|
|
141
|
-
|
|
150
|
+
api_version = [min_api_version, @current_version].max
|
|
151
|
+
raise Gzr::CLI::Error, "Operation requires API v#{api_version}, which is not available from this host" if api_version && !@versions.any? {|v| v.version == api_version}
|
|
152
|
+
raise Gzr::CLI::Error, "User specified API v#{@options[:api_version]}, which is not available from this host" if @options[:api_version] && !@versions.any? {|v| v.version == @options[:api_version]}
|
|
153
|
+
|
|
154
|
+
conn_hash = build_connection_hash(@options[:api_version] || api_version)
|
|
142
155
|
@secret = nil
|
|
143
156
|
|
|
144
157
|
say_ok("connecting to #{conn_hash.map { |k,v| "#{k}=>#{(k == :client_secret) ? '*********' : v}" }}") if @options[:debug]
|
|
145
158
|
|
|
146
159
|
begin
|
|
147
|
-
@sdk = LookerSDK::Client.new(conn_hash) unless @sdk
|
|
160
|
+
@sdk = LookerSDK::Client.new(conn_hash.merge!(faraday: faraday_connection)) unless @sdk
|
|
161
|
+
|
|
148
162
|
say_ok "check for connectivity: #{@sdk.alive?}" if @options[:debug]
|
|
149
163
|
say_ok "verify authentication: #{@sdk.authenticated?}" if @options[:debug]
|
|
150
164
|
rescue LookerSDK::Unauthorized => e
|
|
@@ -200,10 +214,10 @@ module Gzr
|
|
|
200
214
|
end
|
|
201
215
|
end
|
|
202
216
|
|
|
203
|
-
def with_session(
|
|
217
|
+
def with_session(min_api_version="3.0")
|
|
204
218
|
return nil unless block_given?
|
|
205
219
|
begin
|
|
206
|
-
login(
|
|
220
|
+
login(min_api_version) unless @sdk
|
|
207
221
|
yield
|
|
208
222
|
rescue LookerSDK::Error => e
|
|
209
223
|
say_error e.errors if e.respond_to?(:errors) && e.errors
|
data/lib/gzr/version.rb
CHANGED
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.2.
|
|
4
|
+
version: 0.2.46
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mike DeAngelo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-10-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: tty-reader
|
|
@@ -114,14 +114,28 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 0.
|
|
117
|
+
version: 0.1.1
|
|
118
118
|
type: :runtime
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 0.
|
|
124
|
+
version: 0.1.1
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: net-http-persistent
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: 4.0.1
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: 4.0.1
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: bundler
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|