userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
service.py
1
import
dataclasses
2
import
os
3
import
pathlib
4
5
from
testsuite.environment
import
service
6
from
testsuite.environment
import
utils
7
8
DEFAULT_HOST =
'localhost'
9
DEFAULT_GRPC_TLS_PORT = 2135
10
DEFAULT_GRPC_PORT = 2136
11
DEFAULT_MON_PORT = 8765
12
DEFAULT_DATABASE =
'local'
13
DEFAULT_CONTAINER_NAME =
'ydb-local-testsuite'
14
# TODO (lemito): change to ydbplatform/local-ydb:latest
15
DEFAULT_DOCKER_IMAGE =
'cr.yandex/yc/yandex-docker-local-ydb:latest'
16
17
PLUGIN_DIR = pathlib.Path(__file__).parent
18
SCRIPTS_DIR = PLUGIN_DIR.joinpath(
'scripts'
)
19
20
21
@dataclasses.dataclass(frozen=True)
22
class
ServiceSettings
:
23
host: str
24
grpc_port: int
25
mon_port: int
26
ic_port: int
27
database: str
28
wait_time: int = 30
29
30
31
def
create_ydb_service(
32
service_name: str,
33
working_dir: str,
34
settings: ServiceSettings |
None
=
None
,
35
env: dict[str, str] |
None
=
None
,
36
):
37
if
settings
is
None
:
38
settings = get_service_settings()
39
return
service.ScriptService(
40
service_name=service_name,
41
script_path=str(SCRIPTS_DIR.joinpath(
'service-ydb.sh'
)),
42
working_dir=working_dir,
43
environment={
44
'YDB_TMPDIR'
: working_dir,
45
'YDB_SCRIPTS_DIR'
: str(SCRIPTS_DIR),
46
'YDB_HOSTNAME'
: settings.host,
47
'YDB_GRPC_PORT'
: str(settings.grpc_port),
48
'YDB_GRPC_TLS_PORT'
: str(DEFAULT_GRPC_TLS_PORT),
49
'YDB_MON_PORT'
: str(settings.mon_port),
50
'YDB_CONTAINER_NAME'
: DEFAULT_CONTAINER_NAME,
51
'YDB_DOCKER_IMAGE'
: DEFAULT_DOCKER_IMAGE,
52
'YDB_WAIT_TIME'
: str(settings.wait_time),
53
**(env
or
{}),
54
},
55
check_ports=[settings.grpc_port, settings.mon_port],
56
)
57
58
59
def
get_service_settings():
60
return
ServiceSettings
(
61
host=os.getenv(
'TESTSUITE_YDB_HOST'
, DEFAULT_HOST),
62
grpc_port=utils.getenv_int(
63
'TESTSUITE_YDB_GRPC_PORT'
,
64
DEFAULT_GRPC_PORT,
65
),
66
mon_port=utils.getenv_int(
'TESTSUITE_YDB_MON_PORT'
, DEFAULT_MON_PORT),
67
ic_port=utils.getenv_int(
'TESTSUITE_YDB_IC_PORT'
, 0),
68
database=os.getenv(
'TESTSUITE_YDB_DATABASE'
, DEFAULT_DATABASE),
69
wait_time=utils.getenv_int(
'TESTSUITE_YDB_WAIT_TIME'
, 30),
70
)
testsuite
pytest_plugins
pytest_userver
plugins
ydb
service.py
Generated on
for userver by
Doxygen
1.17.0