From 60e8b58ad5fcaabcdfaca8fc2ec0ec7b7b723ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Je=C5=A1ke?= Date: Fri, 7 Aug 2026 15:55:14 +0200 Subject: [PATCH] refactor: remove support for Greenplum Greenplum is no longer used by any customer and is being removed from the backend (F1-2435), so the SDK no longer needs to model it. Drops the hand-written `CatalogDataSourceGreenplum` and `GreenplumAttributes` classes, their exports from `gooddata_sdk`, and the Greenplum example from the data-source docs. The Greenplum test went with them: it was already inert, sitting inside a `"""` block and referencing a `greenplum.yaml` cassette that does not exist in the repo. The generated client was updated the supported way rather than by hand. The `GREENPLUM` enum entry was removed from the two source schemas it originates from -- gooddata-metadata-client.json and gooddata-scan-client.json -- and `gooddata-api-client/` was then regenerated with openapi-generator against the merged schema. The regeneration produced exactly six deletions and no other drift, which also confirms the checked-in client was in sync with the schemas. The merged schemas/gooddata-api-client.json was edited line-wise instead of being rebuilt through the Makefile's `jq -S -s` step. jq 1.6 does not preserve number literals and rewrote unrelated values (2.6E+9 -> 2600000000, 1.0 -> 1) across the file; the checked-in copy was produced with jq 1.7+, which does. This is a breaking change for anyone importing either class by name, including code that never connects to Greenplum, since the failure is at import time. JIRA: F1-2435 risk: low Co-Authored-By: Claude Opus 5 (1M context) --- .../en/latest/data/data-source/_index.md | 18 --------------- .../model/declarative_data_source.py | 1 - ...i_data_source_identifier_out_attributes.py | 1 - .../json_api_data_source_in_attributes.py | 1 - .../json_api_data_source_out_attributes.py | 1 - .../json_api_data_source_patch_attributes.py | 1 - .../model/test_definition_request.py | 1 - .../gooddata-sdk/src/gooddata_sdk/__init__.py | 2 -- .../data_source/entity_model/data_source.py | 11 ---------- .../tests/catalog/test_catalog_data_source.py | 22 ------------------- schemas/gooddata-api-client.json | 6 ----- schemas/gooddata-metadata-client.json | 5 ----- schemas/gooddata-scan-client.json | 1 - 13 files changed, 71 deletions(-) diff --git a/docs/content/en/latest/data/data-source/_index.md b/docs/content/en/latest/data/data-source/_index.md index 3cf550546..49d3cbf9b 100644 --- a/docs/content/en/latest/data/data-source/_index.md +++ b/docs/content/en/latest/data/data-source/_index.md @@ -154,24 +154,6 @@ CatalogDataSourceBigQuery( parameters=[{"name": "projectId", "value": "abc"}], ) ``` -### Greenplum - -```python -CatalogDataSourceGreenplum( - id=data_source_id, - name=data_source_name, - db_specific_attributes=GreenplumAttributes( - host=os.environ["GREENPLUM_HOST"], - db_name=os.environ["GREENPLUM_DBNAME"] - ), - schema=os.environ["GREENPLUM_SCHEMA"], - credentials=BasicCredentials( - username=os.environ["GREENPLUM_USER"], - password=os.environ["GREENPLUM_PASSWORD"], - ), -) -``` - ### Microsoft SQL Server ```python diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py index a4bb31bd6..049f6b8b0 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py @@ -73,7 +73,6 @@ class DeclarativeDataSource(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py index 25edbaab5..6ac427afd 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py @@ -67,7 +67,6 @@ class JsonApiDataSourceIdentifierOutAttributes(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py index 77c96b316..192ae7820 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py @@ -71,7 +71,6 @@ class JsonApiDataSourceInAttributes(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py index 00bb83ffa..7b7be8d33 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py @@ -71,7 +71,6 @@ class JsonApiDataSourceOutAttributes(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py index ae524198f..81a97fcbd 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py @@ -81,7 +81,6 @@ class JsonApiDataSourcePatchAttributes(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py index 983caca9c..9fa8b4497 100644 --- a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py +++ b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py @@ -71,7 +71,6 @@ class TestDefinitionRequest(ModelNormal): 'PRESTO': "PRESTO", 'DREMIO': "DREMIO", 'DRILL': "DRILL", - 'GREENPLUM': "GREENPLUM", 'AZURESQL': "AZURESQL", 'SYNAPSESQL': "SYNAPSESQL", 'DATABRICKS': "DATABRICKS", diff --git a/packages/gooddata-sdk/src/gooddata_sdk/__init__.py b/packages/gooddata-sdk/src/gooddata_sdk/__init__.py index 5e8932ba7..a58a592d0 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/__init__.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/__init__.py @@ -44,7 +44,6 @@ CatalogDataSourceBigQuery, CatalogDataSourceDatabricks, CatalogDataSourceGdStorage, - CatalogDataSourceGreenplum, CatalogDataSourceMariaDb, CatalogDataSourceMotherDuck, CatalogDataSourceMsSql, @@ -54,7 +53,6 @@ CatalogDataSourceSnowflake, CatalogDataSourceVertica, DatabricksAttributes, - GreenplumAttributes, MariaDbAttributes, MotherDuckAttributes, MsSqlAttributes, diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/entity_model/data_source.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/entity_model/data_source.py index 43b0163fb..bec404fa2 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/entity_model/data_source.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/entity_model/data_source.py @@ -166,11 +166,6 @@ class VerticaAttributes(PostgresAttributes): port: str = "5433" -@define(kw_only=True) -class GreenplumAttributes(PostgresAttributes): - pass - - @define(kw_only=True) class MySqlAttributes(DatabaseAttributes): host: str @@ -230,12 +225,6 @@ class CatalogDataSourceBigQuery(CatalogDataSource): type: str = "BIGQUERY" -@define(kw_only=True) -class CatalogDataSourceGreenplum(CatalogDataSourcePostgres): - type: str = "GREENPLUM" - db_vendor: str = "postgresql" - - @define(kw_only=True) class MsSqlAttributes(DatabaseAttributes): host: str diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py b/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py index de2227840..cf0aa1d7c 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py @@ -769,28 +769,6 @@ def test_scan_sql_without_preview(test_config: dict): assert response.data_preview is None -""" -# TODO: commented because Greenplum is supported only for Cloud and it cannot be tested using Docker image. -@gd_vcr.use_cassette(str(_fixtures_dir / "greenplum.yaml")) -def test_catalog_create_data_source_greenplum_spec(test_config): - sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - _create_delete_ds( - sdk=sdk, - data_source=CatalogDataSourceGreenplum( - id="test", - name="Test", - db_specific_attributes=GreenplumAttributes(host="greenplum", db_name="demo"), - schema="demo", - credentials=BasicCredentials( - username="demouser", - password="demopass", - ), - url_params=[("autosave", "true")], - ), - ) -""" - - def test_allowed_data_source_type(test_config): allowed_types = JsonApiDataSourceInAttributes.allowed_values.get(("type",)) for t in allowed_types.values(): diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index c41923104..dd9909078 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -6143,7 +6143,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -16360,7 +16359,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -16588,7 +16586,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -16774,7 +16771,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -17014,7 +17010,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -34551,7 +34546,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index fc6b24d3b..9321c0003 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -3653,7 +3653,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -12463,7 +12462,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -12691,7 +12689,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -12877,7 +12874,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", @@ -13117,7 +13113,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS", diff --git a/schemas/gooddata-scan-client.json b/schemas/gooddata-scan-client.json index b3c702792..ced24508d 100644 --- a/schemas/gooddata-scan-client.json +++ b/schemas/gooddata-scan-client.json @@ -761,7 +761,6 @@ "PRESTO", "DREMIO", "DRILL", - "GREENPLUM", "AZURESQL", "SYNAPSESQL", "DATABRICKS",