Skip to content

Commit 2563996

Browse files
authored
Enable YDB connector (#160)
* Turn on ydb in OS * Fix tpe error and oauth row * Fix issues * Delete oauth row --------- Co-authored-by: Valeria Bulanova <bulanovavv@yandex-team.ru>
1 parent 6c5031f commit 2563996

File tree

10 files changed

+49
-10
lines changed

10 files changed

+49
-10
lines changed

app/dl_control_api/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ datalens-sqlalchemy-common = {path = "../../lib/dl_sqlalchemy_common"}
1818
datalens-sqlalchemy-clickhouse = {path = "../../lib/dl_sqlalchemy_clickhouse"}
1919
datalens-connector-postgresql = {path = "../../lib/dl_connector_postgresql"}
2020
datalens-connector-clickhouse = {path = "../../lib/dl_connector_clickhouse"}
21+
datalens-connector-ydb = {path = "../../lib/dl_connector_ydb"}
2122
datalens-connector-chyt = {path = "../../lib/dl_connector_chyt"}
2223
datalens-core = {path = "../../lib/dl_core"}
2324
datalens-app-tools = {path = "../../lib/dl_app_tools"}

app/dl_data_api/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ datalens-sqlalchemy-clickhouse = {path = "../../lib/dl_sqlalchemy_clickhouse"}
1919
datalens-connector-postgresql = {path = "../../lib/dl_connector_postgresql"}
2020
datalens-connector-clickhouse = {path = "../../lib/dl_connector_clickhouse"}
2121
datalens-connector-chyt = {path = "../../lib/dl_connector_chyt"}
22+
datalens-connector-ydb = {path = "../../lib/dl_connector_ydb"}
2223
datalens-core = {path = "../../lib/dl_core"}
2324
datalens-app-tools = {path = "../../lib/dl_app_tools"}
2425
datalens-model-tools = {path = "../../lib/dl_model_tools"}

lib/dl_connector_ydb/dl_connector_ydb/api/ydb/connection_form/form_config.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from dl_configs.connectors_settings import ConnectorSettingsBase
2929

3030
from dl_connector_ydb.api.ydb.connection_info import YDBConnectionInfoProvider
31+
from dl_connector_ydb.api.ydb.i18n.localizer import Translatable
3132
from dl_connector_ydb.core.ydb.settings import YDBConnectorSettings
3233

3334

@@ -44,12 +45,13 @@ def _get_base_common_api_schema_items(self, names_source: Type[Enum]) -> list[Fo
4445
]
4546

4647
def _get_default_db_section(self, rc: RowConstructor, connector_settings: YDBConnectorSettings) -> list[FormRow]:
48+
oauth_row = C.OAuthTokenRow(
49+
name=CommonFieldName.token,
50+
fake_value="******" if self.mode == ConnectionFormMode.edit else None,
51+
application=YDBOAuthApplication.ydb,
52+
)
4753
return [
48-
C.OAuthTokenRow(
49-
name=CommonFieldName.token,
50-
fake_value="******" if self.mode == ConnectionFormMode.edit else None,
51-
application=YDBOAuthApplication.ydb,
52-
),
54+
oauth_row,
5355
rc.host_row(default_value=connector_settings.DEFAULT_HOST_VALUE),
5456
rc.port_row(default_value="2135"),
5557
rc.db_name_row(),
@@ -113,7 +115,10 @@ def get_form_config(
113115
common_api_schema_items = self._get_base_common_api_schema_items(names_source=CommonFieldName)
114116
db_section_rows = self._get_default_db_section(rc=rc, connector_settings=connector_settings)
115117
common_api_schema_items.append(
116-
FormFieldApiSchema(name=CommonFieldName.token, required=self.mode == ConnectionFormMode.create)
118+
FormFieldApiSchema(
119+
name=CommonFieldName.token,
120+
required=self.mode == ConnectionFormMode.create and connector_settings.HAS_AUTH,
121+
)
117122
)
118123
edit_api_schema.items.extend(common_api_schema_items)
119124

lib/dl_connector_ydb/dl_connector_ydb/core/ydb/settings.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,45 @@
1-
from typing import Optional
1+
from typing import (
2+
ClassVar,
3+
Optional,
4+
)
25

36
import attr
47

8+
from dl_configs.connectors_data import ConnectorsDataBase
59
from dl_configs.connectors_settings import (
610
ConnectorsConfigType,
711
ConnectorSettingsBase,
812
)
913
from dl_configs.settings_loaders.meta_definition import s_attrib
10-
from dl_core.connectors.settings.primitives import ConnectorSettingsDefinition
14+
from dl_core.connectors.settings.primitives import (
15+
ConnectorSettingsDefinition,
16+
get_connectors_settings_config,
17+
)
1118

1219

1320
@attr.s(frozen=True)
1421
class YDBConnectorSettings(ConnectorSettingsBase):
22+
HAS_AUTH: Optional[bool] = s_attrib("HAS_AUTH", missing=True) # type: ignore
1523
DEFAULT_HOST_VALUE: Optional[str] = s_attrib("DEFAULT_HOST_VALUE", missing=None) # type: ignore
1624

1725

26+
class ConnectorsDataYDBBase(ConnectorsDataBase):
27+
HAS_AUTH: ClassVar[Optional[bool]] = True
28+
29+
@classmethod
30+
def connector_name(cls) -> str:
31+
return "YDB"
32+
33+
1834
def ydb_settings_fallback(full_cfg: ConnectorsConfigType) -> dict[str, ConnectorSettingsBase]:
19-
return dict(YDB=YDBConnectorSettings())
35+
cfg = get_connectors_settings_config(
36+
full_cfg,
37+
object_like_config_key="YDB",
38+
connector_data_class=ConnectorsDataYDBBase,
39+
)
40+
if cfg is None:
41+
return {}
42+
return dict(YDB=YDBConnectorSettings(HAS_AUTH=cfg.HAS_AUTH)) # type: ignore
2043

2144

2245
class YDBSettingDefinition(ConnectorSettingsDefinition):
Binary file not shown.

lib/dl_connector_ydb/dl_connector_ydb/locales/en/LC_MESSAGES/dl_connector_ydb.po

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ msgstr ""
1212
msgid "label_connector-ydb"
1313
msgstr "YDB"
1414

15+
msgid "field_oauth_row"
16+
msgstr "OAuth token"
17+
1518
msgid "source_templates-tab_title-table"
1619
msgstr "Table"
1720

Binary file not shown.

lib/dl_connector_ydb/dl_connector_ydb/locales/ru/LC_MESSAGES/dl_connector_ydb.po

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ msgstr ""
1212
msgid "label_connector-ydb"
1313
msgstr "YDB"
1414

15+
msgid "field_oauth_row"
16+
msgstr "OAuth-токен"
17+
1518
msgid "source_templates-tab_title-table"
1619
msgstr "Таблица"
1720

lib/dl_core/dl_core/services_registry/sr_factories.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
from dl_core.us_manager.mutation_cache.usentry_mutation_cache_factory import USEntryMutationCacheFactory
3838
from dl_core.utils import FutureRef
3939
from dl_task_processor.processor import ARQTaskProcessorFactory
40+
from dl_utils.aio import ContextVarExecutor
4041

4142

4243
if TYPE_CHECKING:
@@ -115,7 +116,7 @@ def make_conn_executor_factory(
115116
LOGGER.info("ATTENTION! It's bleeding edge user")
116117
return DefaultConnExecutorFactory(
117118
async_env=self.async_env,
118-
tpe=None,
119+
tpe=ContextVarExecutor(),
119120
conn_sec_mgr=self.env_manager_factory.make_security_manager(),
120121
rqe_config=self.rqe_config,
121122
services_registry_ref=sr_ref, # type: ignore # TODO: fix

metapkg/poetry.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)