gooddata 0.6.18 → 0.6.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +8 -19
- data/Guardfile +5 -0
- data/README.md +1 -3
- data/bin/gooddata +1 -1
- data/gooddata.gemspec +6 -4
- data/lib/gooddata.rb +1 -1
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +24 -0
- data/lib/gooddata/cli/commands/console_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/project_cmd.rb +29 -9
- data/lib/gooddata/cli/hooks.rb +9 -3
- data/lib/gooddata/commands/datawarehouse.rb +1 -7
- data/lib/gooddata/commands/project.rb +4 -3
- data/lib/gooddata/core/logging.rb +14 -2
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +9 -0
- data/lib/gooddata/exceptions/uncomputable_report.rb +8 -0
- data/lib/gooddata/exceptions/validation_error.rb +1 -1
- data/lib/gooddata/goodzilla/goodzilla.rb +5 -1
- data/lib/gooddata/helpers/data_helper.rb +40 -9
- data/lib/gooddata/mixins/md_finders.rb +35 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +46 -0
- data/lib/gooddata/models/blueprint/attribute_field.rb +25 -0
- data/lib/gooddata/models/blueprint/blueprint.rb +7 -0
- data/lib/gooddata/models/blueprint/blueprint_field.rb +66 -0
- data/lib/gooddata/models/{dashboard_builder.rb → blueprint/dashboard_builder.rb} +0 -0
- data/lib/gooddata/models/{schema_blueprint.rb → blueprint/dataset_blueprint.rb} +176 -117
- data/lib/gooddata/models/blueprint/date_dimension.rb +10 -0
- data/lib/gooddata/models/blueprint/fact_field.rb +16 -0
- data/lib/gooddata/models/blueprint/label_field.rb +39 -0
- data/lib/gooddata/models/{project_blueprint.rb → blueprint/project_blueprint.rb} +366 -168
- data/lib/gooddata/models/blueprint/project_builder.rb +79 -0
- data/lib/gooddata/models/blueprint/reference_field.rb +39 -0
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +156 -0
- data/lib/gooddata/models/blueprint/schema_builder.rb +85 -0
- data/lib/gooddata/models/{to_manifest.rb → blueprint/to_manifest.rb} +25 -20
- data/lib/gooddata/models/{to_wire.rb → blueprint/to_wire.rb} +33 -52
- data/lib/gooddata/models/datawarehouse.rb +2 -2
- data/lib/gooddata/models/domain.rb +3 -2
- data/lib/gooddata/models/execution.rb +2 -2
- data/lib/gooddata/models/execution_detail.rb +7 -2
- data/lib/gooddata/models/from_wire.rb +60 -71
- data/lib/gooddata/models/from_wire_parse.rb +125 -125
- data/lib/gooddata/models/metadata.rb +14 -0
- data/lib/gooddata/models/metadata/dashboard.rb +2 -2
- data/lib/gooddata/models/metadata/label.rb +1 -1
- data/lib/gooddata/models/metadata/report.rb +6 -5
- data/lib/gooddata/models/metadata/report_definition.rb +44 -59
- data/lib/gooddata/models/model.rb +131 -43
- data/lib/gooddata/models/process.rb +13 -11
- data/lib/gooddata/models/profile.rb +12 -1
- data/lib/gooddata/models/project.rb +223 -19
- data/lib/gooddata/models/project_creator.rb +4 -15
- data/lib/gooddata/models/schedule.rb +1 -0
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +2 -2
- data/lib/gooddata/rest/client.rb +18 -18
- data/lib/gooddata/rest/connection.rb +113 -94
- data/lib/gooddata/version.rb +1 -1
- data/lib/templates/project/model/model.rb.erb +15 -16
- data/spec/data/blueprints/additional_dataset_module.json +32 -0
- data/spec/data/blueprints/big_blueprint_not_pruned.json +2079 -0
- data/spec/data/blueprints/invalid_blueprint.json +103 -0
- data/spec/data/blueprints/m_n_model.json +104 -0
- data/spec/data/blueprints/model_module.json +25 -0
- data/spec/data/blueprints/test_blueprint.json +38 -0
- data/spec/data/blueprints/test_project_model_spec.json +106 -0
- data/spec/data/gd_gse_data_manifest.json +34 -34
- data/spec/data/manifests/test_blueprint.json +32 -0
- data/spec/data/{manifest_test_project.json → manifests/test_project.json} +9 -18
- data/spec/data/wire_models/test_blueprint.json +63 -0
- data/spec/data/wire_test_project.json +5 -5
- data/spec/environment/default.rb +33 -0
- data/spec/environment/develop.rb +26 -0
- data/spec/environment/environment.rb +14 -0
- data/spec/environment/hotfix.rb +17 -0
- data/spec/environment/production.rb +31 -0
- data/spec/environment/release.rb +17 -0
- data/spec/helpers/blueprint_helper.rb +10 -7
- data/spec/helpers/cli_helper.rb +24 -22
- data/spec/helpers/connection_helper.rb +27 -25
- data/spec/helpers/crypto_helper.rb +7 -5
- data/spec/helpers/csv_helper.rb +5 -3
- data/spec/helpers/process_helper.rb +15 -10
- data/spec/helpers/project_helper.rb +40 -33
- data/spec/helpers/schedule_helper.rb +15 -9
- data/spec/helpers/spec_helper.rb +11 -0
- data/spec/integration/blueprint_updates_spec.rb +93 -0
- data/spec/integration/command_datawarehouse_spec.rb +2 -1
- data/spec/integration/command_projects_spec.rb +9 -8
- data/spec/integration/create_from_template_spec.rb +1 -1
- data/spec/integration/create_project_spec.rb +1 -1
- data/spec/integration/full_process_schedule_spec.rb +1 -1
- data/spec/integration/full_project_spec.rb +91 -30
- data/spec/integration/over_to_user_filters_spec.rb +24 -28
- data/spec/integration/partial_md_export_import_spec.rb +4 -4
- data/spec/integration/project_spec.rb +1 -1
- data/spec/integration/rest_spec.rb +1 -1
- data/spec/integration/user_filters_spec.rb +19 -24
- data/spec/integration/variables_spec.rb +7 -9
- data/spec/logging_in_logging_out_spec.rb +1 -1
- data/spec/spec_helper.rb +10 -1
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +47 -0
- data/spec/unit/core/connection_spec.rb +2 -2
- data/spec/unit/core/logging_spec.rb +12 -4
- data/spec/unit/helpers/data_helper_spec.rb +60 -0
- data/spec/unit/models/blueprint/attributes_spec.rb +24 -0
- data/spec/unit/models/blueprint/dataset_spec.rb +116 -0
- data/spec/unit/models/blueprint/labels_spec.rb +39 -0
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +643 -0
- data/spec/unit/models/blueprint/reference_spec.rb +24 -0
- data/spec/unit/models/{schema_builder_spec.rb → blueprint/schema_builder_spec.rb} +12 -4
- data/spec/unit/models/blueprint/to_wire_spec.rb +169 -0
- data/spec/unit/models/domain_spec.rb +13 -2
- data/spec/unit/models/from_wire_spec.rb +277 -98
- data/spec/unit/models/metadata_spec.rb +22 -4
- data/spec/unit/models/model_spec.rb +49 -39
- data/spec/unit/models/profile_spec.rb +1 -0
- data/spec/unit/models/project_spec.rb +7 -7
- data/spec/unit/models/schedule_spec.rb +20 -0
- data/spec/unit/models/to_manifest_spec.rb +31 -11
- data/spec/unit/rest/polling_spec.rb +86 -0
- metadata +102 -30
- data/lib/gooddata/models/project_builder.rb +0 -136
- data/lib/gooddata/models/schema_builder.rb +0 -77
- data/out.txt +0 -0
- data/spec/data/additional_dataset_module.json +0 -18
- data/spec/data/blueprint_invalid.json +0 -38
- data/spec/data/m_n_model/blueprint.json +0 -76
- data/spec/data/model_module.json +0 -18
- data/spec/data/test_project_model_spec.json +0 -76
- data/spec/unit/models/attribute_column_spec.rb +0 -7
- data/spec/unit/models/project_blueprint_spec.rb +0 -239
- data/spec/unit/models/to_wire_spec.rb +0 -71
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"dataSetSLIManifest": {
|
4
|
+
"parts": [
|
5
|
+
{
|
6
|
+
"referenceKey": 1,
|
7
|
+
"populates": [
|
8
|
+
"label.devs.id.id"
|
9
|
+
],
|
10
|
+
"mode": "FULL",
|
11
|
+
"columnName": "devs_id"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"referenceKey": 1,
|
15
|
+
"populates": [
|
16
|
+
"label.opp_snapshot.accountstagesnapshot"
|
17
|
+
],
|
18
|
+
"mode": "FULL",
|
19
|
+
"columnName": "account"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"dataSet": "dataset.devs",
|
23
|
+
"file": "data.csv",
|
24
|
+
"csvParams": {
|
25
|
+
"quoteChar": "\"",
|
26
|
+
"escapeChar": "\"",
|
27
|
+
"separatorChar": ",",
|
28
|
+
"endOfLine": "\n"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
]
|
@@ -5,25 +5,18 @@
|
|
5
5
|
{
|
6
6
|
"referenceKey": 1,
|
7
7
|
"populates": [
|
8
|
-
"
|
8
|
+
"some_label_id"
|
9
9
|
],
|
10
10
|
"mode": "FULL",
|
11
|
-
"columnName": "
|
12
|
-
},
|
13
|
-
{
|
14
|
-
"populates": [
|
15
|
-
"label.repos.repo_id.name"
|
16
|
-
],
|
17
|
-
"mode": "FULL",
|
18
|
-
"columnName": "name"
|
11
|
+
"columnName": "dev_id"
|
19
12
|
},
|
20
13
|
{
|
21
14
|
"referenceKey": 1,
|
22
15
|
"populates": [
|
23
|
-
"
|
16
|
+
"some_attr_label_id"
|
24
17
|
],
|
25
18
|
"mode": "FULL",
|
26
|
-
"columnName": "
|
19
|
+
"columnName": "email"
|
27
20
|
}
|
28
21
|
],
|
29
22
|
"dataSet": "dataset.repos",
|
@@ -42,15 +35,13 @@
|
|
42
35
|
{
|
43
36
|
"referenceKey": 1,
|
44
37
|
"populates": [
|
45
|
-
"label.devs.dev_id"
|
38
|
+
"label.devs.dev_id.id"
|
46
39
|
],
|
47
40
|
"mode": "FULL",
|
48
41
|
"columnName": "dev_id"
|
49
42
|
},
|
50
43
|
{
|
51
|
-
"populates": [
|
52
|
-
"label.devs.dev_id.email"
|
53
|
-
],
|
44
|
+
"populates": ["label.devs.dev_id.email"],
|
54
45
|
"mode": "FULL",
|
55
46
|
"columnName": "email"
|
56
47
|
}
|
@@ -81,14 +72,14 @@
|
|
81
72
|
],
|
82
73
|
"mode": "FULL",
|
83
74
|
"constraints": {
|
84
|
-
"date": "dd/
|
75
|
+
"date": "MM/dd/yyyy"
|
85
76
|
},
|
86
77
|
"columnName": "committed_on",
|
87
78
|
"referenceKey": 1
|
88
79
|
},
|
89
80
|
{
|
90
81
|
"populates": [
|
91
|
-
"label.devs.dev_id"
|
82
|
+
"label.devs.dev_id.id"
|
92
83
|
],
|
93
84
|
"mode": "FULL",
|
94
85
|
"columnName": "dev_id",
|
@@ -96,7 +87,7 @@
|
|
96
87
|
},
|
97
88
|
{
|
98
89
|
"populates": [
|
99
|
-
"
|
90
|
+
"some_label_id"
|
100
91
|
],
|
101
92
|
"mode": "FULL",
|
102
93
|
"columnName": "repo_id",
|
@@ -0,0 +1,63 @@
|
|
1
|
+
{
|
2
|
+
"diffRequest": {
|
3
|
+
"targetModel": {
|
4
|
+
"projectModel": {
|
5
|
+
"datasets": [
|
6
|
+
{
|
7
|
+
"dataset": {
|
8
|
+
"identifier": "dataset.devs",
|
9
|
+
"title": "Developers",
|
10
|
+
"anchor": {
|
11
|
+
"attribute": {
|
12
|
+
"identifier": "attr.devs.id",
|
13
|
+
"title": "Current Stage",
|
14
|
+
"folder": "Developers",
|
15
|
+
"labels": [
|
16
|
+
{
|
17
|
+
"label": {
|
18
|
+
"identifier": "label.devs.id.id",
|
19
|
+
"title": "Devs Id",
|
20
|
+
"type": "GDC.text",
|
21
|
+
"dataType": "VARCHAR(128)"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"defaultLabel": "label.devs.id.id"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"attributes": [
|
29
|
+
{
|
30
|
+
"attribute": {
|
31
|
+
"identifier": "attr.devs.name",
|
32
|
+
"title": "Name",
|
33
|
+
"folder": "Developers",
|
34
|
+
"labels": [
|
35
|
+
{
|
36
|
+
"label": {
|
37
|
+
"identifier": "label.opp_snapshot.accountstagesnapshot",
|
38
|
+
"title": "Account Stage (Snapshot)",
|
39
|
+
"type": "GDC.text",
|
40
|
+
"dataType": "VARCHAR(128)"
|
41
|
+
}
|
42
|
+
}
|
43
|
+
],
|
44
|
+
"defaultLabel": "label.opp_snapshot.accountstagesnapshot"
|
45
|
+
}
|
46
|
+
}
|
47
|
+
],
|
48
|
+
"facts": [
|
49
|
+
|
50
|
+
],
|
51
|
+
"references": [
|
52
|
+
|
53
|
+
]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
],
|
57
|
+
"dateDimensions": [
|
58
|
+
|
59
|
+
]
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
@@ -11,7 +11,6 @@
|
|
11
11
|
"attribute": {
|
12
12
|
"identifier": "attr.repos.repo_id",
|
13
13
|
"title": "Repo",
|
14
|
-
"description": "This is anchor description",
|
15
14
|
"folder": "Foldered Repos",
|
16
15
|
"labels": [
|
17
16
|
{
|
@@ -31,7 +30,8 @@
|
|
31
30
|
}
|
32
31
|
}
|
33
32
|
],
|
34
|
-
"defaultLabel": "label.repos.repo_id"
|
33
|
+
"defaultLabel": "label.repos.repo_id",
|
34
|
+
"description": "This is anchor description"
|
35
35
|
}
|
36
36
|
},
|
37
37
|
"attributes": [
|
@@ -46,7 +46,7 @@
|
|
46
46
|
"identifier": "label.repos.department",
|
47
47
|
"title": "Department",
|
48
48
|
"type": null,
|
49
|
-
"dataType":
|
49
|
+
"dataType": "VARCHAR(128)"
|
50
50
|
}
|
51
51
|
}
|
52
52
|
],
|
@@ -122,9 +122,9 @@
|
|
122
122
|
"fact": {
|
123
123
|
"identifier": "fact.commits.lines_changed",
|
124
124
|
"title": "Lines Changed",
|
125
|
-
"description": "Fact description",
|
126
125
|
"folder": "Commits",
|
127
|
-
"dataType": "INT"
|
126
|
+
"dataType": "INT",
|
127
|
+
"description": "Fact description"
|
128
128
|
}
|
129
129
|
}
|
130
130
|
],
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
module ConnectionHelper
|
6
|
+
GD_PROJECT_TOKEN = ENV["GD_PROJECT_TOKEN"]
|
7
|
+
|
8
|
+
|
9
|
+
DEFAULT_USERNAME = "tomas.korcak+gem_tester@gooddata.com"
|
10
|
+
TEST_USERNAME = "john.doe@gooddata.com"
|
11
|
+
DEFAULT_PASSWORD = "jindrisska"
|
12
|
+
DEFAULT_DOMAIN = 'gooddata-tomas-korcak-gem-tester'
|
13
|
+
DEFAULT_USER_URL = '/gdc/account/profile/3cea1102d5584813506352a2a2a00d95'
|
14
|
+
DEFAULT_SERVER = 'https://secure.gooddata.com'
|
15
|
+
end
|
16
|
+
|
17
|
+
module ProcessHelper
|
18
|
+
PROCESS_ID = '81fa71a4-69fd-4c58-aa09-66e7f53f4647'
|
19
|
+
DEPLOY_NAME = 'graph.grf'
|
20
|
+
end
|
21
|
+
|
22
|
+
module ProjectHelper
|
23
|
+
PROJECT_ID = 'we1vvh4il93r0927r809i3agif50d7iz'
|
24
|
+
PROJECT_URL = "/gdc/projects/#{PROJECT_ID}"
|
25
|
+
PROJECT_TITLE = 'GoodTravis'
|
26
|
+
PROJECT_SUMMARY = 'No summary'
|
27
|
+
end
|
28
|
+
|
29
|
+
module ScheduleHelper
|
30
|
+
SCHEDULE_ID = '54b90771e4b067429a27a549'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
module ConnectionHelper
|
6
|
+
DEFAULT_SERVER = 'https://staging.getgooddata.com'
|
7
|
+
DEFAULT_USER_URL = '/gdc/account/profile/6ca71a392e15700a4db4537f441eba39'
|
8
|
+
end
|
9
|
+
|
10
|
+
module ProcessHelper
|
11
|
+
PROCESS_ID = '2e2cbe45-02fd-4a1a-b735-a37d65ff267d'
|
12
|
+
DEPLOY_NAME = 'graph.grf'
|
13
|
+
end
|
14
|
+
|
15
|
+
module ProjectHelper
|
16
|
+
PROJECT_ID = 'i66l5qezxd96syjo9hgbie8earysh6b7'
|
17
|
+
PROJECT_URL = "/gdc/projects/#{PROJECT_ID}"
|
18
|
+
PROJECT_TITLE = 'GoodTravis'
|
19
|
+
PROJECT_SUMMARY = 'No summary'
|
20
|
+
end
|
21
|
+
|
22
|
+
module ScheduleHelper
|
23
|
+
SCHEDULE_ID = '556c580ee4b05b1a534f3997'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
class << self
|
6
|
+
def load(env = ENV['GD_ENV'] || 'develop')
|
7
|
+
require_relative 'default'
|
8
|
+
require_relative env
|
9
|
+
|
10
|
+
ENV['GD_SERVER'] = GoodData::Environment::ConnectionHelper::DEFAULT_SERVER
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
module ConnectionHelper
|
6
|
+
DEFAULT_SERVER = 'https://staging2.getgooddata.com'
|
7
|
+
DEFAULT_USER_URL = '/gdc/account/profile/d8b356b30c0c12d1b4b97f56d6706ef2'
|
8
|
+
end
|
9
|
+
|
10
|
+
module ProjectHelper
|
11
|
+
PROJECT_ID = 'vc8mctilky1xu6uqclafvan8b0x1mv3k'
|
12
|
+
PROJECT_URL = "/gdc/projects/#{PROJECT_ID}"
|
13
|
+
PROJECT_TITLE = 'GoodTravis'
|
14
|
+
PROJECT_SUMMARY = 'No summary'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
module ConnectionHelper
|
6
|
+
DEFAULT_SERVER = 'https://secure.gooddata.com'
|
7
|
+
DEFAULT_USERNAME = "svarovsky+gem_tester@gooddata.com"
|
8
|
+
TEST_USERNAME = "john.doe@gooddata.com"
|
9
|
+
DEFAULT_PASSWORD = "jindrisska"
|
10
|
+
DEFAULT_DOMAIN = 'gooddata-tomas-svarovsky'
|
11
|
+
DEFAULT_USER_URL = '/gdc/account/profile/3cea1102d5584813506352a2a2a00d95'
|
12
|
+
DEFAULT_SERVER = 'https://secure.gooddata.com'
|
13
|
+
end
|
14
|
+
|
15
|
+
module ProcessHelper
|
16
|
+
PROCESS_ID = '35ddce15-02b5-4dc5-b161-9fb25b73bd8b'
|
17
|
+
DEPLOY_NAME = 'graph.grf'
|
18
|
+
end
|
19
|
+
|
20
|
+
module ProjectHelper
|
21
|
+
PROJECT_ID = 'cql548kue571k50guqvaccd10817zyup'
|
22
|
+
PROJECT_URL = "/gdc/projects/#{PROJECT_ID}"
|
23
|
+
PROJECT_TITLE = 'GoodTravis'
|
24
|
+
PROJECT_SUMMARY = 'No summary'
|
25
|
+
end
|
26
|
+
|
27
|
+
module ScheduleHelper
|
28
|
+
SCHEDULE_ID = '557ac000e4b041600876e967'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module GoodData
|
4
|
+
module Environment
|
5
|
+
module ConnectionHelper
|
6
|
+
DEFAULT_SERVER = 'https://staging2.getgooddata.com'
|
7
|
+
DEFAULT_USER_URL = '/gdc/account/profile/d8b356b30c0c12d1b4b97f56d6706ef2'
|
8
|
+
end
|
9
|
+
|
10
|
+
module ProjectHelper
|
11
|
+
PROJECT_ID = 'vc8mctilky1xu6uqclafvan8b0x1mv3k'
|
12
|
+
PROJECT_URL = "/gdc/projects/#{PROJECT_ID}"
|
13
|
+
PROJECT_TITLE = 'GoodTravis'
|
14
|
+
PROJECT_SUMMARY = 'No summary'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -6,14 +6,17 @@ require 'multi_json'
|
|
6
6
|
# Local requires
|
7
7
|
require 'gooddata/models/models'
|
8
8
|
|
9
|
-
module
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
module GoodData::Helpers
|
10
|
+
module BlueprintHelper
|
11
|
+
def blueprint_from_file(bp)
|
12
|
+
# Try to load as full path
|
13
|
+
raw = IO.read(bp)
|
13
14
|
|
14
|
-
|
15
|
+
# TODO: Try to load as relative path if failed
|
15
16
|
|
16
|
-
|
17
|
-
|
17
|
+
parsed = MultiJson.load(raw, :symbolize_keys => true)
|
18
|
+
return GoodData::Model::ProjectBlueprint.new(parsed)
|
19
|
+
end
|
18
20
|
end
|
19
21
|
end
|
22
|
+
|
data/spec/helpers/cli_helper.rb
CHANGED
@@ -2,29 +2,31 @@
|
|
2
2
|
|
3
3
|
require 'gooddata/cli/cli'
|
4
4
|
|
5
|
-
module
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
5
|
+
module GoodData::Helpers
|
6
|
+
module CliHelper
|
7
|
+
# Execute block and capture its stdou
|
8
|
+
# @param block Block to be executed with stdout redirected
|
9
|
+
# @returns Captured output as string
|
10
|
+
def capture_stdout(&block)
|
11
|
+
original_stdout = $stdout
|
12
|
+
$stdout = fake = StringIO.new
|
13
|
+
begin
|
14
|
+
yield
|
15
|
+
ensure
|
16
|
+
$stdout = original_stdout
|
17
|
+
end
|
18
|
+
fake.string
|
16
19
|
end
|
17
|
-
fake.string
|
18
|
-
end
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
# Run CLI with arguments and return captured stdout
|
22
|
+
# @param args Arguments
|
23
|
+
# @return Captured stdout
|
24
|
+
def run_cli(args = [])
|
25
|
+
old = $0
|
26
|
+
$0 = 'gooddata'
|
27
|
+
res = capture_stdout { GoodData::CLI.main(args) }
|
28
|
+
$0 = old
|
29
|
+
res
|
30
|
+
end
|
29
31
|
end
|
30
32
|
end
|
@@ -1,32 +1,34 @@
|
|
1
1
|
require 'gooddata/connection'
|
2
2
|
|
3
|
-
|
4
|
-
GD_PROJECT_TOKEN = ENV["GD_PROJECT_TOKEN"]
|
5
|
-
|
6
|
-
DEFAULT_USERNAME = "svarovsky+gem_tester@gooddata.com"
|
7
|
-
DEFAULT_PASSWORD = "jindrisska"
|
8
|
-
DEFAULT_DOMAIN = 'gooddata-tomas-svarovsky'
|
9
|
-
DEFAULT_USER_URL = '/gdc/account/profile/3cea1102d5584813506352a2a2a00d95'
|
10
|
-
|
11
|
-
# Creates connection using default credentials or supplied one
|
12
|
-
#
|
13
|
-
# @param [String] username Optional username
|
14
|
-
# @param [String] password Optional password
|
15
|
-
def self.create_default_connection(username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD)
|
16
|
-
GoodData::connect(username, password)
|
17
|
-
end
|
3
|
+
require_relative '../environment/environment'
|
18
4
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
5
|
+
GoodData::Environment.load
|
6
|
+
|
7
|
+
module GoodData::Helpers
|
8
|
+
module ConnectionHelper
|
9
|
+
include GoodData::Environment::ConnectionHelper
|
24
10
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
11
|
+
# Creates connection using default credentials or supplied one
|
12
|
+
#
|
13
|
+
# @param [String] username Optional username
|
14
|
+
# @param [String] password Optional password
|
15
|
+
def self.create_default_connection(username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD)
|
16
|
+
GoodData::connect(username, password, :server => GoodData::Environment::ConnectionHelper::DEFAULT_SERVER, :verify_ssl => OpenSSL::SSL::VERIFY_NONE)
|
17
|
+
end
|
29
18
|
|
30
|
-
|
19
|
+
def self.disconnect
|
20
|
+
conn = GoodData.connection.connection
|
21
|
+
GoodData.disconnect
|
22
|
+
puts conn.stats_table
|
23
|
+
end
|
24
|
+
|
25
|
+
# Creates connection using environment varibles GD_GEM_USER and GD_GEM_PASSWORD
|
26
|
+
def self.create_private_connection
|
27
|
+
username = ENV['GD_GEM_USER'] || DEFAULT_USERNAME
|
28
|
+
password = ENV['GD_GEM_PASSWORD'] || DEFAULT_PASSWORD
|
29
|
+
|
30
|
+
GoodData::connect(username, password)
|
31
|
+
end
|
31
32
|
end
|
33
|
+
|
32
34
|
end
|