goe-framework 1.0.6__tar.gz → 1.0.6.dev0__tar.gz

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.
Files changed (244) hide show
  1. {goe_framework-1.0.6/src/goe_framework.egg-info → goe_framework-1.0.6.dev0}/PKG-INFO +21 -13
  2. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/README.md +20 -12
  3. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/pyproject.toml +1 -1
  4. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/config_validation_functions.py +0 -52
  5. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/orchestration_config.py +0 -37
  6. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/orchestration_defaults.py +0 -39
  7. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/goe.py +10 -100
  8. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/orchestration.py +0 -16
  9. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/backend_api.py +4 -0
  10. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/backend_table.py +1 -49
  11. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/bigquery/bigquery_backend_api.py +4 -0
  12. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/bigquery/bigquery_backend_table.py +0 -25
  13. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/backend_table_factory.py +0 -6
  14. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hadoop_backend_table.py +0 -25
  15. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hive_backend_table.py +0 -2
  16. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/impala_backend_table.py +3 -5
  17. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_backend_table.py +0 -25
  18. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload.py +1 -5
  19. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_constants.py +2 -1
  20. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_metadata_functions.py +0 -1
  21. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/sort_columns.py +36 -26
  22. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/transport.py +1 -13
  23. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/snowflake/snowflake_backend_table.py +0 -2
  24. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/orchestration_runner.py +5 -1
  25. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0/src/goe_framework.egg-info}/PKG-INFO +21 -13
  26. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe_framework.egg-info/SOURCES.txt +0 -5
  27. goe_framework-1.0.6/src/goe/data_governance/cloudera_navigator.py +0 -845
  28. goe_framework-1.0.6/src/goe/data_governance/hadoop_data_governance.py +0 -616
  29. goe_framework-1.0.6/src/goe/data_governance/hadoop_data_governance_constants.py +0 -90
  30. goe_framework-1.0.6/src/goe/data_governance/hadoop_data_governance_interface.py +0 -209
  31. goe_framework-1.0.6/src/goe/util/__init__.py +0 -0
  32. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/AUTHORS +0 -0
  33. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/LICENSE +0 -0
  34. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/setup.cfg +0 -0
  35. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/__init__.py +0 -0
  36. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/conductor/__init__.py +0 -0
  37. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/conductor/hybrid_view_service.py +0 -0
  38. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/__init__.py +0 -0
  39. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/config_file.py +0 -0
  40. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/config/option_descriptions.py +0 -0
  41. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/__init__.py +0 -0
  42. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect.py +0 -0
  43. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect_backend.py +0 -0
  44. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect_constants.py +0 -0
  45. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect_frontend.py +0 -0
  46. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect_functions.py +0 -0
  47. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/connect/connect_transport.py +0 -0
  48. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/exceptions.py +0 -0
  49. {goe_framework-1.0.6/src/goe/data_governance → goe_framework-1.0.6.dev0/src/goe/filesystem}/__init__.py +0 -0
  50. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/cli_hdfs.py +0 -0
  51. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/goe_azure.py +0 -0
  52. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/goe_dfs.py +0 -0
  53. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/goe_dfs_factory.py +0 -0
  54. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/goe_gcs.py +0 -0
  55. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/goe_s3.py +0 -0
  56. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/filesystem/web_hdfs.py +0 -0
  57. {goe_framework-1.0.6/src/goe/filesystem → goe_framework-1.0.6.dev0/src/goe/listener}/__init__.py +0 -0
  58. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/__main__.py +0 -0
  59. {goe_framework-1.0.6/src/goe/listener → goe_framework-1.0.6.dev0/src/goe/listener/api}/__init__.py +0 -0
  60. {goe_framework-1.0.6/src/goe/listener/api → goe_framework-1.0.6.dev0/src/goe/listener/api/routes}/__init__.py +0 -0
  61. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/api/routes/docs.py +0 -0
  62. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/api/routes/orchestration.py +0 -0
  63. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/api/routes/system.py +0 -0
  64. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/asgi.py +0 -0
  65. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/config/__init__.py +0 -0
  66. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/config/application.py +0 -0
  67. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/config/gunicorn.conf.py +0 -0
  68. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/config/logging.py +0 -0
  69. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/config/router.py +0 -0
  70. {goe_framework-1.0.6/src/goe/listener/api/routes → goe_framework-1.0.6.dev0/src/goe/listener/core}/__init__.py +0 -0
  71. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/enum.py +0 -0
  72. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/events.py +0 -0
  73. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/middleware/__init__.py +0 -0
  74. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/middleware/compression.py +0 -0
  75. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/middleware/cors.py +0 -0
  76. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/middleware/secure_headers.py +0 -0
  77. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/security.py +0 -0
  78. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/core/worker.py +0 -0
  79. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/exceptions/__init__.py +0 -0
  80. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/exceptions/base.py +0 -0
  81. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/exceptions/errors.py +0 -0
  82. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/heartbeat.py +0 -0
  83. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/prestart.py +0 -0
  84. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/__init__.py +0 -0
  85. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/base.py +0 -0
  86. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/error.py +0 -0
  87. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/generics.py +0 -0
  88. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/schemas/system.py +0 -0
  89. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/__init__.py +0 -0
  90. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/heartbeat.py +0 -0
  91. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/hybrid_view.py +0 -0
  92. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/orchestrate.py +0 -0
  93. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/periodic_tasks.py +0 -0
  94. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/services/system.py +0 -0
  95. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/__init__.py +0 -0
  96. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/cache.py +0 -0
  97. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/group_by.py +0 -0
  98. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/orchestrate.py +0 -0
  99. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/ping.py +0 -0
  100. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/utils/system.py +0 -0
  101. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/worker.py +0 -0
  102. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/listener/wsgi.py +0 -0
  103. {goe_framework-1.0.6/src/goe/listener/core → goe_framework-1.0.6.dev0/src/goe/offload}/__init__.py +0 -0
  104. {goe_framework-1.0.6/src/goe/offload → goe_framework-1.0.6.dev0/src/goe/offload/bigquery}/__init__.py +0 -0
  105. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/bigquery/bigquery_column.py +0 -0
  106. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/bigquery/bigquery_literal.py +0 -0
  107. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/bigquery/bigquery_predicate.py +0 -0
  108. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/column_metadata.py +0 -0
  109. {goe_framework-1.0.6/src/goe/offload/bigquery → goe_framework-1.0.6.dev0/src/goe/offload/factory}/__init__.py +0 -0
  110. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/backend_api_factory.py +0 -0
  111. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/frontend_api_factory.py +0 -0
  112. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/offload_source_table_factory.py +0 -0
  113. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/offload_transport_factory.py +0 -0
  114. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/offload_transport_rdbms_api_factory.py +0 -0
  115. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/query_import_factory.py +0 -0
  116. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/factory/staging_file_factory.py +0 -0
  117. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/format_literal.py +0 -0
  118. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/frontend_api.py +0 -0
  119. {goe_framework-1.0.6/src/goe/offload/factory → goe_framework-1.0.6.dev0/src/goe/offload/hadoop}/__init__.py +0 -0
  120. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hadoop_backend_api.py +0 -0
  121. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hadoop_column.py +0 -0
  122. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hadoop_predicate.py +0 -0
  123. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hive_backend_api.py +0 -0
  124. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/hive_literal.py +0 -0
  125. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/impala_backend_api.py +0 -0
  126. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/impala_literal.py +0 -0
  127. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/hadoop/sqoop_offload_transport.py +0 -0
  128. {goe_framework-1.0.6/src/goe/offload/hadoop → goe_framework-1.0.6.dev0/src/goe/offload/microsoft}/__init__.py +0 -0
  129. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/mssql_column.py +0 -0
  130. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/mssql_frontend_api.py +0 -0
  131. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/mssql_offload_source_table.py +0 -0
  132. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/mssql_offload_transport_rdbms_api.py +0 -0
  133. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_backend_api.py +0 -0
  134. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_column.py +0 -0
  135. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_constants.py +0 -0
  136. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_literal.py +0 -0
  137. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/microsoft/synapse_predicate.py +0 -0
  138. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_functions.py +0 -0
  139. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_messages.py +0 -0
  140. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_source_data.py +0 -0
  141. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_source_table.py +0 -0
  142. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_status_report.py +0 -0
  143. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_transport.py +0 -0
  144. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_transport_functions.py +0 -0
  145. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_transport_rdbms_api.py +0 -0
  146. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_validation.py +0 -0
  147. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/offload_xform_functions.py +0 -0
  148. {goe_framework-1.0.6/src/goe/offload/microsoft → goe_framework-1.0.6.dev0/src/goe/offload/operation}/__init__.py +0 -0
  149. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/data_type_controls.py +0 -0
  150. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/ddl_file.py +0 -0
  151. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/not_null_columns.py +0 -0
  152. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/partition_controls.py +0 -0
  153. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/stats_controls.py +0 -0
  154. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/operation/table_structure_checks.py +0 -0
  155. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/option_validation.py +0 -0
  156. {goe_framework-1.0.6/src/goe/offload/operation → goe_framework-1.0.6.dev0/src/goe/offload/oracle}/__init__.py +0 -0
  157. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_column.py +0 -0
  158. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_frontend_api.py +0 -0
  159. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_literal.py +0 -0
  160. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_offload_source_table.py +0 -0
  161. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_offload_transport_rdbms_api.py +0 -0
  162. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/oracle/oracle_predicate.py +0 -0
  163. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/predicate_offload.py +0 -0
  164. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/query_import_interface.py +0 -0
  165. {goe_framework-1.0.6/src/goe/offload/oracle → goe_framework-1.0.6.dev0/src/goe/offload/snowflake}/__init__.py +0 -0
  166. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/snowflake/snowflake_backend_api.py +0 -0
  167. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/snowflake/snowflake_column.py +0 -0
  168. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/snowflake/snowflake_literal.py +0 -0
  169. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/snowflake/snowflake_predicate.py +0 -0
  170. {goe_framework-1.0.6/src/goe/offload/snowflake → goe_framework-1.0.6.dev0/src/goe/offload/spark}/__init__.py +0 -0
  171. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/spark/dataproc_offload_transport.py +0 -0
  172. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/spark/livy_offload_transport.py +0 -0
  173. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/spark/offload_transport_livy_requests.py +0 -0
  174. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/spark/pyspark_literal.py +0 -0
  175. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/spark/spark_thrift_backend_api.py +0 -0
  176. {goe_framework-1.0.6/src/goe/offload/spark → goe_framework-1.0.6.dev0/src/goe/offload/staging}/__init__.py +0 -0
  177. {goe_framework-1.0.6/src/goe/offload/staging → goe_framework-1.0.6.dev0/src/goe/offload/staging/avro}/__init__.py +0 -0
  178. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/staging/avro/avro_column.py +0 -0
  179. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/staging/avro/avro_staging_file.py +0 -0
  180. {goe_framework-1.0.6/src/goe/offload/staging/avro → goe_framework-1.0.6.dev0/src/goe/offload/staging/parquet}/__init__.py +0 -0
  181. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/staging/parquet/parquet_column.py +0 -0
  182. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/staging/parquet/parquet_staging_file.py +0 -0
  183. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/staging/staging_file.py +0 -0
  184. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/synthetic_partition_literal.py +0 -0
  185. {goe_framework-1.0.6/src/goe/offload/staging/parquet → goe_framework-1.0.6.dev0/src/goe/offload/teradata}/__init__.py +0 -0
  186. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_column.py +0 -0
  187. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_frontend_api.py +0 -0
  188. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_literal.py +0 -0
  189. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_offload_source_table.py +0 -0
  190. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_offload_transport_rdbms_api.py +0 -0
  191. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_partition_expression.py +0 -0
  192. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/offload/teradata/teradata_predicate.py +0 -0
  193. {goe_framework-1.0.6/src/goe/offload/teradata → goe_framework-1.0.6.dev0/src/goe/orchestration}/__init__.py +0 -0
  194. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/cli_entry_points.py +0 -0
  195. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/command_steps.py +0 -0
  196. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/execution_id.py +0 -0
  197. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/orchestration_constants.py +0 -0
  198. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/orchestration/orchestration_lock.py +0 -0
  199. {goe_framework-1.0.6/src/goe/orchestration → goe_framework-1.0.6.dev0/src/goe/persistence}/__init__.py +0 -0
  200. {goe_framework-1.0.6/src/goe/persistence → goe_framework-1.0.6.dev0/src/goe/persistence/factory}/__init__.py +0 -0
  201. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/persistence/factory/orchestration_repo_client_factory.py +0 -0
  202. {goe_framework-1.0.6/src/goe/persistence/factory → goe_framework-1.0.6.dev0/src/goe/persistence/oracle}/__init__.py +0 -0
  203. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/persistence/oracle/oracle_orchestration_repo_client.py +0 -0
  204. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/persistence/orchestration_metadata.py +0 -0
  205. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/persistence/orchestration_repo_client.py +0 -0
  206. {goe_framework-1.0.6/src/goe/persistence/oracle → goe_framework-1.0.6.dev0/src/goe/persistence/teradata}/__init__.py +0 -0
  207. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/persistence/teradata/teradata_orchestration_repo_client.py +0 -0
  208. {goe_framework-1.0.6/src/goe/persistence/teradata → goe_framework-1.0.6.dev0/src/goe/schema_sync}/__init__.py +0 -0
  209. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync.py +0 -0
  210. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync_analyzer.py +0 -0
  211. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync_command_file.py +0 -0
  212. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync_constants.py +0 -0
  213. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync_processor.py +0 -0
  214. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/schema_sync_step.py +0 -0
  215. {goe_framework-1.0.6/src/goe/schema_sync → goe_framework-1.0.6.dev0/src/goe/schema_sync/steps}/__init__.py +0 -0
  216. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/steps/add_backend_column.py +0 -0
  217. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/steps/add_oracle_column.py +0 -0
  218. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/schema_sync/steps/step_builder.py +0 -0
  219. {goe_framework-1.0.6/src/goe/schema_sync/steps → goe_framework-1.0.6.dev0/src/goe/scripts}/__init__.py +0 -0
  220. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/scripts/agg_validate.py +0 -0
  221. {goe_framework-1.0.6/src/goe/scripts → goe_framework-1.0.6.dev0/src/goe/util}/__init__.py +0 -0
  222. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/avro_encoder.py +0 -0
  223. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/better_impyla.py +0 -0
  224. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/exception_trigger.py +0 -0
  225. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/goe_log.py +0 -0
  226. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/goe_log_fh.py +0 -0
  227. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/goe_version.py +0 -0
  228. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/hive_ddl_transform.py +0 -0
  229. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/hive_table_stats.py +0 -0
  230. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/hs2_connection.py +0 -0
  231. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/json_tools.py +0 -0
  232. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/local_cache.py +0 -0
  233. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/misc_functions.py +0 -0
  234. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/ora_query.py +0 -0
  235. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/parallel_exec.py +0 -0
  236. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/parquet_encoder.py +0 -0
  237. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/password_tools.py +0 -0
  238. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/polling_thread.py +0 -0
  239. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/redis_tools.py +0 -0
  240. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/retry_logic.py +0 -0
  241. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe/util/simple_timer.py +0 -0
  242. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe_framework.egg-info/dependency_links.txt +0 -0
  243. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe_framework.egg-info/requires.txt +0 -0
  244. {goe_framework-1.0.6 → goe_framework-1.0.6.dev0}/src/goe_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: goe-framework
3
- Version: 1.0.6
3
+ Version: 1.0.6.dev0
4
4
  Maintainer-email: Neil Johnson <neiljohnson@google.com>
5
5
  Project-URL: Homepage, https://github.com/gluent/goe
6
6
  Project-URL: Issues, https://github.com/gluent/goe/issues
@@ -77,9 +77,9 @@ At present GOE is a command line tool. Alongside installing the Python package w
77
77
  # Offload Home
78
78
  In addition to the GOE software we need a supporting directory tree called the Offload Home. This is identified using the `OFFLOAD_HOME` environment variable. In this directory we keep configuration files, logs and the GOE software if you choose not to run scripts directly out of the cloned repo. Offload Home will also typically contain a Python virtual environment into which the GOE package and dependencies will be installed, you can run these out of the repository directory but, for separation of duties purposes, may choose to keep the source code away from users of the tool.
79
79
 
80
- # Installation from a package
80
+ # Installation From a Package
81
81
 
82
- ## Installing the GOE Python package
82
+ ## Installing the GOE Python Package
83
83
  1) Copy the package to the target host, this may not be the same host the repository was cloned to.
84
84
  2) Create the Offload Home directory, for example:
85
85
  ```
@@ -98,12 +98,17 @@ python3 -m venv .venv && . .venv/bin/activate
98
98
  5) Install the GOE Python package:
99
99
  ```
100
100
  cd $OFFLOAD_HOME
101
- GOE_WHEEL="goe_framework-$(cat version | tr 'A-Z-' 'a-z.')0-py3-none-any.whl"
101
+ python3 -m pip install goe-framework==<goe-version>
102
+ ```
103
+ or use the bundled wheel file:
104
+ ```
105
+ cd $OFFLOAD_HOME
106
+ GOE_WHEEL="goe_framework-<goe-version>-py3-none-any.whl"
102
107
  python3 -m pip install lib/${GOE_WHEEL}
103
108
  ```
104
109
 
105
- ## Configuration file
106
- Create `offload.env` in the Offload Home, this file contains the necessary configuration specific to your environment:
110
+ ## Configuration File
111
+ Create `offload.env` in the Offload Home. This file contains the necessary configuration specific to your environment:
107
112
  ```
108
113
  cp ${OFFLOAD_HOME}/conf/oracle-bigquery-offload.env.template ${OFFLOAD_HOME}/conf/offload.env
109
114
  vi ${OFFLOAD_HOME}/conf/offload.env
@@ -129,7 +134,7 @@ If using Dataproc Batches to provide Spark:
129
134
  - GOOGLE_DATAPROC_REGION
130
135
  - GOOGLE_DATAPROC_BATCHES_SUBNET
131
136
 
132
- ## Install database objects
137
+ ## Install Database Objects
133
138
  To install supporting database objects you need access to a database admin account that can create users, grant them system privileges and create objects in the schemas created. SYSTEM has been used in the example below but this is *not* a necessity:
134
139
  ```
135
140
  cd ${OFFLOAD_HOME}/setup
@@ -143,11 +148,11 @@ alter user goe_adm identified by ...;
143
148
  alter user goe_app identified by ...;
144
149
  ```
145
150
 
146
- # Building a custom package
151
+ # Building a Custom Package
147
152
 
148
- If you want to test with the latest commits that have not yet been included in a Github release you can build a custom package from the repository.
153
+ If you want to test with the latest commits that have not yet been included in a GitHub release you can build a custom package from the repository.
149
154
 
150
- ## Prepare the host/cloned repository
155
+ ## Prepare the Host/Cloned Repository
151
156
  Debian prerequisites:
152
157
  ```
153
158
  sudo apt-get -y install make python3-venv
@@ -166,13 +171,13 @@ curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64
166
171
  . ~/.bash_profile
167
172
  ```
168
173
 
169
- ## Make a GOE package
174
+ ## Make a GOE Package
170
175
  To create a package which contains all required artifacts for running GOE commands use the `make` target below:
171
176
  ```
172
177
  make clean && make package
173
178
  ```
174
179
 
175
- # Install for development
180
+ # Install for Development
176
181
  To create a Python virtual environment and install all required dependencies into the repository directory:
177
182
  ```
178
183
  make clean && make install-dev
@@ -187,7 +192,10 @@ Note only the Python dependencies for Oracle and BigQuery are installed by defau
187
192
  make install-dev-extras
188
193
  ```
189
194
 
190
- # Running commands
195
+ # Supporting Infrastructure
196
+ GOE requires access to cloud storage and Spark. For a Google Cloud installation this is described here: [Google Cloud Platform Setup for a BigQuery Target](docs/gcp_setup.md)
197
+
198
+ # Running Commands
191
199
  Activate the GOE Python virtual environment:
192
200
  ```
193
201
  source ./.venv/bin/activate
@@ -7,9 +7,9 @@ At present GOE is a command line tool. Alongside installing the Python package w
7
7
  # Offload Home
8
8
  In addition to the GOE software we need a supporting directory tree called the Offload Home. This is identified using the `OFFLOAD_HOME` environment variable. In this directory we keep configuration files, logs and the GOE software if you choose not to run scripts directly out of the cloned repo. Offload Home will also typically contain a Python virtual environment into which the GOE package and dependencies will be installed, you can run these out of the repository directory but, for separation of duties purposes, may choose to keep the source code away from users of the tool.
9
9
 
10
- # Installation from a package
10
+ # Installation From a Package
11
11
 
12
- ## Installing the GOE Python package
12
+ ## Installing the GOE Python Package
13
13
  1) Copy the package to the target host, this may not be the same host the repository was cloned to.
14
14
  2) Create the Offload Home directory, for example:
15
15
  ```
@@ -28,12 +28,17 @@ python3 -m venv .venv && . .venv/bin/activate
28
28
  5) Install the GOE Python package:
29
29
  ```
30
30
  cd $OFFLOAD_HOME
31
- GOE_WHEEL="goe_framework-$(cat version | tr 'A-Z-' 'a-z.')0-py3-none-any.whl"
31
+ python3 -m pip install goe-framework==<goe-version>
32
+ ```
33
+ or use the bundled wheel file:
34
+ ```
35
+ cd $OFFLOAD_HOME
36
+ GOE_WHEEL="goe_framework-<goe-version>-py3-none-any.whl"
32
37
  python3 -m pip install lib/${GOE_WHEEL}
33
38
  ```
34
39
 
35
- ## Configuration file
36
- Create `offload.env` in the Offload Home, this file contains the necessary configuration specific to your environment:
40
+ ## Configuration File
41
+ Create `offload.env` in the Offload Home. This file contains the necessary configuration specific to your environment:
37
42
  ```
38
43
  cp ${OFFLOAD_HOME}/conf/oracle-bigquery-offload.env.template ${OFFLOAD_HOME}/conf/offload.env
39
44
  vi ${OFFLOAD_HOME}/conf/offload.env
@@ -59,7 +64,7 @@ If using Dataproc Batches to provide Spark:
59
64
  - GOOGLE_DATAPROC_REGION
60
65
  - GOOGLE_DATAPROC_BATCHES_SUBNET
61
66
 
62
- ## Install database objects
67
+ ## Install Database Objects
63
68
  To install supporting database objects you need access to a database admin account that can create users, grant them system privileges and create objects in the schemas created. SYSTEM has been used in the example below but this is *not* a necessity:
64
69
  ```
65
70
  cd ${OFFLOAD_HOME}/setup
@@ -73,11 +78,11 @@ alter user goe_adm identified by ...;
73
78
  alter user goe_app identified by ...;
74
79
  ```
75
80
 
76
- # Building a custom package
81
+ # Building a Custom Package
77
82
 
78
- If you want to test with the latest commits that have not yet been included in a Github release you can build a custom package from the repository.
83
+ If you want to test with the latest commits that have not yet been included in a GitHub release you can build a custom package from the repository.
79
84
 
80
- ## Prepare the host/cloned repository
85
+ ## Prepare the Host/Cloned Repository
81
86
  Debian prerequisites:
82
87
  ```
83
88
  sudo apt-get -y install make python3-venv
@@ -96,13 +101,13 @@ curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64
96
101
  . ~/.bash_profile
97
102
  ```
98
103
 
99
- ## Make a GOE package
104
+ ## Make a GOE Package
100
105
  To create a package which contains all required artifacts for running GOE commands use the `make` target below:
101
106
  ```
102
107
  make clean && make package
103
108
  ```
104
109
 
105
- # Install for development
110
+ # Install for Development
106
111
  To create a Python virtual environment and install all required dependencies into the repository directory:
107
112
  ```
108
113
  make clean && make install-dev
@@ -117,7 +122,10 @@ Note only the Python dependencies for Oracle and BigQuery are installed by defau
117
122
  make install-dev-extras
118
123
  ```
119
124
 
120
- # Running commands
125
+ # Supporting Infrastructure
126
+ GOE requires access to cloud storage and Spark. For a Google Cloud installation this is described here: [Google Cloud Platform Setup for a BigQuery Target](docs/gcp_setup.md)
127
+
128
+ # Running Commands
121
129
  Activate the GOE Python virtual environment:
122
130
  ```
123
131
  source ./.venv/bin/activate
@@ -14,7 +14,7 @@
14
14
 
15
15
  [project]
16
16
  name = "goe-framework"
17
- version = "1.0.6"
17
+ version = "1.0.6.dev0"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.7"
20
20
  maintainers = [
@@ -22,13 +22,6 @@ import random
22
22
  import re
23
23
 
24
24
  from goe.config import orchestration_defaults
25
- from goe.data_governance.hadoop_data_governance_constants import (
26
- SUPPORTED_DATA_GOVERNANCE_BACKENDS,
27
- )
28
- from goe.data_governance.hadoop_data_governance import (
29
- is_valid_data_governance_tag,
30
- is_valid_data_governance_auto_property,
31
- )
32
25
  from goe.filesystem.goe_dfs import (
33
26
  AZURE_OFFLOAD_FS_SCHEMES,
34
27
  OFFLOAD_FS_SCHEME_MAPRFS,
@@ -188,51 +181,6 @@ def normalise_backend_session_parameters(opts):
188
181
  opts.backend_session_parameters = json.loads(opts.backend_session_parameters)
189
182
 
190
183
 
191
- def normalise_data_governance_config(options):
192
- if options.data_governance_api_url:
193
- if not options.data_governance_backend:
194
- raise OrchestrationConfigException(
195
- "DATA_GOVERNANCE_BACKEND is required when connecting to a Data Governance API"
196
- )
197
- if options.data_governance_backend not in SUPPORTED_DATA_GOVERNANCE_BACKENDS:
198
- raise OrchestrationConfigException(
199
- "Invalid DATA_GOVERNANCE_BACKEND %s. Valid values are: %s"
200
- % (options.data_governance_backend, SUPPORTED_DATA_GOVERNANCE_BACKENDS)
201
- )
202
- if (
203
- options.data_governance_backend == "navigator"
204
- and not options.cloudera_navigator_hive_source_id
205
- ):
206
- raise OrchestrationConfigException(
207
- "--cloudera-navigator-hive-source-id is required for Cloudera Navigator integration"
208
- )
209
-
210
- tag_list = (
211
- options.data_governance_auto_tags_csv.split(",")
212
- if options.data_governance_auto_tags_csv
213
- else []
214
- )
215
- invalid_auto_tags = [_ for _ in tag_list if not is_valid_data_governance_tag(_)]
216
- if invalid_auto_tags:
217
- # Using env var name for exception because the command line option is hidden
218
- raise OrchestrationConfigException(
219
- "Invalid values for DATA_GOVERNANCE_AUTO_TAGS: %s" % invalid_auto_tags
220
- )
221
-
222
- auto_properties = (
223
- options.data_governance_auto_properties_csv.split(",")
224
- if options.data_governance_auto_properties_csv
225
- else []
226
- )
227
- invalid_auto_props = [
228
- _ for _ in auto_properties if not is_valid_data_governance_auto_property(_)
229
- ]
230
- # TODO nj@2020-01-31 It feels like we should add the lines below but need to investigate/test before we do
231
- # if invalid_auto_props:
232
- # raise OrchestrationConfigException('Invalid values for DATA_GOVERNANCE_AUTO_PROPERTIES: %s'
233
- # % invalid_auto_props)
234
-
235
-
236
184
  def normalise_filesystem_options(options, exc_cls=OrchestrationConfigException):
237
185
  options.offload_fs_scheme = (
238
186
  options.offload_fs_scheme.lower()
@@ -28,7 +28,6 @@ from goe.config.config_validation_functions import (
28
28
  check_offload_fs_scheme_supported_in_backend,
29
29
  normalise_backend_session_parameters,
30
30
  normalise_backend_options,
31
- normalise_data_governance_config,
32
31
  normalise_db_prefix_and_paths,
33
32
  normalise_filesystem_options,
34
33
  normalise_listener_options,
@@ -67,16 +66,9 @@ EXPECTED_CONFIG_ARGS = [
67
66
  "bigquery_dataset_location",
68
67
  "bigquery_dataset_project",
69
68
  "ca_cert",
70
- "cloudera_navigator_hive_source_id",
71
69
  "db_name_pattern",
72
70
  "db_name_prefix",
73
71
  "db_type",
74
- "data_governance_api_url",
75
- "data_governance_api_user",
76
- "data_governance_api_pass",
77
- "data_governance_backend",
78
- "data_governance_auto_tags_csv",
79
- "data_governance_auto_properties_csv",
80
72
  "dev_log_level",
81
73
  "error_on_token",
82
74
  "frontend_odbc_driver_name",
@@ -311,7 +303,6 @@ class OrchestrationConfig:
311
303
  self._do_not_connect = do_not_connect
312
304
 
313
305
  normalise_backend_session_parameters(self)
314
- normalise_data_governance_config(self)
315
306
  normalise_filesystem_options(self)
316
307
  try:
317
308
  normalise_backend_options(self)
@@ -382,34 +373,6 @@ class OrchestrationConfig:
382
373
  ca_cert=config_dict.get(
383
374
  "ca_cert", orchestration_defaults.ca_cert_default()
384
375
  ),
385
- cloudera_navigator_hive_source_id=config_dict.get(
386
- "cloudera_navigator_hive_source_id",
387
- orchestration_defaults.cloudera_navigator_hive_source_id_default(),
388
- ),
389
- data_governance_api_url=config_dict.get(
390
- "data_governance_api_url",
391
- orchestration_defaults.data_governance_api_url_default(),
392
- ),
393
- data_governance_api_user=config_dict.get(
394
- "data_governance_api_user",
395
- orchestration_defaults.data_governance_api_user_default(),
396
- ),
397
- data_governance_api_pass=config_dict.get(
398
- "data_governance_api_pass",
399
- orchestration_defaults.data_governance_api_pass_default(),
400
- ),
401
- data_governance_backend=config_dict.get(
402
- "data_governance_backend",
403
- orchestration_defaults.data_governance_api_backend_default(),
404
- ),
405
- data_governance_auto_tags_csv=config_dict.get(
406
- "data_governance_auto_tags_csv",
407
- orchestration_defaults.data_governance_auto_tags_default(),
408
- ),
409
- data_governance_auto_properties_csv=config_dict.get(
410
- "data_governance_auto_properties_csv",
411
- orchestration_defaults.data_governance_auto_properties_default(),
412
- ),
413
376
  db_name_pattern=config_dict.get(
414
377
  "db_name_pattern", orchestration_defaults.db_name_pattern_default()
415
378
  ),
@@ -901,45 +901,6 @@ def sqoop_queue_name_default() -> Optional[str]:
901
901
  return os.environ.get("SQOOP_QUEUE_NAME")
902
902
 
903
903
 
904
- # DATA GOVERNANCE DEFAULTS
905
-
906
-
907
- def data_governance_api_url_default():
908
- return os.environ.get("DATA_GOVERNANCE_API_URL")
909
-
910
-
911
- def data_governance_api_user_default():
912
- return os.environ.get("DATA_GOVERNANCE_API_USER")
913
-
914
-
915
- def data_governance_api_pass_default():
916
- return os.environ.get("DATA_GOVERNANCE_API_PASS")
917
-
918
-
919
- def data_governance_api_backend_default():
920
- return os.environ.get("DATA_GOVERNANCE_BACKEND")
921
-
922
-
923
- def cloudera_navigator_hive_source_id_default():
924
- return os.environ.get("CLOUDERA_NAVIGATOR_HIVE_SOURCE_ID")
925
-
926
-
927
- def data_governance_auto_tags_default():
928
- return os.environ.get("DATA_GOVERNANCE_AUTO_TAGS")
929
-
930
-
931
- def data_governance_custom_tags_default():
932
- return os.environ.get("DATA_GOVERNANCE_CUSTOM_TAGS")
933
-
934
-
935
- def data_governance_auto_properties_default():
936
- return os.environ.get("DATA_GOVERNANCE_AUTO_PROPERTIES")
937
-
938
-
939
- def data_governance_custom_properties_default():
940
- return os.environ.get("DATA_GOVERNANCE_CUSTOM_PROPERTIES")
941
-
942
-
943
904
  ###########################################################################
944
905
  # GOE LISTENER DEFAULTS
945
906
  ###########################################################################
@@ -137,11 +137,6 @@ from goe.persistence.orchestration_metadata import (
137
137
  INCREMENTAL_PREDICATE_TYPE_RANGE_AND_PREDICATE,
138
138
  )
139
139
 
140
- from goe.data_governance.hadoop_data_governance import (
141
- get_hadoop_data_governance_client_from_options,
142
- is_valid_data_governance_tag,
143
- )
144
-
145
140
  from goe.util.goe_log_fh import GOELogFileHandle
146
141
  from goe.util.misc_functions import (
147
142
  all_int_chars,
@@ -185,8 +180,6 @@ EXPECTED_OFFLOAD_ARGS = [
185
180
  "compress_load_table",
186
181
  "compute_load_table_stats",
187
182
  "create_backend_db",
188
- "data_governance_custom_tags_csv",
189
- "data_governance_custom_properties",
190
183
  "data_sample_parallelism",
191
184
  "data_sample_pct",
192
185
  "date_columns_csv",
@@ -1105,7 +1098,6 @@ def normalise_options(options, normalise_owner_table=True):
1105
1098
  normalise_offload_predicate_options(options)
1106
1099
  normalise_datatype_control_options(options)
1107
1100
  normalise_stats_options(options, options.target)
1108
- normalise_data_governance_options(options)
1109
1101
 
1110
1102
 
1111
1103
  def verify_json_option(option_name, option_value):
@@ -1136,25 +1128,7 @@ def verify_json_option(option_name, option_value):
1136
1128
  )
1137
1129
 
1138
1130
 
1139
- def normalise_data_governance_options(options):
1140
- tag_list = (
1141
- options.data_governance_custom_tags_csv.split(",")
1142
- if options.data_governance_custom_tags_csv
1143
- else []
1144
- )
1145
- invalid_custom_tags = [_ for _ in tag_list if not is_valid_data_governance_tag(_)]
1146
- if invalid_custom_tags:
1147
- raise OffloadOptionError(
1148
- "Invalid values for --data-governance-custom-tags: %s" % invalid_custom_tags
1149
- )
1150
-
1151
- verify_json_option(
1152
- "--data-governance-custom-properties", options.data_governance_custom_properties
1153
- )
1154
-
1155
-
1156
1131
  def version():
1157
- """Note that this function is modified in the top level Makefile"""
1158
1132
  with open(
1159
1133
  os.path.join(os.environ.get("OFFLOAD_HOME"), "version_build")
1160
1134
  ) as version_file:
@@ -1169,7 +1143,7 @@ def comp_ver_check(frontend_api):
1169
1143
 
1170
1144
  def version_abort(check_version, frontend_api):
1171
1145
  match, v_goe, v_ora = comp_ver_check(frontend_api)
1172
- if check_version and not match and "-DEV" not in v_goe:
1146
+ if check_version and not match and ".dev" not in v_goe:
1173
1147
  return True, v_goe, v_ora
1174
1148
  else:
1175
1149
  return False, v_goe, v_ora
@@ -2035,17 +2009,17 @@ class BaseOperation(object):
2035
2009
 
2036
2010
  def validate_sort_columns(
2037
2011
  self,
2038
- rdbms_column_names,
2039
- messages,
2040
- offload_options,
2012
+ offload_source_table: OffloadSourceTableInterface,
2013
+ messages: OffloadMessages,
2014
+ offload_options: "OrchestrationConfig",
2041
2015
  backend_cols,
2042
2016
  hybrid_metadata,
2043
2017
  backend_api=None,
2044
- metadata_refresh=False,
2045
2018
  ):
2046
2019
  """Default sort_columns for storage index benefit if not specified by the user.
2047
- sort_columns_csv: The incoming option string which can be a CSV list of column names or the special token
2048
- SORT_COLUMNS_NO_CHANGE which identifies the user has not asked for a change.
2020
+ sort_columns_csv: The incoming option string which can be a CSV list of column names or:
2021
+ - the special token SORT_COLUMNS_NO_CHANGE which identifies the user has not asked for a change.
2022
+ - the special token SORT_COLUMNS_NONE which identifies the user has not asked for no sort columns.
2049
2023
  sort_columns: A Python list of column names defined by the user.
2050
2024
  backend_cols: A standalone parameter because this function may be used on tables that do not yet exist.
2051
2025
  """
@@ -2083,10 +2057,9 @@ class BaseOperation(object):
2083
2057
  self.sort_columns = sort_columns_csv_to_sort_columns(
2084
2058
  self.sort_columns_csv,
2085
2059
  hybrid_metadata,
2086
- rdbms_column_names,
2060
+ offload_source_table,
2087
2061
  backend_cols,
2088
2062
  backend_api,
2089
- metadata_refresh,
2090
2063
  messages,
2091
2064
  )
2092
2065
  finally:
@@ -2225,8 +2198,6 @@ class OffloadOperation(BaseOperation):
2225
2198
  compress_load_table=options.compress_load_table,
2226
2199
  compute_load_table_stats=options.compute_load_table_stats,
2227
2200
  create_backend_db=options.create_backend_db,
2228
- data_governance_custom_tags_csv=options.data_governance_custom_tags_csv,
2229
- data_governance_custom_properties=options.data_governance_custom_properties,
2230
2201
  data_sample_parallelism=options.data_sample_parallelism,
2231
2202
  data_sample_pct=options.data_sample_pct,
2232
2203
  date_columns_csv=options.date_columns_csv,
@@ -2347,14 +2318,6 @@ class OffloadOperation(BaseOperation):
2347
2318
  create_backend_db=operation_dict.get(
2348
2319
  "create_backend_db", orchestration_defaults.create_backend_db_default()
2349
2320
  ),
2350
- data_governance_custom_tags_csv=operation_dict.get(
2351
- "data_governance_custom_tags_csv",
2352
- orchestration_defaults.data_governance_custom_tags_default(),
2353
- ),
2354
- data_governance_custom_properties=operation_dict.get(
2355
- "data_governance_custom_properties",
2356
- orchestration_defaults.data_governance_custom_properties_default(),
2357
- ),
2358
2321
  data_sample_parallelism=operation_dict.get(
2359
2322
  "data_sample_parallelism",
2360
2323
  orchestration_defaults.data_sample_parallelism_default(),
@@ -2657,7 +2620,7 @@ def offload_operation_logic(
2657
2620
  )
2658
2621
 
2659
2622
  offload_operation.validate_sort_columns(
2660
- offload_source_table.get_column_names(),
2623
+ offload_source_table,
2661
2624
  messages,
2662
2625
  offload_options,
2663
2626
  offload_target_table.get_columns(),
@@ -2841,13 +2804,6 @@ def offload_table(
2841
2804
  ):
2842
2805
  return False
2843
2806
 
2844
- data_gov_client = get_data_gov_client(
2845
- offload_options,
2846
- messages,
2847
- offload_operation,
2848
- rdbms_schema=offload_source_table.owner,
2849
- source_rdbms_object_name=offload_source_table.table_name,
2850
- )
2851
2807
  offload_operation.offload_transport_method = choose_offload_transport_method(
2852
2808
  offload_operation, offload_source_table, offload_options, messages
2853
2809
  )
@@ -2859,7 +2815,6 @@ def offload_table(
2859
2815
  offload_target_table.refresh_operational_settings(
2860
2816
  offload_operation,
2861
2817
  rdbms_columns=offload_source_table.columns,
2862
- data_gov_client=data_gov_client,
2863
2818
  )
2864
2819
 
2865
2820
  if offload_operation.ddl_file:
@@ -2921,7 +2876,6 @@ def offload_table(
2921
2876
  offload_options,
2922
2877
  source_data_client,
2923
2878
  messages,
2924
- data_gov_client,
2925
2879
  )
2926
2880
  messages.log(
2927
2881
  "%s: %s"
@@ -3016,33 +2970,6 @@ def get_synthetic_partition_cols(backend_cols):
3016
2970
  return [col for col in backend_cols if is_synthetic_partition_column(col.name)]
3017
2971
 
3018
2972
 
3019
- def get_data_gov_client(
3020
- options,
3021
- messages,
3022
- execute,
3023
- rdbms_schema=None,
3024
- source_rdbms_object_name=None,
3025
- target_rdbms_object_name=None,
3026
- ):
3027
- if options.data_governance_api_url:
3028
- data_gov_client = get_hadoop_data_governance_client_from_options(
3029
- options, messages, dry_run=bool(not execute)
3030
- )
3031
- data_gov_client.healthcheck_api()
3032
- data_gov_client.cache_property_values(
3033
- auto_tags_csv=options.data_governance_auto_tags_csv,
3034
- custom_tags_csv=options.data_governance_custom_tags_csv,
3035
- auto_properties_csv=options.data_governance_auto_properties_csv,
3036
- custom_properties=options.data_governance_custom_properties,
3037
- rdbms_name=get_db_unique_name(options),
3038
- rdbms_schema=rdbms_schema,
3039
- source_rdbms_object_name=source_rdbms_object_name,
3040
- target_rdbms_object_name=target_rdbms_object_name,
3041
- )
3042
- return data_gov_client
3043
- return None
3044
-
3045
-
3046
2973
  def check_posint(option, opt, value):
3047
2974
  """Type checker for a new "posint" type to define
3048
2975
  and enforce positive integer option values. Used
@@ -3204,21 +3131,6 @@ def get_oracle_options(opt):
3204
3131
  return opt
3205
3132
 
3206
3133
 
3207
- def get_data_governance_options(opt):
3208
- opt.add_option(
3209
- "--data-governance-custom-properties",
3210
- dest="data_governance_custom_properties",
3211
- default=orchestration_defaults.data_governance_custom_properties_default(),
3212
- help=SUPPRESS_HELP,
3213
- )
3214
- opt.add_option(
3215
- "--data-governance-custom-tags",
3216
- dest="data_governance_custom_tags_csv",
3217
- default=orchestration_defaults.data_governance_custom_tags_default(),
3218
- help=SUPPRESS_HELP,
3219
- )
3220
-
3221
-
3222
3134
  def get_options(usage=None, operation_name=None):
3223
3135
  opt = get_common_options(usage)
3224
3136
 
@@ -3450,7 +3362,7 @@ def get_options(usage=None, operation_name=None):
3450
3362
  "--sort-columns",
3451
3363
  dest="sort_columns_csv",
3452
3364
  default=orchestration_defaults.sort_columns_default(),
3453
- help="CSV list of sort/cluster columns to use when storing data in a backend table",
3365
+ help=f'CSV list of sort/cluster columns to use when storing data in a backend table or "{offload_constants.SORT_COLUMNS_NONE}" to force no sort columns',
3454
3366
  )
3455
3367
  opt.add_option(
3456
3368
  "--offload-distribute-enabled",
@@ -3500,8 +3412,6 @@ def get_options(usage=None, operation_name=None):
3500
3412
  help=SUPPRESS_HELP,
3501
3413
  )
3502
3414
 
3503
- get_data_governance_options(opt)
3504
-
3505
3415
  return opt
3506
3416
 
3507
3417
 
@@ -205,22 +205,6 @@ class OffloadOptions(BaseSchema):
205
205
  description="Create backend database",
206
206
  cli=("--create-backend-db"),
207
207
  )
208
- # TODO: Deprecated
209
- data_governance_custom_properties: Optional[Json] = Field(
210
- default=None,
211
- title="Data governance custom properties",
212
- description="Data governance custom properties",
213
- cli=("--data-governance-custom-properties"),
214
- no_api=True,
215
- )
216
- # TODO: Deprecated
217
- data_governance_custom_tags_csv: Optional[List[str]] = Field(
218
- default=[],
219
- title="Data governance custom tags",
220
- description="Data governance custom tags",
221
- cli=("--data-governance-custom-tags"),
222
- no_api=True,
223
- )
224
208
  data_sample_parallelism: Optional[int] = Field(
225
209
  default=0,
226
210
  title="Data sample parallelism",
@@ -1973,6 +1973,10 @@ FROM %(db)s.%(table)s%(where_clause)s%(group_by)s%(order_by)s""" % {
1973
1973
  def create_database_supported(self):
1974
1974
  return self.is_capability_supported(CAPABILITY_CREATE_DB)
1975
1975
 
1976
+ def default_sort_columns_to_primary_key(self) -> bool:
1977
+ """Does this backend suit clustering on primary key if there's no user specified alternative."""
1978
+ return False
1979
+
1976
1980
  def drop_column_supported(self):
1977
1981
  """Note that there is an Impala override for this"""
1978
1982
  return self.is_capability_supported(CAPABILITY_DROP_COLUMN)