userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
service.py
1
import
pathlib
2
import
typing
3
4
from
testsuite.environment
import
service, utils
5
6
from
.
import
classes
7
8
DEFAULT_RABBITMQ_TCP_PORT = 8672
9
DEFAULT_RABBITMQ_EPMD_PORT = 8673
10
11
SERVICE_SCRIPT_PATH = pathlib.Path(__file__).parent.joinpath(
12
'scripts/service-rabbitmq'
,
13
)
14
15
16
class
ServiceSettings
(typing.NamedTuple):
17
tcp_port: int
18
epmd_port: int
19
20
def
get_connection_info(self) -> classes.ConnectionInfo:
21
return
classes.ConnectionInfo
(host=
'localhost'
, tcp_port=self.tcp_port)
22
23
24
def
create_rabbitmq_service(
25
service_name,
26
working_dir,
27
settings: ServiceSettings |
None
=
None
,
28
env: dict[str, str] |
None
=
None
,
29
):
30
if
settings
is
None
:
31
settings = get_service_settings()
32
return
service.ScriptService
(
33
service_name=service_name,
34
script_path=str(SERVICE_SCRIPT_PATH),
35
working_dir=working_dir,
36
environment={
37
'RABBITMQ_TMPDIR'
: working_dir,
38
'RABBITMQ_TCP_PORT'
: str(settings.tcp_port),
39
'RABBITMQ_EPMD_PORT'
: str(settings.epmd_port),
40
},
41
check_ports=[settings.tcp_port],
42
start_timeout=utils.getenv_float(
43
key=
'TESTSUITE_RABBITMQ_SERVER_START_TIMEOUT'
,
44
default=20.0,
45
),
46
)
47
48
49
def
get_service_settings() -> ServiceSettings:
50
return
ServiceSettings
(
51
utils.getenv_int(
52
key=
'TESTSUITE_RABBITMQ_TCP_PORT'
,
53
default=DEFAULT_RABBITMQ_TCP_PORT,
54
),
55
utils.getenv_int(
56
key=
'TESTSUITE_RABBITMQ_EPMD_PORT'
,
57
default=DEFAULT_RABBITMQ_EPMD_PORT,
58
),
59
)
en
testsuite
databases
rabbitmq
service.py
Generated on
for userver by
Doxygen
1.17.0