Skip to content

Commit c249318

Browse files
authored
feat: BI-6288 add table source to SQL connectors (#1049)
* feat: add table source to SQL connectors * fix: disabled parameter * fix: lost title
1 parent 25af673 commit c249318

File tree

29 files changed

+411
-96
lines changed

29 files changed

+411
-96
lines changed

lib/dl_connector_chyt/dl_connector_chyt/core/us_connection.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
DataSourceTemplate,
2525
RawSqlLevelConnectionMixin,
2626
make_subselect_datasource_template,
27+
make_table_datasource_template,
2728
)
2829
from dl_core.utils import secrepr
2930
from dl_i18n.localizer_base import Localizer
@@ -105,22 +106,14 @@ def get_data_source_template_templates(self, localizer: Localizer) -> list[DataS
105106
parameters={},
106107
)
107108
return [
108-
DataSourceTemplate(
109-
title="YTsaurus table via CHYT",
110-
tab_title=localizer.translate(Translatable("source_templates-tab_title-table")),
109+
make_table_datasource_template(
110+
connection_id=self.uuid, # type: ignore
111111
source_type=self.chyt_table_source_type,
112-
form=[
113-
{
114-
"name": "table_name",
115-
"input_type": "text",
116-
"default": "",
117-
"required": True,
118-
"title": localizer.translate(Translatable("source_templates-label-ytsaurus_table")),
119-
"field_doc_key": "YTsaurus/CHYT_TABLE/table_name",
120-
"template_enabled": self.is_datasource_template_allowed,
121-
},
122-
],
123-
**common,
112+
localizer=localizer,
113+
title="YTsaurus table via CHYT",
114+
field_doc_key="YTsaurus/CHYT_TABLE/table_name",
115+
template_enabled=self.is_datasource_template_allowed,
116+
form_title=localizer.translate(Translatable("source_templates-label-ytsaurus_table")),
124117
),
125118
DataSourceTemplate(
126119
title="List of YTsaurus tables via CHYT",
Binary file not shown.

lib/dl_connector_chyt/dl_connector_chyt/locales/en/LC_MESSAGES/dl_connector_chyt.po

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ msgid ""
44
msgstr ""
55
"Project-Id-Version: PACKAGE VERSION\n"
66
"Report-Msgid-Bugs-To: [email protected]\n"
7-
"POT-Creation-Date: 2023-09-22 08:14+0000\n"
7+
"POT-Creation-Date: 2023-09-22 08:16+0000\n"
88
"MIME-Version: 1.0\n"
99
"Content-Type: text/plain; charset=UTF-8\n"
1010
"Content-Transfer-Encoding: 8bit\n"
@@ -18,9 +18,6 @@ msgstr "Clique alias"
1818
msgid "field_chyt-token"
1919
msgstr "YTsaurus token"
2020

21-
msgid "source_templates-tab_title-table"
22-
msgstr "Table"
23-
2421
msgid "source_templates-label-ytsaurus_table"
2522
msgstr "Path to a YTsaurus table"
2623

Binary file not shown.

lib/dl_connector_chyt/dl_connector_chyt/locales/ru/LC_MESSAGES/dl_connector_chyt.po

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ msgid ""
44
msgstr ""
55
"Project-Id-Version: PACKAGE VERSION\n"
66
"Report-Msgid-Bugs-To: [email protected]\n"
7-
"POT-Creation-Date: 2023-09-22 08:14+0000\n"
7+
"POT-Creation-Date: 2023-09-22 08:16+0000\n"
88
"MIME-Version: 1.0\n"
99
"Content-Type: text/plain; charset=UTF-8\n"
1010
"Content-Transfer-Encoding: 8bit\n"
@@ -18,9 +18,6 @@ msgstr "Алиас клики"
1818
msgid "field_chyt-token"
1919
msgstr "Токен YTsaurus"
2020

21-
msgid "source_templates-tab_title-table"
22-
msgstr "Таблица"
23-
2421
msgid "source_templates-label-ytsaurus_table"
2522
msgstr "Путь к таблице в YTsaurus"
2623

lib/dl_connector_clickhouse/dl_connector_clickhouse/core/clickhouse/us_connection.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
DataSourceTemplate,
1111
QueryTypeInfo,
1212
make_subselect_datasource_template,
13+
make_table_datasource_template,
1314
)
1415
from dl_i18n.localizer_base import Localizer
1516

@@ -46,13 +47,20 @@ class DataModel(ConnectionClickhouseBase.DataModel):
4647

4748
def get_data_source_template_templates(self, localizer: Localizer) -> list[DataSourceTemplate]:
4849
return [
50+
make_table_datasource_template(
51+
connection_id=self.uuid, # type: ignore
52+
source_type=SOURCE_TYPE_CH_TABLE,
53+
localizer=localizer,
54+
disabled=not self.is_subselect_allowed,
55+
template_enabled=self.is_datasource_template_allowed,
56+
),
4957
make_subselect_datasource_template(
5058
connection_id=self.uuid, # type: ignore
5159
source_type=SOURCE_TYPE_CH_SUBSELECT,
5260
localizer=localizer,
5361
disabled=not self.is_subselect_allowed,
5462
template_enabled=self.is_datasource_template_allowed,
55-
)
63+
),
5664
]
5765

5866
def get_conn_dto(self) -> DLClickHouseConnDTO:

lib/dl_connector_clickhouse/dl_connector_clickhouse_tests/db/api/test_datasource_template.py

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,83 @@
11
import dl_api_lib_testing
22

3-
from dl_connector_clickhouse.core.clickhouse.constants import SOURCE_TYPE_CH_SUBSELECT
3+
from dl_connector_clickhouse.core.clickhouse.constants import (
4+
SOURCE_TYPE_CH_SUBSELECT,
5+
SOURCE_TYPE_CH_TABLE,
6+
)
47
from dl_connector_clickhouse.core.clickhouse.settings import ClickHouseConnectorSettings
58
from dl_connector_clickhouse_tests.db.api.base import (
69
ClickHouseDataApiTestBase,
710
ClickHouseDatasetTestBase,
811
)
912

1013

14+
class BaseTableTestSourceTemplate(dl_api_lib_testing.BaseTableTestSourceTemplate):
15+
source_type = SOURCE_TYPE_CH_TABLE
16+
conn_settings_cls = ClickHouseConnectorSettings
17+
18+
19+
class TestTableControlApiSourceTemplate(
20+
BaseTableTestSourceTemplate,
21+
dl_api_lib_testing.BaseTestControlApiSourceTemplate,
22+
ClickHouseDatasetTestBase,
23+
):
24+
...
25+
26+
27+
class TestTableControlApiSourceTemplateSettingsDisabled(
28+
BaseTableTestSourceTemplate,
29+
dl_api_lib_testing.BaseTestControlApiSourceTemplateSettingsDisabled,
30+
ClickHouseDatasetTestBase,
31+
):
32+
...
33+
34+
35+
class TestTableDataApiSourceTemplateConnectionDisabled(
36+
BaseTableTestSourceTemplate,
37+
dl_api_lib_testing.BaseTestControlApiSourceTemplateConnectionDisabled,
38+
ClickHouseDataApiTestBase,
39+
):
40+
...
41+
42+
43+
class TestTableDataApiSourceTemplate(
44+
BaseTableTestSourceTemplate,
45+
dl_api_lib_testing.BaseTestDataApiSourceTemplate,
46+
ClickHouseDataApiTestBase,
47+
):
48+
...
49+
50+
1151
class BaseSubselectTestSourceTemplate(dl_api_lib_testing.BaseSubselectTestSourceTemplate):
1252
source_type = SOURCE_TYPE_CH_SUBSELECT
1353
conn_settings_cls = ClickHouseConnectorSettings
1454

1555

16-
class TestControlApiSourceTemplate(
56+
class TestSubselectControlApiSourceTemplate(
1757
BaseSubselectTestSourceTemplate,
1858
dl_api_lib_testing.BaseTestControlApiSourceTemplate,
1959
ClickHouseDatasetTestBase,
2060
):
2161
...
2262

2363

24-
class TestControlApiSourceTemplateSettingsDisabled(
64+
class TestSubselectControlApiSourceTemplateSettingsDisabled(
2565
BaseSubselectTestSourceTemplate,
2666
dl_api_lib_testing.BaseTestControlApiSourceTemplateSettingsDisabled,
2767
ClickHouseDatasetTestBase,
2868
):
2969
...
3070

3171

32-
class TestControlApiSourceTemplateConnectionDisabled(
72+
class TestSubselectControlApiSourceTemplateConnectionDisabled(
3373
BaseSubselectTestSourceTemplate,
3474
dl_api_lib_testing.BaseTestControlApiSourceTemplateConnectionDisabled,
3575
ClickHouseDatasetTestBase,
3676
):
3777
...
3878

3979

40-
class TestDataApiSourceTemplate(
80+
class TestSubselectDataApiSourceTemplate(
4181
BaseSubselectTestSourceTemplate,
4282
dl_api_lib_testing.BaseTestDataApiSourceTemplate,
4383
ClickHouseDataApiTestBase,

lib/dl_connector_greenplum/dl_connector_greenplum/core/us_connection.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
ConnectionSettingsMixin,
77
DataSourceTemplate,
88
make_subselect_datasource_template,
9+
make_table_datasource_template,
910
)
1011
from dl_i18n.localizer_base import Localizer
1112

@@ -44,14 +45,21 @@ def get_conn_dto(self) -> GreenplumConnDTO:
4445

4546
def get_data_source_template_templates(self, localizer: Localizer) -> list[DataSourceTemplate]:
4647
return [
48+
make_table_datasource_template(
49+
connection_id=self.uuid, # type: ignore
50+
source_type=SOURCE_TYPE_GP_TABLE,
51+
localizer=localizer,
52+
disabled=not self.is_subselect_allowed,
53+
template_enabled=self.is_datasource_template_allowed,
54+
),
4755
make_subselect_datasource_template(
4856
connection_id=self.uuid, # type: ignore
4957
source_type=SOURCE_TYPE_GP_SUBSELECT,
5058
localizer=localizer,
5159
disabled=not self.is_subselect_allowed,
5260
field_doc_key="PG_SUBSELECT/subsql", # shared, currently.
5361
template_enabled=self.is_datasource_template_allowed,
54-
)
62+
),
5563
]
5664

5765
@property

lib/dl_connector_greenplum/dl_connector_greenplum_tests/db/api/test_datasource_template.py

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,83 @@
11
import dl_api_lib_testing
22

3-
from dl_connector_greenplum.core.constants import SOURCE_TYPE_GP_SUBSELECT
3+
from dl_connector_greenplum.core.constants import (
4+
SOURCE_TYPE_GP_SUBSELECT,
5+
SOURCE_TYPE_GP_TABLE,
6+
)
47
from dl_connector_greenplum.core.settings import GreenplumConnectorSettings
58
from dl_connector_greenplum_tests.db.api.base import (
69
GreenplumDataApiTestBase,
710
GreenplumDatasetTestBase,
811
)
912

1013

14+
class BaseTableTestSourceTemplate(dl_api_lib_testing.BaseTableTestSourceTemplate):
15+
source_type = SOURCE_TYPE_GP_TABLE
16+
conn_settings_cls = GreenplumConnectorSettings
17+
18+
19+
class TestTableControlApiSourceTemplate(
20+
BaseTableTestSourceTemplate,
21+
dl_api_lib_testing.BaseTestControlApiSourceTemplate,
22+
GreenplumDatasetTestBase,
23+
):
24+
...
25+
26+
27+
class TestTableControlApiSourceTemplateSettingsDisabled(
28+
BaseTableTestSourceTemplate,
29+
dl_api_lib_testing.BaseTestControlApiSourceTemplateSettingsDisabled,
30+
GreenplumDatasetTestBase,
31+
):
32+
...
33+
34+
35+
class TestTableControlApiSourceTemplateConnectionDisabled(
36+
BaseTableTestSourceTemplate,
37+
dl_api_lib_testing.BaseTestControlApiSourceTemplateConnectionDisabled,
38+
GreenplumDatasetTestBase,
39+
):
40+
...
41+
42+
43+
class TestTableDataApiSourceTemplate(
44+
BaseTableTestSourceTemplate,
45+
dl_api_lib_testing.BaseTestDataApiSourceTemplate,
46+
GreenplumDataApiTestBase,
47+
):
48+
...
49+
50+
1151
class BaseSubselectTestSourceTemplate(dl_api_lib_testing.BaseSubselectTestSourceTemplate):
1252
source_type = SOURCE_TYPE_GP_SUBSELECT
1353
conn_settings_cls = GreenplumConnectorSettings
1454

1555

16-
class TestControlApiSourceTemplate(
56+
class TestSubselectControlApiSourceTemplate(
1757
BaseSubselectTestSourceTemplate,
1858
dl_api_lib_testing.BaseTestControlApiSourceTemplate,
1959
GreenplumDatasetTestBase,
2060
):
2161
...
2262

2363

24-
class TestControlApiSourceTemplateSettingsDisabled(
64+
class TestSubselectControlApiSourceTemplateSettingsDisabled(
2565
BaseSubselectTestSourceTemplate,
2666
dl_api_lib_testing.BaseTestControlApiSourceTemplateSettingsDisabled,
2767
GreenplumDatasetTestBase,
2868
):
2969
...
3070

3171

32-
class TestControlApiSourceTemplateConnectionDisabled(
72+
class TestSubselectControlApiSourceTemplateConnectionDisabled(
3373
BaseSubselectTestSourceTemplate,
3474
dl_api_lib_testing.BaseTestControlApiSourceTemplateConnectionDisabled,
3575
GreenplumDatasetTestBase,
3676
):
3777
...
3878

3979

40-
class TestDataApiSourceTemplate(
80+
class TestSubselectDataApiSourceTemplate(
4181
BaseSubselectTestSourceTemplate,
4282
dl_api_lib_testing.BaseTestDataApiSourceTemplate,
4383
GreenplumDataApiTestBase,

lib/dl_connector_mssql/dl_connector_mssql/core/us_connection.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
ConnectionSettingsMixin,
1515
DataSourceTemplate,
1616
make_subselect_datasource_template,
17+
make_table_datasource_template,
1718
)
1819
from dl_i18n.localizer_base import Localizer
1920

@@ -56,14 +57,21 @@ def get_conn_dto(self) -> MSSQLConnDTO:
5657

5758
def get_data_source_template_templates(self, localizer: Localizer) -> list[DataSourceTemplate]:
5859
return [
60+
make_table_datasource_template(
61+
connection_id=self.uuid, # type: ignore
62+
source_type=SOURCE_TYPE_MSSQL_TABLE,
63+
localizer=localizer,
64+
disabled=not self.is_subselect_allowed,
65+
template_enabled=self.is_datasource_template_allowed,
66+
),
5967
make_subselect_datasource_template(
6068
connection_id=self.uuid, # type: ignore
6169
source_type=SOURCE_TYPE_MSSQL_SUBSELECT,
6270
localizer=localizer,
6371
disabled=not self.is_subselect_allowed,
6472
field_doc_key="MSSQL_SUBSELECT/subsql",
6573
template_enabled=self.is_datasource_template_allowed,
66-
)
74+
),
6775
]
6876

6977
def get_parameter_combinations(

0 commit comments

Comments
 (0)