gooddata 0.6.54 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (325) hide show
  1. checksums.yaml +5 -5
  2. data/.document +0 -0
  3. data/.editorconfig +0 -0
  4. data/.travis.yml +9 -0
  5. data/.yardopts +0 -0
  6. data/CHANGELOG.md +7 -0
  7. data/CLI.md +0 -0
  8. data/Gemfile +0 -0
  9. data/Guardfile +0 -0
  10. data/LICENSE +0 -0
  11. data/LICENSE.rb +0 -0
  12. data/TODO.md +0 -0
  13. data/dependency_decisions.yml +0 -0
  14. data/gooddata.gemspec +1 -1
  15. data/lib/gooddata/app/app.rb +0 -0
  16. data/lib/gooddata/bricks/brick.rb +0 -0
  17. data/lib/gooddata/bricks/bricks.rb +0 -0
  18. data/lib/gooddata/bricks/middleware/base_middleware.rb +0 -0
  19. data/lib/gooddata/bricks/middleware/bench_middleware.rb +0 -0
  20. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +0 -0
  21. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +0 -0
  22. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +0 -0
  23. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +0 -0
  24. data/lib/gooddata/bricks/middleware/middleware.rb +0 -0
  25. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +0 -0
  26. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +0 -0
  27. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +0 -0
  28. data/lib/gooddata/bricks/pipeline.rb +0 -0
  29. data/lib/gooddata/bricks/utils.rb +0 -0
  30. data/lib/gooddata/cli/cli.rb +0 -0
  31. data/lib/gooddata/cli/commands/auth_cmd.rb +0 -0
  32. data/lib/gooddata/cli/commands/domain_cmd.rb +0 -0
  33. data/lib/gooddata/cli/commands/project_cmd.rb +0 -0
  34. data/lib/gooddata/cli/hooks.rb +0 -0
  35. data/lib/gooddata/cli/shared.rb +0 -0
  36. data/lib/gooddata/cli/terminal.rb +0 -0
  37. data/lib/gooddata/commands/api.rb +0 -0
  38. data/lib/gooddata/commands/auth.rb +0 -0
  39. data/lib/gooddata/commands/base.rb +0 -0
  40. data/lib/gooddata/commands/commands.rb +0 -0
  41. data/lib/gooddata/commands/datasets.rb +0 -0
  42. data/lib/gooddata/commands/datawarehouse.rb +0 -0
  43. data/lib/gooddata/commands/domain.rb +0 -0
  44. data/lib/gooddata/commands/process.rb +0 -0
  45. data/lib/gooddata/commands/project.rb +0 -0
  46. data/lib/gooddata/commands/projects.rb +0 -0
  47. data/lib/gooddata/commands/role.rb +0 -0
  48. data/lib/gooddata/commands/runners.rb +0 -0
  49. data/lib/gooddata/commands/scaffold.rb +0 -0
  50. data/lib/gooddata/commands/user.rb +0 -0
  51. data/lib/gooddata/connection.rb +0 -0
  52. data/lib/gooddata/core/core.rb +0 -0
  53. data/lib/gooddata/core/logging.rb +0 -0
  54. data/lib/gooddata/core/nil_logger.rb +0 -0
  55. data/lib/gooddata/core/project.rb +0 -0
  56. data/lib/gooddata/core/rest.rb +0 -0
  57. data/lib/gooddata/core/user.rb +0 -0
  58. data/lib/gooddata/data/data.rb +0 -0
  59. data/lib/gooddata/data/guesser.rb +0 -0
  60. data/lib/gooddata/exceptions/attr_element_not_found.rb +0 -0
  61. data/lib/gooddata/exceptions/command_failed.rb +0 -0
  62. data/lib/gooddata/exceptions/exceptions.rb +0 -0
  63. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +0 -0
  64. data/lib/gooddata/exceptions/export_clone.rb +0 -0
  65. data/lib/gooddata/exceptions/filter_maqlization.rb +0 -0
  66. data/lib/gooddata/exceptions/import_clone.rb +0 -0
  67. data/lib/gooddata/exceptions/malformed_user.rb +0 -0
  68. data/lib/gooddata/exceptions/maql_execution.rb +0 -0
  69. data/lib/gooddata/exceptions/object_migration.rb +0 -0
  70. data/lib/gooddata/exceptions/project_not_found.rb +0 -0
  71. data/lib/gooddata/exceptions/segment_not_empty.rb +0 -0
  72. data/lib/gooddata/exceptions/uncomputable_report.rb +0 -0
  73. data/lib/gooddata/exceptions/user_in_different_domain.rb +0 -0
  74. data/lib/gooddata/exceptions/validation_error.rb +0 -0
  75. data/lib/gooddata/extensions/big_decimal.rb +0 -0
  76. data/lib/gooddata/extensions/class.rb +0 -0
  77. data/lib/gooddata/extensions/extensions.rb +0 -0
  78. data/lib/gooddata/extensions/false.rb +0 -0
  79. data/lib/gooddata/extensions/hash.rb +0 -0
  80. data/lib/gooddata/extensions/integer.rb +0 -0
  81. data/lib/gooddata/extensions/nil.rb +0 -0
  82. data/lib/gooddata/extensions/numeric.rb +0 -0
  83. data/lib/gooddata/extensions/object.rb +0 -0
  84. data/lib/gooddata/extensions/string.rb +0 -0
  85. data/lib/gooddata/extensions/symbol.rb +0 -0
  86. data/lib/gooddata/extensions/true.rb +0 -0
  87. data/lib/gooddata/extract.rb +0 -0
  88. data/lib/gooddata/goodzilla/goodzilla.rb +0 -0
  89. data/lib/gooddata/helpers/auth_helpers.rb +0 -0
  90. data/lib/gooddata/helpers/csv_helper.rb +0 -0
  91. data/lib/gooddata/helpers/erb_helper.rb +0 -0
  92. data/lib/gooddata/helpers/global_helpers.rb +0 -0
  93. data/lib/gooddata/helpers/helpers.rb +0 -0
  94. data/lib/gooddata/lcm/actions/actions.rb +0 -0
  95. data/lib/gooddata/lcm/actions/base_action.rb +0 -0
  96. data/lib/gooddata/lcm/actions/collect_data_product.rb +4 -9
  97. data/lib/gooddata/lcm/actions/collect_segments.rb +2 -1
  98. data/lib/gooddata/lcm/actions/collect_users_brick_users.rb +46 -0
  99. data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +8 -22
  100. data/lib/gooddata/lcm/actions/synchronize_users.rb +17 -5
  101. data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +0 -0
  102. data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +0 -0
  103. data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +0 -0
  104. data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +0 -0
  105. data/lib/gooddata/lcm/dsl/dsl.rb +0 -0
  106. data/lib/gooddata/lcm/dsl/params_dsl.rb +0 -0
  107. data/lib/gooddata/lcm/helpers/helpers.rb +0 -0
  108. data/lib/gooddata/lcm/lcm2.rb +2 -0
  109. data/lib/gooddata/lcm/types/base_type.rb +0 -0
  110. data/lib/gooddata/lcm/types/class/ads_client.rb +0 -0
  111. data/lib/gooddata/lcm/types/class/class.rb +0 -0
  112. data/lib/gooddata/lcm/types/class/gd_client.rb +0 -0
  113. data/lib/gooddata/lcm/types/class/types.rb +0 -0
  114. data/lib/gooddata/lcm/types/complex/complex.rb +0 -0
  115. data/lib/gooddata/lcm/types/complex/release_query.rb +0 -0
  116. data/lib/gooddata/lcm/types/complex/tokens.rb +0 -0
  117. data/lib/gooddata/lcm/types/complex/types.rb +0 -0
  118. data/lib/gooddata/lcm/types/complex/users_brick_config.rb +32 -0
  119. data/lib/gooddata/lcm/types/param.rb +0 -0
  120. data/lib/gooddata/lcm/types/scalar/bool.rb +0 -0
  121. data/lib/gooddata/lcm/types/scalar/hash.rb +0 -0
  122. data/lib/gooddata/lcm/types/scalar/integer.rb +0 -0
  123. data/lib/gooddata/lcm/types/scalar/object.rb +0 -0
  124. data/lib/gooddata/lcm/types/scalar/string.rb +0 -0
  125. data/lib/gooddata/lcm/types/scalar/types.rb +0 -0
  126. data/lib/gooddata/lcm/types/special/types.rb +0 -0
  127. data/lib/gooddata/lcm/types/types.rb +0 -0
  128. data/lib/gooddata/lcm/user_bricks_helper.rb +32 -0
  129. data/lib/gooddata/mixins/author.rb +0 -0
  130. data/lib/gooddata/mixins/content_getter.rb +0 -0
  131. data/lib/gooddata/mixins/content_property_reader.rb +0 -0
  132. data/lib/gooddata/mixins/content_property_writer.rb +0 -0
  133. data/lib/gooddata/mixins/contributor.rb +0 -0
  134. data/lib/gooddata/mixins/data_getter.rb +0 -0
  135. data/lib/gooddata/mixins/data_property_reader.rb +0 -0
  136. data/lib/gooddata/mixins/data_property_writer.rb +0 -0
  137. data/lib/gooddata/mixins/inspector.rb +0 -0
  138. data/lib/gooddata/mixins/is_attribute.rb +0 -0
  139. data/lib/gooddata/mixins/is_dimension.rb +0 -0
  140. data/lib/gooddata/mixins/is_fact.rb +0 -0
  141. data/lib/gooddata/mixins/is_folder.rb +0 -0
  142. data/lib/gooddata/mixins/is_label.rb +0 -0
  143. data/lib/gooddata/mixins/links.rb +0 -0
  144. data/lib/gooddata/mixins/md_grantees.rb +0 -0
  145. data/lib/gooddata/mixins/md_lock.rb +0 -0
  146. data/lib/gooddata/mixins/md_object_id.rb +0 -0
  147. data/lib/gooddata/mixins/md_relations.rb +0 -0
  148. data/lib/gooddata/mixins/meta_getter.rb +0 -0
  149. data/lib/gooddata/mixins/meta_property_reader.rb +0 -0
  150. data/lib/gooddata/mixins/meta_property_writer.rb +0 -0
  151. data/lib/gooddata/mixins/mixins.rb +0 -0
  152. data/lib/gooddata/mixins/not_attribute.rb +0 -0
  153. data/lib/gooddata/mixins/not_exportable.rb +0 -0
  154. data/lib/gooddata/mixins/not_fact.rb +0 -0
  155. data/lib/gooddata/mixins/not_group.rb +0 -0
  156. data/lib/gooddata/mixins/not_label.rb +0 -0
  157. data/lib/gooddata/mixins/not_metric.rb +0 -0
  158. data/lib/gooddata/mixins/obj_id.rb +0 -0
  159. data/lib/gooddata/mixins/rest_getters.rb +0 -0
  160. data/lib/gooddata/mixins/rest_resource.rb +0 -0
  161. data/lib/gooddata/mixins/root_key_getter.rb +0 -0
  162. data/lib/gooddata/mixins/root_key_setter.rb +0 -0
  163. data/lib/gooddata/mixins/timestamps.rb +0 -0
  164. data/lib/gooddata/mixins/to_json.rb +0 -0
  165. data/lib/gooddata/mixins/uri_getter.rb +0 -0
  166. data/lib/gooddata/models/ads_output_stage.rb +0 -0
  167. data/lib/gooddata/models/automated_data_distribution.rb +0 -0
  168. data/lib/gooddata/models/blueprint/anchor_field.rb +0 -0
  169. data/lib/gooddata/models/blueprint/attribute_field.rb +0 -0
  170. data/lib/gooddata/models/blueprint/blueprint.rb +0 -0
  171. data/lib/gooddata/models/blueprint/blueprint_field.rb +0 -0
  172. data/lib/gooddata/models/blueprint/dashboard_builder.rb +0 -0
  173. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +0 -0
  174. data/lib/gooddata/models/blueprint/fact_field.rb +0 -0
  175. data/lib/gooddata/models/blueprint/label_field.rb +0 -0
  176. data/lib/gooddata/models/blueprint/reference_field.rb +0 -0
  177. data/lib/gooddata/models/blueprint/schema_blueprint.rb +0 -0
  178. data/lib/gooddata/models/blueprint/schema_builder.rb +0 -0
  179. data/lib/gooddata/models/blueprint/to_manifest.rb +0 -0
  180. data/lib/gooddata/models/channel_configuration.rb +0 -0
  181. data/lib/gooddata/models/client_synchronization_result.rb +0 -0
  182. data/lib/gooddata/models/client_synchronization_result_details.rb +0 -0
  183. data/lib/gooddata/models/datawarehouse.rb +0 -0
  184. data/lib/gooddata/models/execution.rb +0 -0
  185. data/lib/gooddata/models/execution_detail.rb +0 -0
  186. data/lib/gooddata/models/invitation.rb +0 -0
  187. data/lib/gooddata/models/links.rb +0 -0
  188. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +0 -0
  189. data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +0 -0
  190. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +0 -0
  191. data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +0 -0
  192. data/lib/gooddata/models/metadata/dashboard/headline_item.rb +0 -0
  193. data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +0 -0
  194. data/lib/gooddata/models/metadata/dashboard/report_item.rb +0 -0
  195. data/lib/gooddata/models/metadata/dashboard/text_item.rb +0 -0
  196. data/lib/gooddata/models/metadata/dashboard_tab.rb +0 -0
  197. data/lib/gooddata/models/metadata/label.rb +0 -0
  198. data/lib/gooddata/models/metadata/metadata.rb +0 -0
  199. data/lib/gooddata/models/metadata/report.rb +10 -0
  200. data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +0 -0
  201. data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +0 -0
  202. data/lib/gooddata/models/models.rb +0 -0
  203. data/lib/gooddata/models/module_constants.rb +0 -0
  204. data/lib/gooddata/models/notification_rule.rb +0 -0
  205. data/lib/gooddata/models/project_log_formatter.rb +0 -0
  206. data/lib/gooddata/models/project_metadata.rb +0 -0
  207. data/lib/gooddata/models/tab_builder.rb +0 -0
  208. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +0 -0
  209. data/lib/gooddata/models/user_filters/user_filter_builder.rb +24 -12
  210. data/lib/gooddata/models/user_filters/user_filters.rb +0 -0
  211. data/lib/gooddata/rest/README.md +0 -0
  212. data/lib/gooddata/rest/connection.rb +15 -3
  213. data/lib/gooddata/rest/object.rb +0 -0
  214. data/lib/gooddata/rest/resource.rb +0 -0
  215. data/lib/gooddata/rest/rest.rb +0 -0
  216. data/lib/gooddata/version.rb +1 -1
  217. data/lib/templates/bricks/brick.rb.erb +0 -0
  218. data/lib/templates/bricks/main.rb.erb +0 -0
  219. data/lib/templates/project/Goodfile.erb +0 -0
  220. data/lib/templates/project/data/commits.csv +0 -0
  221. data/lib/templates/project/data/devs.csv +0 -0
  222. data/lib/templates/project/data/repos.csv +0 -0
  223. data/lib/templates/project/model/model.rb.erb +0 -0
  224. data/spec/.rubocop.yml +0 -0
  225. data/spec/bricks/bricks_spec.rb +0 -0
  226. data/spec/bricks/default-config.json +0 -0
  227. data/spec/data/.gooddata +0 -0
  228. data/spec/data/blueprints/additional_dataset_module.json +0 -0
  229. data/spec/data/blueprints/attribute_sort_order_blueprint.json +0 -0
  230. data/spec/data/blueprints/big_blueprint_not_pruned.json +0 -0
  231. data/spec/data/blueprints/m_n_model.json +0 -0
  232. data/spec/data/blueprints/model_module.json +0 -0
  233. data/spec/data/cc/data/source/commits.csv +0 -0
  234. data/spec/data/cc/data/source/devs.csv +0 -0
  235. data/spec/data/cc/data/source/repos.csv +0 -0
  236. data/spec/data/cc/devel.prm +0 -0
  237. data/spec/data/cc/graph/graph.grf +0 -0
  238. data/spec/data/cc/workspace.prm +0 -0
  239. data/spec/data/column_based_permissions.csv +0 -0
  240. data/spec/data/column_based_permissions2.csv +0 -0
  241. data/spec/data/gd_gse_data_blueprint.json +0 -0
  242. data/spec/data/gd_gse_data_manifest.json +0 -0
  243. data/spec/data/gd_gse_data_model.json +0 -0
  244. data/spec/data/gooddata_version_process/gooddata_version.rb +0 -0
  245. data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
  246. data/spec/data/hello_world_process/hello_world.rb +0 -0
  247. data/spec/data/hello_world_process/hello_world.zip +0 -0
  248. data/spec/data/line_based_permissions.csv +0 -0
  249. data/spec/data/manifests/test_blueprint.json +0 -0
  250. data/spec/data/manifests/test_project.json +0 -0
  251. data/spec/data/reports/left_attr_report.json +0 -0
  252. data/spec/data/reports/metric_only_one_line.json +0 -0
  253. data/spec/data/reports/report_1.json +0 -0
  254. data/spec/data/reports/top_attr_report.json +0 -0
  255. data/spec/data/ruby_params_process/ruby_params.rb +0 -0
  256. data/spec/data/ruby_process/deep_files/deep_stuff.txt +0 -0
  257. data/spec/data/ruby_process/process.rb +0 -0
  258. data/spec/data/ruby_process/stuff.txt +0 -0
  259. data/spec/data/superfluous_titles_view.json +0 -0
  260. data/spec/data/test-ci-data.csv +0 -0
  261. data/spec/data/users.csv +0 -0
  262. data/spec/data/wire_models/attribute_sort_by_model.json +0 -0
  263. data/spec/data/wire_models/model_view.json +0 -0
  264. data/spec/data/wire_models/nu_model.json +0 -0
  265. data/spec/data/wire_test_project.json +0 -0
  266. data/spec/environment/default.rb +0 -0
  267. data/spec/environment/environment.rb +0 -0
  268. data/spec/environment/production.rb +0 -0
  269. data/spec/helpers/blueprint_helper.rb +0 -0
  270. data/spec/helpers/cli_helper.rb +0 -0
  271. data/spec/helpers/connection_helper.rb +0 -0
  272. data/spec/helpers/crypto_helper.rb +0 -0
  273. data/spec/helpers/csv_helper.rb +0 -0
  274. data/spec/helpers/project_helper.rb +13 -0
  275. data/spec/helpers/spec_helper.rb +0 -0
  276. data/spec/integration/blueprint_updates_spec.rb +0 -0
  277. data/spec/integration/blueprint_with_grain_spec.rb +0 -0
  278. data/spec/integration/channel_configuration_spec.rb +0 -0
  279. data/spec/integration/command_projects_spec.rb +0 -0
  280. data/spec/integration/create_project_spec.rb +0 -0
  281. data/spec/integration/deprecated_load_spec.rb +0 -0
  282. data/spec/integration/full_project_spec.rb +3 -5
  283. data/spec/integration/models/metadata/report_spec.rb +54 -0
  284. data/spec/integration/over_to_user_filters_spec.rb +0 -0
  285. data/spec/integration/partial_md_export_import_spec.rb +0 -0
  286. data/spec/integration/rest_spec.rb +0 -0
  287. data/spec/integration/schedule_spec.rb +0 -0
  288. data/spec/integration/user_group_spec.rb +0 -0
  289. data/spec/logging_in_logging_out_spec.rb +0 -0
  290. data/spec/unit/actions/collect_data_product_spec.rb +9 -17
  291. data/spec/unit/actions/collect_users_brick_users_spec.rb +36 -0
  292. data/spec/unit/actions/shared_examples_for_user_actions.rb +17 -1
  293. data/spec/unit/actions/synchronize_user_filters_spec.rb +5 -1
  294. data/spec/unit/actions/synchronize_users_spec.rb +64 -6
  295. data/spec/unit/bricks/bricks_spec.rb +0 -0
  296. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +0 -0
  297. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +0 -0
  298. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +0 -0
  299. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +0 -0
  300. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +0 -0
  301. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +0 -0
  302. data/spec/unit/cli/cli_spec.rb +0 -0
  303. data/spec/unit/cli/commands/cmd_auth_spec.rb +0 -0
  304. data/spec/unit/core/nil_logger_spec.rb +0 -0
  305. data/spec/unit/extensions/hash_spec.rb +0 -0
  306. data/spec/unit/godzilla/goodzilla_spec.rb +0 -0
  307. data/spec/unit/helpers/csv_helper_spec.rb +0 -0
  308. data/spec/unit/lcm/user_bricks_helper_spec.rb +58 -0
  309. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +0 -0
  310. data/spec/unit/models/blueprint/attributes_spec.rb +0 -0
  311. data/spec/unit/models/blueprint/dataset_spec.rb +0 -0
  312. data/spec/unit/models/blueprint/labels_spec.rb +0 -0
  313. data/spec/unit/models/blueprint/reference_spec.rb +0 -0
  314. data/spec/unit/models/blueprint/schema_builder_spec.rb +0 -0
  315. data/spec/unit/models/blueprint/to_wire_spec.rb +0 -0
  316. data/spec/unit/models/execution_spec.rb +0 -0
  317. data/spec/unit/models/from_wire_spec.rb +0 -0
  318. data/spec/unit/models/metric_spec.rb +0 -0
  319. data/spec/unit/models/model_spec.rb +0 -0
  320. data/spec/unit/models/report_result_data_spec.rb +0 -0
  321. data/spec/unit/models/user_filters/user_filter_builder_spec.rb +110 -0
  322. data/spec/unit/models/user_filters_spec.rb +0 -0
  323. data/spec/unit/models/variable_spec.rb +0 -0
  324. data/spec/unit/rest/resource_spec.rb +0 -0
  325. metadata +148 -94
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 83f988e424e03c5ef86612b386366b1d30969b414ea4f523a893da381a6ff925
4
- data.tar.gz: b4568e0f4741ffeabfa6b52805800f0b95f803550b72bd65532cefc8bc6fc740
2
+ SHA1:
3
+ metadata.gz: 9408b0739864f2bccdff5fadf792f65cd1e9e1cb
4
+ data.tar.gz: 51ec5d63f27c2f6b4e09456a406ef07a1d0297f6
5
5
  SHA512:
6
- metadata.gz: 14e02a69965ab34c0975f6030543304bfc10460b948dfdc35158ed5c4d89e2beb899933d921db7b156ed4a7b60e8b9aac5ddd4d12c8ebe8b5add3e7210accd54
7
- data.tar.gz: 8ecd6f9d5da4d24de8ddb45004fd86099003ba774a65d25e98195905ff69fe50a8f17fb98637df06e13e15a62a3b10df5f1f3aaaaa8dc12f6c3acdace8f3fda0
6
+ metadata.gz: 8c6aaaa625353dafd2c2cb4d5b97af9c46bb38628583af3e23b39b46e2a37e6070f043406d337543eb1b866cdc568247da5b5c27ac0144f3dcf89e25fbc952f4
7
+ data.tar.gz: 68d49617d6e403a1e0f3b6023b61ae6e17f97974347af684010ae412ed56b2c09e15ab86ff889941314eec740a6d5a567da0a3f70adadd972b55bcb7f90a818d
data/.document CHANGED
File without changes
data/.editorconfig CHANGED
File without changes
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - 2.2
6
+ - jruby-9.1.7
7
+
8
+ script:
9
+ - bundle exec rake test:unit
data/.yardopts CHANGED
File without changes
data/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
1
  # GoodData Ruby SDK Changelog
2
+ ## 1.0.0
3
+ - TMA-575: Add support for raw export-report API
4
+ - TMA-738: Update highline to v2
5
+ - TMA-711: segments filter works correctly in users brick
6
+ - TMA-662: Users Brick passes with empty input source
7
+ - Rename travis.yml to .travis.yml
8
+
2
9
  ## 0.6.54
3
10
  - Generating changelog automatically from git
4
11
  - Fix resolving dataproduct
data/CLI.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/Guardfile CHANGED
File without changes
data/LICENSE CHANGED
File without changes
data/LICENSE.rb CHANGED
File without changes
data/TODO.md CHANGED
File without changes
File without changes
data/gooddata.gemspec CHANGED
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
54
54
  s.add_dependency 'gli', '~> 2.15'
55
55
  s.add_dependency 'gooddata_datawarehouse' if RUBY_PLATFORM == 'java'
56
56
  s.add_dependency 'gooddata-dss-jdbc', '0.1.12' if RUBY_PLATFORM == 'java'
57
- s.add_dependency 'highline', '~> 1.7'
57
+ s.add_dependency 'highline', '= 2.0.0.pre.develop.14'
58
58
  s.add_dependency 'json_pure', '~> 1.8'
59
59
  s.add_dependency 'multi_json', '~> 1.12'
60
60
  s.add_dependency 'parseconfig', '~> 1.0'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -31,18 +31,13 @@ module GoodData
31
31
  domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
32
32
 
33
33
  if params.key?(:data_product)
34
- begin
35
- data_product = domain.data_products(params.data_product)
36
- rescue RestClient::BadRequest
37
- fail 'the specified DataProduct does not exist'
38
- end
34
+ data_product_id = params.data_product
39
35
  else
40
- params.gdc_logger.info 'Please specify the data_product parameter when using the brick - trying to find a fallback'
41
- data_products = domain.data_products(:all)
42
- fail 'No data_product parameter specified - unable to fallback to a default' if data_products.length > 1 || data_products.empty?
43
- data_product = data_products.first
36
+ params.gdc_logger.info "Using data product 'default' since none was specified in brick parameters"
37
+ data_product_id = 'default'
44
38
  end
45
39
 
40
+ data_product = domain.data_products(data_product_id)
46
41
  results = [
47
42
  {
48
43
  data_product: data_product
@@ -51,7 +51,8 @@ module GoodData
51
51
  segment_id: segment.segment_id,
52
52
  development_pid: project.pid,
53
53
  driver: project.driver.downcase,
54
- master_name: project.title
54
+ master_name: project.title,
55
+ uri: segment.uri
55
56
  }
56
57
  end
57
58
 
@@ -0,0 +1,46 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
+ # This source code is licensed under the BSD-style license found in the
5
+ # LICENSE file in the root directory of this source tree.
6
+
7
+ require_relative 'base_action'
8
+
9
+ module GoodData
10
+ module LCM2
11
+ class CollectUsersBrickUsers < BaseAction
12
+ DESCRIPTION = 'Enriches parameters with users from the Users Brick input.'
13
+
14
+ PARAMS = define_params(self) do
15
+ description 'Input source of the Users Brick. Needed to prevent ' \
16
+ 'deletion of filters for a user that is to be removed.'
17
+ param :users_brick_config, instance_of(Type::UsersBrickConfig), required: true
18
+ end
19
+
20
+ class << self
21
+ def call(params)
22
+ users_brick_users = []
23
+ login_column = params.users_brick_config.login_column || 'login'
24
+ users_brick_data_source = GoodData::Helpers::DataSource.new(params.users_brick_config.input_source)
25
+ users_brick_data_source_file = File.open(
26
+ users_brick_data_source.realize(params),
27
+ 'r:UTF-8'
28
+ )
29
+ CSV.foreach(users_brick_data_source_file,
30
+ headers: true,
31
+ return_headers: false,
32
+ encoding: 'utf-8') do |row|
33
+ users_brick_users << { login: row[login_column] }
34
+ end
35
+
36
+ {
37
+ results: users_brick_users,
38
+ params: {
39
+ users_brick_users: users_brick_users
40
+ }
41
+ }
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -87,7 +87,8 @@ module GoodData
87
87
  ignore_missing_values: params.ignore_missing_values == 'true',
88
88
  do_not_touch_filters_that_are_not_mentioned: params.do_not_touch_filters_that_are_not_mentioned == 'true',
89
89
  domain: domain,
90
- dry_run: false
90
+ dry_run: false,
91
+ users_brick_input: params.users_brick_users
91
92
  }
92
93
 
93
94
  puts "Synchronizing in mode \"#{mode}\""
@@ -118,21 +119,7 @@ module GoodData
118
119
  project.add_data_permissions(filters_to_load, run_params)
119
120
  end
120
121
  when 'sync_one_project_based_on_custom_id'
121
- md = project.metadata
122
- goodot_id = md['GOODOT_CUSTOM_PROJECT_ID'].to_s
123
-
124
- client = domain.clients(:all, data_product).find { |c| c.project_uri == project.uri }
125
- if goodot_id.empty? && client.nil?
126
- fail "Project \"#{project.pid}\" metadata does not contain key GOODOT_CUSTOM_PROJECT_ID neither is it mapped \
127
- to a client_id in LCM metadata. We are unable to get the values for user filters."
128
- end
129
-
130
- unless goodot_id.empty? || client.nil? || (goodot_id == client.id)
131
- fail "GOODOT_CUSTOM_PROJECT_ID metadata key is provided for project \"#{project.pid}\" but doesn't match \
132
- client id assigned to the project in LCM metadata. Please resolve the conflict."
133
- end
134
-
135
- filter_value = goodot_id.empty? ? client.id : goodot_id
122
+ filter_value = UserBricksHelper.resolve_client_id(domain, project, data_product)
136
123
 
137
124
  filepath = File.open(data_source.realize(params), 'r:UTF-8')
138
125
  CSV.foreach(filepath, headers: csv_with_headers, return_headers: false, encoding: 'utf-8') do |row|
@@ -166,10 +153,9 @@ module GoodData
166
153
  end
167
154
 
168
155
  domain_clients = domain.clients(:all, data_product)
169
- params.segments_filter ||= params.segments_filter
170
- if params.segments_filter
171
- segments_filter = params.segments_filter.map { |seg| "/gdc/domains/#{domain.name}/segments/#{seg}" }
172
- domain_clients.select! { |c| segments_filter.include?(c.segment_uri) }
156
+ if params.segments
157
+ segment_uris = params.segments.map(&:uri)
158
+ domain_clients = domain_clients.select { |c| segment_uris.include?(c.segment_uri) }
173
159
  end
174
160
 
175
161
  working_client_ids = []
@@ -177,8 +163,8 @@ module GoodData
177
163
  filters.group_by { |u| u[multiple_projects_column] }.flat_map do |client_id, new_filters|
178
164
  fail "Client id cannot be empty" if client_id.blank?
179
165
  c = domain.clients(client_id, data_product)
180
- if params.segments_filter && !segments_filter.include?(c.segment_uri)
181
- puts "Client #{client_id} is outside segments_filter #{params.segments_filter}"
166
+ if params.segments && !segment_uris.include?(c.segment_uri)
167
+ puts "Client #{client_id} is outside segments_filter #{params.segments}"
182
168
  next
183
169
  end
184
170
  project = c.project
@@ -5,6 +5,7 @@
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
7
  require_relative 'base_action'
8
+ require_relative '../user_bricks_helper'
8
9
 
9
10
  module GoodData
10
11
  module LCM2
@@ -125,18 +126,21 @@ module GoodData
125
126
  do_not_touch_users_that_are_not_mentioned: do_not_touch_users_that_are_not_mentioned,
126
127
  create_non_existing_user_groups: create_non_existing_user_groups)
127
128
  when 'sync_one_project_based_on_custom_id'
128
- md = project.metadata
129
- goodot_id = md['GOODOT_CUSTOM_PROJECT_ID'].to_s
129
+ filter_value = UserBricksHelper.resolve_client_id(domain, project, data_product)
130
130
 
131
131
  filtered_users = new_users.select do |u|
132
132
  fail "Column for determining the project assignement is empty for \"#{u[:login]}\"" if u[:pid].blank?
133
133
  client_id = u[:pid].to_s
134
- (goodot_id && client_id == goodot_id) || domain.clients(client_id, data_product).project_uri == project.uri
134
+ client_id == filter_value
135
135
  end
136
136
 
137
137
  if filtered_users.empty?
138
- fail "Project \"#{project.pid}\" does not match with any client ids in input source (both GOODOT_CUSTOM_PROJECT_ID and SEGMENT/CLIENT). \
139
- We are unable to get the value to filter users."
138
+ params.gdc_logger.warn(
139
+ "Project \"#{project.pid}\" does not match " \
140
+ "any client ids in input source (both " \
141
+ "GOODOT_CUSTOM_PROJECT_ID and SEGMENT/CLIENT). " \
142
+ "We are unable to get the value to filter users."
143
+ )
140
144
  end
141
145
 
142
146
  puts "Project #{project.pid} will receive #{filtered_users.count} from #{new_users.count} users"
@@ -168,11 +172,19 @@ module GoodData
168
172
  end
169
173
  when 'sync_domain_client_workspaces'
170
174
  domain_clients = domain.clients(:all, data_product)
175
+ if params.segments
176
+ segment_uris = params.segments.map(&:uri)
177
+ domain_clients = domain_clients.select { |c| segment_uris.include?(c.segment_uri) }
178
+ end
171
179
  working_client_ids = []
172
180
  res = []
173
181
  res += new_users.group_by { |u| u[:pid] }.flat_map do |client_id, users|
174
182
  fail "Client id cannot be empty" if client_id.blank?
175
183
  c = domain.clients(client_id, data_product)
184
+ if params.segments && !segment_uris.include?(c.segment_uri)
185
+ puts "Client #{client_id} is outside segments_filter #{params.segments}"
186
+ next
187
+ end
176
188
  project = c.project
177
189
  fail "Client #{client_id} does not have project." unless project
178
190
  working_client_ids << client_id.to_s