gooddata 0.6.7 → 0.6.8
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/CHANGELOG.md +19 -1
- data/README.md +10 -2
- data/TODO.md +32 -0
- data/gooddata.gemspec +5 -0
- data/lib/gooddata.rb +4 -0
- data/lib/gooddata/app/app.rb +12 -0
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +4 -3
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +2 -1
- data/lib/gooddata/cli/commands/console_cmd.rb +23 -5
- data/lib/gooddata/cli/commands/domain_cmd.rb +9 -10
- data/lib/gooddata/cli/commands/process_cmd.rb +11 -9
- data/lib/gooddata/cli/commands/project_cmd.rb +25 -27
- data/lib/gooddata/cli/commands/projects_cmd.rb +2 -2
- data/lib/gooddata/cli/commands/run_ruby_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/user_cmd.rb +2 -2
- data/lib/gooddata/cli/hooks.rb +4 -2
- data/lib/gooddata/cli/shared.rb +1 -1
- data/lib/gooddata/cli/terminal.rb +1 -1
- data/lib/gooddata/commands/api.rb +1 -1
- data/lib/gooddata/commands/auth.rb +4 -28
- data/lib/gooddata/commands/domain.rb +9 -4
- data/lib/gooddata/commands/process.rb +26 -23
- data/lib/gooddata/commands/project.rb +74 -50
- data/lib/gooddata/commands/projects.rb +3 -2
- data/lib/gooddata/commands/role.rb +9 -3
- data/lib/gooddata/commands/user.rb +6 -4
- data/lib/gooddata/connection.rb +11 -45
- data/lib/gooddata/core/logging.rb +0 -1
- data/lib/gooddata/core/project.rb +22 -22
- data/lib/gooddata/core/rest.rb +9 -8
- data/lib/gooddata/core/user.rb +0 -11
- data/lib/gooddata/exceptions/project_not_found.rb +1 -0
- data/lib/gooddata/extensions/enumerable.rb +10 -0
- data/lib/gooddata/extensions/hash.rb +25 -0
- data/lib/gooddata/goodzilla/goodzilla.rb +4 -4
- data/lib/gooddata/helper/class_helper.rb +1 -0
- data/lib/gooddata/helper/helpers.rb +8 -0
- data/lib/gooddata/helpers/auth_helpers.rb +41 -0
- data/lib/gooddata/mixins/author.rb +1 -1
- data/lib/gooddata/mixins/contributor.rb +1 -1
- data/lib/gooddata/mixins/data_property_reader.rb +2 -0
- data/lib/gooddata/mixins/data_property_writer.rb +2 -0
- data/lib/gooddata/mixins/inspector.rb +49 -0
- data/lib/gooddata/mixins/md_finders.rb +16 -8
- data/lib/gooddata/mixins/md_id_to_uri.rb +12 -4
- data/lib/gooddata/mixins/md_object_indexer.rb +15 -4
- data/lib/gooddata/mixins/md_object_query.rb +42 -20
- data/lib/gooddata/mixins/md_relations.rb +21 -12
- data/lib/gooddata/mixins/meta_getter.rb +2 -0
- data/lib/gooddata/mixins/meta_property_reader.rb +2 -0
- data/lib/gooddata/mixins/meta_property_writer.rb +2 -0
- data/lib/gooddata/mixins/rest_resource.rb +32 -10
- data/lib/gooddata/mixins/root_key_getter.rb +1 -1
- data/lib/gooddata/models/data_result.rb +3 -1
- data/lib/gooddata/models/domain.rb +31 -22
- data/lib/gooddata/models/empty_result.rb +22 -0
- data/lib/gooddata/models/invitation.rb +11 -9
- data/lib/gooddata/models/links.rb +5 -3
- data/lib/gooddata/models/membership.rb +23 -28
- data/lib/gooddata/models/metadata.rb +35 -35
- data/lib/gooddata/models/metadata/attribute.rb +10 -8
- data/lib/gooddata/models/metadata/dashboard.rb +1 -1
- data/lib/gooddata/models/metadata/fact.rb +3 -3
- data/lib/gooddata/models/metadata/label.rb +4 -4
- data/lib/gooddata/models/metadata/metric.rb +76 -38
- data/lib/gooddata/models/metadata/report.rb +52 -17
- data/lib/gooddata/models/metadata/report_definition.rb +178 -28
- data/lib/gooddata/models/model.rb +13 -6
- data/lib/gooddata/models/process.rb +93 -30
- data/lib/gooddata/models/profile.rb +18 -20
- data/lib/gooddata/models/project.rb +344 -127
- data/lib/gooddata/models/project_creator.rb +32 -22
- data/lib/gooddata/models/project_metadata.rb +26 -14
- data/lib/gooddata/models/project_role.rb +15 -17
- data/lib/gooddata/models/report_data_result.rb +4 -0
- data/lib/gooddata/models/schedule.rb +51 -20
- data/lib/gooddata/models/schema_blueprint.rb +9 -3
- data/lib/gooddata/rest/README.md +37 -0
- data/lib/gooddata/rest/client.rb +318 -0
- data/lib/gooddata/rest/connection.rb +235 -0
- data/lib/gooddata/rest/connections/connections.rb +8 -0
- data/lib/gooddata/rest/connections/dummy_connection.rb +52 -0
- data/lib/gooddata/rest/connections/rest_client_connection.rb +177 -0
- data/lib/gooddata/rest/object.rb +32 -0
- data/lib/gooddata/rest/object_factory.rb +67 -0
- data/lib/gooddata/rest/resource.rb +17 -0
- data/lib/gooddata/rest/rest.rb +20 -0
- data/lib/gooddata/version.rb +1 -1
- data/spec/data/cc/data/source/commits.csv +4 -0
- data/spec/data/cc/data/source/devs.csv +4 -0
- data/spec/data/cc/data/source/repos.csv +3 -0
- data/spec/data/cc/devel.prm +0 -0
- data/spec/data/cc/graph/graph.grf +11 -0
- data/spec/data/cc/workspace.prm +19 -0
- data/spec/data/hello_world_process/hello_world.rb +1 -0
- data/spec/data/hello_world_process/hello_world.zip +0 -0
- data/spec/data/users.csv +12 -12
- data/spec/helpers/connection_helper.rb +6 -0
- data/spec/helpers/process_helper.rb +12 -0
- data/spec/helpers/project_helper.rb +2 -2
- data/spec/integration/command_projects_spec.rb +11 -9
- data/spec/integration/create_from_template_spec.rb +6 -2
- data/spec/integration/full_process_schedule_spec.rb +49 -36
- data/spec/integration/full_project_spec.rb +221 -256
- data/spec/integration/partial_md_export_import_spec.rb +18 -17
- data/spec/logging_in_logging_out_spec.rb +17 -8
- data/spec/spec_helper.rb +4 -2
- data/spec/unit/cli/commands/cmd_api_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_auth_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_domain_spec.rb +29 -3
- data/spec/unit/cli/commands/cmd_process_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_project_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_role_spec.rb +13 -2
- data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_scaffold_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_user_spec.rb +1 -1
- data/spec/unit/commands/command_api_spec.rb +0 -19
- data/spec/unit/commands/command_auth_spec.rb +20 -13
- data/spec/unit/commands/command_dataset_spec.rb +2 -2
- data/spec/unit/commands/command_process_spec.rb +24 -21
- data/spec/unit/commands/command_projects_spec.rb +2 -2
- data/spec/unit/commands/command_scaffold_spec.rb +2 -2
- data/spec/unit/commands/command_user_spec.rb +3 -3
- data/spec/unit/core/connection_spec.rb +9 -10
- data/spec/unit/core/project_spec.rb +8 -4
- data/spec/unit/core/rest_spec.rb +6 -6
- data/spec/unit/models/domain_spec.rb +14 -7
- data/spec/unit/models/invitation_spec.rb +2 -2
- data/spec/unit/models/membership_spec.rb +5 -5
- data/spec/unit/models/metric_spec.rb +92 -0
- data/spec/unit/models/profile_spec.rb +25 -21
- data/spec/unit/models/project_blueprint_spec.rb +6 -6
- data/spec/unit/models/project_role_spec.rb +3 -5
- data/spec/unit/models/project_spec.rb +43 -37
- data/spec/unit/models/schedule_spec.rb +58 -107
- data/spec/unit/rest/resource_spec.rb +6 -0
- metadata +87 -10
- data/lib/gooddata/cli/commands/role_cmd.rb +0 -28
- data/lib/gooddata/core/connection.rb +0 -392
- data/lib/gooddata/core/threaded.rb +0 -14
- data/lib/gooddata/models/md_object.rb +0 -25
- data/lib/gooddata/models/metadata/folder.rb +0 -24
- data/spec/unit/models/md_object_spec.rb +0 -55
- data/spec/unit/models/metric.rb +0 -92
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 29f28bd583f3a4da577456a03cc225ac23bf2c06
|
|
4
|
+
data.tar.gz: bfd619c784559c60daca2b02c63e1d019e04635c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ce8b6231b9104d8b2b05ef0e8ba141be3da6af516d26e804fa97bb779a28e80a1a6f646502dcd526171ea0ea5608812c341ffa696b4e3d39feedfba538576808
|
|
7
|
+
data.tar.gz: 612ac6eb1daf13fc91e66b07a666a0d3359e7d183ba11bebe8f13c29352ec3ac8e0517d4f7530cfba9a65603d838a914a94f13cb71faaa5b09a6c7f29dc57509
|
data/CHANGELOG.md
CHANGED
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
# GoodData Ruby SDK Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.8
|
|
4
|
+
|
|
5
|
+
- REST Factory - See [PR #224](https://github.com/gooddata/gooddata-ruby/pull/224)
|
|
6
|
+
- Replace on report definitions allows to swap attributes, metrics and other things in report definitions
|
|
7
|
+
- Fixed bug in clone so you can clone projects without data
|
|
8
|
+
- Many map call on REST happen in parallel
|
|
9
|
+
- Query requests (all attributes, all metrics etc) are happening in parallel and full: true is now the default
|
|
10
|
+
- Computing an a report which returns no results does not fail but returns nil
|
|
11
|
+
- Refactored handling of all various asynchronous resources into 2 methods
|
|
12
|
+
- added ability to log in with only SST token
|
|
13
|
+
- added with_connection
|
|
14
|
+
- ability to deploy just one file, zipped files or directory
|
|
15
|
+
|
|
3
16
|
## 0.6.7
|
|
17
|
+
|
|
4
18
|
- Fixed the scaffolding templates to take advantage of new syntax (missing references in dataset refs)
|
|
5
19
|
- Fixing inclusion of extensions when using CLI
|
|
6
20
|
- Fixed pollers and added/fixed tests for schedules and processes
|
|
7
21
|
- Added with_connection which automatically disconnects when you are done
|
|
8
22
|
|
|
9
23
|
## 0.6.6
|
|
10
|
-
|
|
24
|
+
|
|
25
|
+
- Various fixes
|
|
11
26
|
|
|
12
27
|
## 0.6.5
|
|
28
|
+
|
|
13
29
|
- Mixins
|
|
14
30
|
|
|
15
31
|
## 0.6.4
|
|
32
|
+
|
|
16
33
|
- Ability to get blueprint directly through API. This way you can work with projects that was not created using SDK
|
|
17
34
|
- Added basis for GD_LINT that checks your project for typical problems
|
|
18
35
|
|
|
19
36
|
## 0.6.3
|
|
37
|
+
|
|
20
38
|
- Able to do save_as on metadata objects (Report, Metric, Dashboard)
|
|
21
39
|
- Model is now not created through build and update if it is not passing validations
|
|
22
40
|
- Added a setter for identifier on Metadata Object
|
data/README.md
CHANGED
|
@@ -14,6 +14,7 @@ The best documentation for the GoodData API can be found using these resources:
|
|
|
14
14
|
## Status
|
|
15
15
|
|
|
16
16
|
[](http://badge.fury.io/rb/gooddata)
|
|
17
|
+
[](http://rubygems.org/gems/gooddata)
|
|
17
18
|
[](https://gemnasium.com/gooddata/gooddata-ruby)
|
|
18
19
|
[](https://codeclimate.com/github/gooddata/gooddata-ruby)
|
|
19
20
|
[](https://travis-ci.org/gooddata/gooddata-ruby)
|
|
@@ -49,9 +50,16 @@ If you are using gems just
|
|
|
49
50
|
|
|
50
51
|
## Credits
|
|
51
52
|
|
|
52
|
-
This project
|
|
53
|
+
This project was originaly started by Pavel Kolesnikov [ <mailto:pavel@gooddata.com> / [@koles](http://twitter.com/koles) ]
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
Project is now actively developed and maintained by following folks
|
|
56
|
+
|
|
57
|
+
- [Tomas Korcak](https://github.com/korczis) [<mailto:korczis@gmail.com> / [@korczis](http://twitter.com/korczis)]
|
|
58
|
+
- [Tomas Svarovsky](https://github.com/fluke777) [<mailto:svarovsky.tomas@gmail.com> / [@fluke777](http://twitter.com/fluke777)]
|
|
59
|
+
- [Patrick McConlogue](https://github.com/thnkr/)
|
|
60
|
+
- [Petr Cvengros](https://github.com/cvengros)
|
|
61
|
+
|
|
62
|
+
Special thanks to Thomas Watson Steen [ <mailto:w@tson.dk> / [@wa7son](http://twitter.com/wa7son) ].
|
|
55
63
|
|
|
56
64
|
## Copyright
|
|
57
65
|
|
data/TODO.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# TODO
|
|
2
|
+
|
|
3
|
+
## Lib
|
|
4
|
+
|
|
5
|
+
- Check all GoodData::Something[:all], they used to return Array of Hashes in many cases now they are all returning Objects
|
|
6
|
+
- Use less strict versioning See [#96](https://github.com/gooddata/gooddata-ruby/pull/196)
|
|
7
|
+
- Library wide-logging to tmp/logs/{{TIMESTAMP}}.log
|
|
8
|
+
- Globar library crash handler storing stacktraces to tmp/crashes/{{TIMESTAMP}}.log
|
|
9
|
+
- High Level Error Handling
|
|
10
|
+
- Pretty Print Rest Client & Connection
|
|
11
|
+
- Unify
|
|
12
|
+
- [NoProjectError](https://github.com/gooddata/gooddata-ruby/blob/master/lib/gooddata/exceptions/no_project_error.rb)
|
|
13
|
+
- [ProjectNotFound](https://github.com/gooddata/gooddata-ruby/blob/master/lib/gooddata/exceptions/project_not_found.rb)
|
|
14
|
+
- Use more of pmap
|
|
15
|
+
- Create class (GoodData::Storage) for abstracting remote FS (=> WebDav)
|
|
16
|
+
- Print stats at client disconnect and not at_exit as now!
|
|
17
|
+
- Make stats optional via cmd-line switch
|
|
18
|
+
|
|
19
|
+
## Tests
|
|
20
|
+
|
|
21
|
+
- Pending tests
|
|
22
|
+
- Rubocop spec/**/*.rb
|
|
23
|
+
- Properly split unit and integration tests
|
|
24
|
+
|
|
25
|
+
## All Timers
|
|
26
|
+
|
|
27
|
+
- [Issues](https://github.com/gooddata/gooddata-ruby/issues)
|
|
28
|
+
- Rake notes - [rake notes](https://gist.github.com/korczis/a127456afdda3df4e3a6)
|
|
29
|
+
|
|
30
|
+
# Done
|
|
31
|
+
|
|
32
|
+
- walked through Project and added majority of the helpers for getting project related objects (fact, attr, metric, etc)
|
data/gooddata.gemspec
CHANGED
|
@@ -27,10 +27,13 @@ Gem::Specification.new do |s|
|
|
|
27
27
|
s.homepage = %q{http://github.com/gooddata/gooddata-ruby}
|
|
28
28
|
s.require_paths = ["lib"]
|
|
29
29
|
|
|
30
|
+
s.add_development_dependency "debase" if RUBY_VERSION >= '2.1'
|
|
30
31
|
s.add_development_dependency "rake", "~> 10.3.1"
|
|
31
32
|
s.add_development_dependency "rake-notes", "~> 0.2.0"
|
|
32
33
|
s.add_development_dependency "redcarpet", "~> 3.1.1" if RUBY_PLATFORM != 'java'
|
|
33
34
|
s.add_development_dependency "rspec", "~> 2.14.1"
|
|
35
|
+
# s.add_development_dependency "ruby-debug-base"
|
|
36
|
+
s.add_development_dependency "ruby-debug-ide" if RUBY_VERSION >= '2.1'
|
|
34
37
|
s.add_development_dependency "rubocop", "~> 0.20.1"
|
|
35
38
|
s.add_development_dependency "simplecov", "~> 0.8.2"
|
|
36
39
|
s.add_development_dependency "yard", "~> 0.8.7.3"
|
|
@@ -48,10 +51,12 @@ Gem::Specification.new do |s|
|
|
|
48
51
|
s.add_dependency "json_pure", "~> 1.8.1"
|
|
49
52
|
s.add_dependency "multi_json", "~> 1.10.0"
|
|
50
53
|
s.add_dependency "parseconfig", "~> 1.0.4"
|
|
54
|
+
s.add_dependency 'pmap', '~> 1.0.1'
|
|
51
55
|
s.add_dependency "pry", "~> 0.9.12.6"
|
|
52
56
|
s.add_dependency "restforce", "~> 1.4.3"
|
|
53
57
|
s.add_dependency "rest-client", "~> 1.6.7"
|
|
54
58
|
s.add_dependency "rubyzip", "~> 1.1.0"
|
|
59
|
+
s.add_dependency "terminal-table", "~> 1.4.5"
|
|
55
60
|
s.add_dependency "salesforce_bulk_query", "~> 0.0"
|
|
56
61
|
s.add_dependency "aws-sdk", "~> 1.45"
|
|
57
62
|
end
|
data/lib/gooddata.rb
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
|
|
3
|
+
require 'pmap'
|
|
4
|
+
$pmap_default_thread_count = 20 # rubocop:disable GlobalVars
|
|
5
|
+
|
|
3
6
|
# GoodData Module
|
|
4
7
|
module GoodData
|
|
5
8
|
end
|
|
@@ -14,6 +17,7 @@ require_relative 'gooddata/helpers/helpers'
|
|
|
14
17
|
require_relative 'gooddata/models/models'
|
|
15
18
|
|
|
16
19
|
# Files
|
|
20
|
+
require_relative 'gooddata/app/app'
|
|
17
21
|
require_relative 'gooddata/client'
|
|
18
22
|
require_relative 'gooddata/connection'
|
|
19
23
|
require_relative 'gooddata/extract'
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# TODO: REmove this
|
|
4
|
+
# require 'gooddata'
|
|
4
5
|
|
|
5
6
|
require_relative 'base_middleware'
|
|
6
7
|
|
|
@@ -22,9 +23,9 @@ module GoodData
|
|
|
22
23
|
fail 'GoodData username is missing. Expected param :GDC_USERNAME' if params['GDC_USERNAME'].nil?
|
|
23
24
|
fail 'GoodData password is missing. Expected param :GDC_PASSWORD' if params['GDC_PASSWORD'].nil?
|
|
24
25
|
|
|
25
|
-
GoodData.connect(params['GDC_USERNAME'], params['GDC_PASSWORD'], :server => server)
|
|
26
|
+
client = GoodData.connect(params['GDC_USERNAME'], params['GDC_PASSWORD'], :server => server)
|
|
26
27
|
GoodData.logger = logger
|
|
27
|
-
GoodData.with_project(project_id) do |p|
|
|
28
|
+
GoodData.with_project(project_id, :client => client) do |p|
|
|
28
29
|
@app.call(params)
|
|
29
30
|
end
|
|
30
31
|
end
|
|
@@ -9,11 +9,29 @@ GoodData::CLI.module_eval do
|
|
|
9
9
|
command :console do |c|
|
|
10
10
|
|
|
11
11
|
c.action do |global_options, options, args|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
username = global_options[:username]
|
|
13
|
+
fail ArgumentError, 'No username specified' if username.nil? || username.empty?
|
|
14
|
+
|
|
15
|
+
password = global_options[:password]
|
|
16
|
+
fail ArgumentError, 'No password specified' if password.nil? || password.empty?
|
|
17
|
+
|
|
18
|
+
pid = global_options[:project_id]
|
|
19
|
+
fail ArgumentError, 'No project specified' if pid.nil?
|
|
20
|
+
|
|
21
|
+
client = GoodData.connect username, password
|
|
22
|
+
|
|
23
|
+
proj = GoodData::Project[pid, :client => client]
|
|
24
|
+
|
|
25
|
+
GoodData.with_project(proj, :client => client) do |project|
|
|
26
|
+
fail ArgumentError, 'Wrong project specified' if project.nil?
|
|
27
|
+
|
|
28
|
+
puts "Use 'exit' to quit the live session. Use 'q' to jump out of displaying a large output."
|
|
29
|
+
binding.pry(:quiet => true,
|
|
30
|
+
:prompt => [proc do |target_self, nest_level, pry|
|
|
31
|
+
'sdk_live_sesion: '
|
|
32
|
+
end])
|
|
33
|
+
end
|
|
34
|
+
client.disconnect
|
|
17
35
|
end
|
|
18
36
|
end
|
|
19
37
|
end
|
|
@@ -12,18 +12,18 @@ GoodData::CLI.module_eval do
|
|
|
12
12
|
c.command :add_user do |add_user|
|
|
13
13
|
add_user.action do |global_options, options, args|
|
|
14
14
|
opts = options.merge(global_options)
|
|
15
|
-
GoodData.connect(opts)
|
|
15
|
+
client = GoodData.connect(opts)
|
|
16
16
|
|
|
17
17
|
domain = args[0]
|
|
18
|
-
fail 'Domain name has to be provided' if domain.nil? || domain.empty?
|
|
18
|
+
fail ArgumentError, 'Domain name has to be provided' if domain.nil? || domain.empty?
|
|
19
19
|
|
|
20
20
|
email = args[1]
|
|
21
|
-
fail 'Email has to be provided' if email.nil? || email.empty?
|
|
21
|
+
fail ArgumentError, 'Email has to be provided' if email.nil? || email.empty?
|
|
22
22
|
|
|
23
23
|
password = args[2]
|
|
24
|
-
fail 'Password has to be provided' if password.nil? || password.empty?
|
|
24
|
+
fail ArgumentError, 'Password has to be provided' if password.nil? || password.empty?
|
|
25
25
|
|
|
26
|
-
GoodData::Command::Domain.add_user(domain, email, password)
|
|
26
|
+
GoodData::Command::Domain.add_user(domain, email, password, :client => client)
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -31,15 +31,14 @@ GoodData::CLI.module_eval do
|
|
|
31
31
|
c.command :list_users do |list_users|
|
|
32
32
|
list_users.action do |global_options, options, args|
|
|
33
33
|
opts = options.merge(global_options)
|
|
34
|
-
GoodData.connect(opts)
|
|
34
|
+
client = GoodData.connect(opts)
|
|
35
35
|
|
|
36
36
|
domain = args[0]
|
|
37
|
-
fail 'Domain name has to be provided' if domain.nil? || domain.empty?
|
|
37
|
+
fail ArgumentError, 'Domain name has to be provided' if domain.nil? || domain.empty?
|
|
38
38
|
|
|
39
|
-
users = GoodData::Command::Domain.list_users(domain)
|
|
40
|
-
puts users.map { |u| [u
|
|
39
|
+
users = GoodData::Command::Domain.list_users(domain, :client => client)
|
|
40
|
+
puts users.map { |u| [u.first_name, u.last_name, u.login].join(',') }
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
|
-
|
|
45
44
|
end
|
|
@@ -35,11 +35,11 @@ GoodData::CLI.module_eval do
|
|
|
35
35
|
c.command :list do |list|
|
|
36
36
|
list.action do |global_options, options, args|
|
|
37
37
|
opts = options.merge(global_options)
|
|
38
|
-
GoodData.connect(opts)
|
|
38
|
+
client = GoodData.connect(opts)
|
|
39
39
|
opts = opts.merge(:project_id => args[0]) if args.length > 0
|
|
40
|
-
processes = GoodData::Command::Process.list(opts)
|
|
40
|
+
processes = GoodData::Command::Process.list(opts.merge(client: client))
|
|
41
41
|
processes.each do |process|
|
|
42
|
-
puts "#{process.name},#{
|
|
42
|
+
puts "#{process.name},#{client.connection.server_url + process.uri}"
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
@@ -48,8 +48,8 @@ GoodData::CLI.module_eval do
|
|
|
48
48
|
c.command :show do |get|
|
|
49
49
|
get.action do |global_options, options, args|
|
|
50
50
|
opts = options.merge(global_options)
|
|
51
|
-
GoodData.connect(opts)
|
|
52
|
-
pp GoodData::Command::Process.get(
|
|
51
|
+
client = GoodData.connect(opts)
|
|
52
|
+
pp GoodData::Command::Process.get(opts.merge(client: client)).raw_data
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
@@ -61,8 +61,9 @@ GoodData::CLI.module_eval do
|
|
|
61
61
|
name = opts[:name]
|
|
62
62
|
fail 'You have to provide a directory or a file to deploy. Use --dir param' if dir.nil? || dir.empty?
|
|
63
63
|
fail 'You have to provide a name of the deployed process. Use --name param' if name.nil? || name.empty?
|
|
64
|
-
GoodData.connect(opts)
|
|
65
|
-
|
|
64
|
+
client = GoodData.connect(opts)
|
|
65
|
+
process = GoodData::Command::Process.deploy(dir, opts.merge(client: client))
|
|
66
|
+
puts "Process #{process.uri} was deployed"
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
|
|
@@ -72,8 +73,9 @@ GoodData::CLI.module_eval do
|
|
|
72
73
|
opts = options.merge(global_options)
|
|
73
74
|
process_id = opts[:process_id]
|
|
74
75
|
fail 'You have to provide a process id. Use --process_id param' if process_id.nil? || process_id.empty?
|
|
75
|
-
GoodData.connect(opts)
|
|
76
|
-
|
|
76
|
+
client = GoodData.connect(opts)
|
|
77
|
+
GoodData::Command::Process.delete(process_id, opts.merge(client: client))
|
|
78
|
+
puts "Process #{process_id} was deleted"
|
|
77
79
|
end
|
|
78
80
|
end
|
|
79
81
|
|
|
@@ -15,7 +15,6 @@ GoodData::CLI.module_eval do
|
|
|
15
15
|
c.command :jack_in do |jack|
|
|
16
16
|
jack.action do |global_options, options, args|
|
|
17
17
|
opts = options.merge(global_options)
|
|
18
|
-
GoodData.connect(opts)
|
|
19
18
|
GoodData::Command::Project.jack_in(opts)
|
|
20
19
|
end
|
|
21
20
|
end
|
|
@@ -32,14 +31,14 @@ GoodData::CLI.module_eval do
|
|
|
32
31
|
token = opts[:token] || ask('token')
|
|
33
32
|
|
|
34
33
|
opts = options.merge(global_options)
|
|
35
|
-
GoodData.connect(opts)
|
|
34
|
+
client = GoodData.connect(opts)
|
|
36
35
|
project = GoodData::Command::Project.create(
|
|
37
36
|
:title => title,
|
|
38
37
|
:summary => summary,
|
|
39
38
|
:template => template,
|
|
40
|
-
:token => token
|
|
41
|
-
|
|
42
|
-
puts "Project '#{project.title}' with id #{project.
|
|
39
|
+
:token => token,
|
|
40
|
+
client: client)
|
|
41
|
+
puts "Project '#{project.title}' with id #{project.pid} created successfully!"
|
|
43
42
|
end
|
|
44
43
|
end
|
|
45
44
|
|
|
@@ -48,8 +47,8 @@ GoodData::CLI.module_eval do
|
|
|
48
47
|
delete.action do |global_options, options, args|
|
|
49
48
|
id = global_options[:project_id]
|
|
50
49
|
opts = options.merge(global_options)
|
|
51
|
-
GoodData.connect(opts)
|
|
52
|
-
GoodData::Command::Project.delete(id)
|
|
50
|
+
client = GoodData.connect(opts)
|
|
51
|
+
GoodData::Command::Project.delete(id, opts.merge(client: client))
|
|
53
52
|
end
|
|
54
53
|
end
|
|
55
54
|
|
|
@@ -74,8 +73,8 @@ GoodData::CLI.module_eval do
|
|
|
74
73
|
opts[:auth_token] = token
|
|
75
74
|
fail 'You have to provide a token for creating a project. Please use parameter --token' if token.nil? || token.empty?
|
|
76
75
|
|
|
77
|
-
GoodData.connect(opts)
|
|
78
|
-
new_project = GoodData::Command::Project.clone(id, opts)
|
|
76
|
+
client = GoodData.connect(opts)
|
|
77
|
+
new_project = GoodData::Command::Project.clone(id, opts.merge(client: client))
|
|
79
78
|
puts "Project with title \"#{new_project.title}\" was cloned with id #{new_project.pid}"
|
|
80
79
|
end
|
|
81
80
|
end
|
|
@@ -93,12 +92,12 @@ GoodData::CLI.module_eval do
|
|
|
93
92
|
fail 'Role name has to be provided' if role.nil? || role.empty?
|
|
94
93
|
|
|
95
94
|
msg = args[2]
|
|
96
|
-
msg = GoodData::
|
|
95
|
+
msg = GoodData::Project::DEFAULT_INVITE_MESSAGE if msg.nil? || msg.empty?
|
|
97
96
|
|
|
98
97
|
opts = options.merge(global_options)
|
|
99
|
-
GoodData.connect(opts)
|
|
98
|
+
client = GoodData.connect(opts)
|
|
100
99
|
|
|
101
|
-
GoodData::Command::Project.invite(project_id, email, role, msg)
|
|
100
|
+
GoodData::Command::Project.invite(project_id, email, role, msg, opts.merge(client: client))
|
|
102
101
|
end
|
|
103
102
|
end
|
|
104
103
|
|
|
@@ -106,13 +105,13 @@ GoodData::CLI.module_eval do
|
|
|
106
105
|
c.command :users do |list|
|
|
107
106
|
list.action do |global_options, options, args|
|
|
108
107
|
opts = options.merge(global_options)
|
|
109
|
-
GoodData.connect(opts)
|
|
108
|
+
client = GoodData.connect(opts)
|
|
110
109
|
|
|
111
110
|
pid = global_options[:project_id]
|
|
112
111
|
fail 'Project ID has to be provided' if pid.nil? || pid.empty?
|
|
113
112
|
|
|
114
|
-
user_list = GoodData::Command::Project.users(pid)
|
|
115
|
-
puts user_list.map { |u| [u
|
|
113
|
+
user_list = GoodData::Command::Project.users(pid, opts.merge(client: client))
|
|
114
|
+
puts user_list.map { |u| [u.last_name, u.first_name, u.login, u.uri].join(',') }
|
|
116
115
|
end
|
|
117
116
|
end
|
|
118
117
|
|
|
@@ -121,8 +120,8 @@ GoodData::CLI.module_eval do
|
|
|
121
120
|
show.action do |global_options, options, args|
|
|
122
121
|
id = global_options[:project_id]
|
|
123
122
|
opts = options.merge(global_options)
|
|
124
|
-
GoodData.connect(opts)
|
|
125
|
-
p = GoodData::Command::Project.show(id)
|
|
123
|
+
client = GoodData.connect(opts)
|
|
124
|
+
p = GoodData::Command::Project.show(id, client: client)
|
|
126
125
|
pp p.data
|
|
127
126
|
end
|
|
128
127
|
end
|
|
@@ -131,9 +130,9 @@ GoodData::CLI.module_eval do
|
|
|
131
130
|
c.command :build do |show|
|
|
132
131
|
show.action do |global_options, options, args|
|
|
133
132
|
opts = options.merge(global_options)
|
|
134
|
-
GoodData.connect(opts)
|
|
133
|
+
client = GoodData.connect(opts)
|
|
135
134
|
spec, _ = GoodData::Command::Project.get_spec_and_project_id('.')
|
|
136
|
-
new_project = GoodData::Command::Project.build(opts.merge(:spec
|
|
135
|
+
new_project = GoodData::Command::Project.build(opts.merge(spec: spec, client: client))
|
|
137
136
|
puts "Project was created. New project PID is #{new_project.pid}, URI is #{new_project.uri}."
|
|
138
137
|
end
|
|
139
138
|
end
|
|
@@ -152,27 +151,26 @@ GoodData::CLI.module_eval do
|
|
|
152
151
|
end
|
|
153
152
|
end
|
|
154
153
|
|
|
155
|
-
c.desc '
|
|
154
|
+
c.desc 'Shows roles in the project'
|
|
156
155
|
c.command :roles do |roles|
|
|
157
156
|
roles.action do |global_options, options, args|
|
|
158
157
|
project_id = global_options[:project_id]
|
|
159
158
|
fail 'Project ID has to be provided' if project_id.nil? || project_id.empty?
|
|
160
159
|
|
|
161
160
|
opts = options.merge(global_options)
|
|
162
|
-
GoodData.connect(opts)
|
|
161
|
+
client = GoodData.connect(opts)
|
|
163
162
|
|
|
164
|
-
roles = GoodData::Command::Project.roles(project_id)
|
|
165
|
-
|
|
166
|
-
puts roles.map { |r| [r['url'], r['role']['projectRole']['meta']['title']].join(',') }
|
|
163
|
+
roles = GoodData::Command::Project.roles(project_id, client: client)
|
|
164
|
+
puts roles.map { |r| [r.uri, r.title].join(',') }
|
|
167
165
|
end
|
|
168
166
|
end
|
|
169
167
|
|
|
170
|
-
c.desc 'You can run project validation which will check RI
|
|
168
|
+
c.desc 'You can run project validation which will check RI and other problems.'
|
|
171
169
|
c.command :validate do |show|
|
|
172
170
|
show.action do |global_options, options, args|
|
|
173
171
|
opts = options.merge(global_options)
|
|
174
|
-
GoodData.connect(opts)
|
|
175
|
-
pp GoodData::Command::Project.validate(global_options[:project_id])
|
|
172
|
+
client = GoodData.connect(opts)
|
|
173
|
+
pp GoodData::Command::Project.validate(global_options[:project_id], opts.merge(client: client))
|
|
176
174
|
end
|
|
177
175
|
end
|
|
178
176
|
end
|