|
8 | 8 | import string
|
9 | 9 | import typing # noqa: F401
|
10 | 10 | import sys
|
| 11 | +from urllib.parse import urlparse |
11 | 12 |
|
| 13 | +from ydb.library.yql.providers.common.proto.gateways_config_pb2 import TGenericConnectorConfig |
12 | 14 | from ydb.tests.library.common import yatest_common
|
13 | 15 | from ydb.tests.library.harness.kikimr_cluster import kikimr_cluster_factory
|
14 | 16 | from ydb.tests.library.harness.kikimr_config import KikimrConfigGenerator
|
@@ -255,6 +257,34 @@ def enable_tls():
|
255 | 257 | return os.getenv('YDB_GRPC_ENABLE_TLS') == 'true'
|
256 | 258 |
|
257 | 259 |
|
| 260 | +def generic_connector_config(): |
| 261 | + endpoint = os.getenv("FQ_CONNECTOR_ENDPOINT") |
| 262 | + if not endpoint: |
| 263 | + return None |
| 264 | + |
| 265 | + parsed = urlparse(endpoint) |
| 266 | + if not parsed.hostname: |
| 267 | + raise ValueError("Invalid host '{}' in FQ_CONNECTOR_ENDPOINT".format(parsed.hostname)) |
| 268 | + |
| 269 | + if not (1024 <= parsed.port <= 65535): |
| 270 | + raise ValueError("Invalid port '{}' in FQ_CONNECTOR_ENDPOINT".format(parsed.port)) |
| 271 | + |
| 272 | + valid_schemes = ['grpc', 'grpcs'] |
| 273 | + if parsed.scheme not in valid_schemes: |
| 274 | + raise ValueError("Invalid schema '{}' in FQ_CONNECTOR_ENDPOINT (possible: {})".format(parsed.schema, valid_schemes)) |
| 275 | + |
| 276 | + cfg = TGenericConnectorConfig() |
| 277 | + cfg.Endpoint.host = parsed.hostname |
| 278 | + cfg.Endpoint.port = parsed.port |
| 279 | + |
| 280 | + if parsed.scheme == 'grpc': |
| 281 | + cfg.UseSsl = False |
| 282 | + elif parsed.scheme == 'grpcs': |
| 283 | + cfg.UseSsl = True |
| 284 | + |
| 285 | + return cfg |
| 286 | + |
| 287 | + |
258 | 288 | def grpc_tls_data_path(arguments):
|
259 | 289 | default_store = arguments.ydb_working_dir if arguments.ydb_working_dir else None
|
260 | 290 | return os.getenv('YDB_GRPC_TLS_DATA_PATH', default_store)
|
@@ -338,6 +368,7 @@ def deploy(arguments):
|
338 | 368 | default_users=default_users(),
|
339 | 369 | extra_feature_flags=enable_feature_flags,
|
340 | 370 | extra_grpc_services=arguments.enabled_grpc_services,
|
| 371 | + generic_connector_config=generic_connector_config(), |
341 | 372 | **optionals
|
342 | 373 | )
|
343 | 374 |
|
|
0 commit comments