Skip to content

Commit 53ebed9

Browse files
committed
erase wrappers
1 parent a5a36f6 commit 53ebed9

File tree

5 files changed

+42
-170
lines changed

5 files changed

+42
-170
lines changed

tests/coordination/test_coordination_alter_node.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,14 @@ def test_coordination_alter_node(driver_sync: ydb.Driver):
1919
read_consistency_mode=_apis.ydb_coordination.ConsistencyMode.CONSISTENCY_MODE_RELAXED,
2020
)
2121

22-
alter_res = client.alter_node(node_path, new_config)
2322

24-
assert alter_res.status == ydb.StatusCode.SUCCESS, f"Alter operation failed: {alter_res.status}"
23+
client.alter_node(node_path, new_config)
2524

26-
27-
node = client.describe_node(node_path)
28-
assert node.config.session_grace_period_millis == 12345, "Session grace period not updated"
29-
assert node.config.attach_consistency_mode == _apis.ydb_coordination.ConsistencyMode.CONSISTENCY_MODE_STRICT, \
25+
node_config = client.describe_node(node_path)
26+
assert node_config.session_grace_period_millis == 12345, "Session grace period not updated"
27+
assert node_config.attach_consistency_mode == _apis.ydb_coordination.ConsistencyMode.CONSISTENCY_MODE_STRICT, \
3028
"Attach consistency mode not updated"
31-
assert node.config.read_consistency_mode == _apis.ydb_coordination.ConsistencyMode.CONSISTENCY_MODE_RELAXED, \
29+
assert node_config.read_consistency_mode == _apis.ydb_coordination.ConsistencyMode.CONSISTENCY_MODE_RELAXED, \
3230
"Read consistency mode not updated"
3331

3432
client.delete_node(node_path)
Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import ydb
22

3-
43
def test_coordination_nodes(driver_sync: ydb.Driver):
54
client = driver_sync.coordination_client
65
node_path = "/local/test_node"
@@ -12,13 +11,8 @@ def test_coordination_nodes(driver_sync: ydb.Driver):
1211

1312
client.create_node(node_path)
1413

15-
node = client.describe_node(node_path)
16-
17-
assert node.status == ydb.StatusCode.SUCCESS, f"Unexpected operation status: {node.status}"
18-
19-
assert node.path.split("/")[-1] == "test_node", "Node name mismatch"
20-
14+
node_config = client.describe_node(node_path)
2115

22-
assert node.config is not None, "Node config is missing"
16+
assert node_config.path == "/local/test_node"
2317

2418
client.delete_node(node_path)

ydb/_grpc/grpcwrapper/ydb_coordination_public_types.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ class NodeConfig:
2020
@staticmethod
2121
def from_proto(msg: ydb_coordination_pb2.Config) -> "NodeConfig":
2222
return NodeConfig(
23-
attach_consistency_mode=ydb_coordination_pb2.ConsistencyMode(msg.attach_consistency_mode),
23+
attach_consistency_mode=msg.attach_consistency_mode,
2424
path=msg.path,
25-
rate_limiter_counters_mode=ydb_coordination_pb2.RateLimiterCountersMode(msg.rate_limiter_counters_mode),
26-
read_consistency_mode=ydb_coordination_pb2.ConsistencyMode(msg.read_consistency_mode),
25+
rate_limiter_counters_mode=msg.rate_limiter_counters_mode,
26+
read_consistency_mode=msg.read_consistency_mode,
2727
self_check_period_millis=msg.self_check_period_millis,
2828
session_grace_period_millis=msg.session_grace_period_millis,
2929
)

ydb/coordination/coordination_client.py

Lines changed: 32 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -2,131 +2,74 @@
22
from typing import Optional
33

44
from ydb import _apis, issues
5-
6-
7-
from .operations import DescribeNodeOperation, CreateNodeOperation, DropNodeOperation, AlterNodeOperation
5+
from ydb._grpc.grpcwrapper.ydb_coordination_public_types import NodeConfig
86

97
if typing.TYPE_CHECKING:
108
import ydb
119

1210

13-
def wrapper_create_node(rpc_state, response_pb, path, *_args, **_kwargs):
14-
issues._process_response(response_pb.operation)
15-
return CreateNodeOperation(rpc_state, response_pb, path)
16-
17-
18-
def wrapper_describe_node(rpc_state, response_pb, *_args, **_kwargs):
19-
issues._process_response(response_pb.operation)
20-
return DescribeNodeOperation(rpc_state, response_pb)
21-
22-
23-
def wrapper_delete_node(rpc_state, response_pb, path, *_args, **_kwargs):
24-
issues._process_response(response_pb.operation)
25-
return DropNodeOperation(rpc_state, response_pb, path)
26-
27-
def wrapper_alter_node(rpc_state, response_pb, path, *_args, **_kwargs):
28-
issues._process_response(response_pb.operation)
29-
return AlterNodeOperation(rpc_state, response_pb, path)
30-
31-
3211
class CoordinationClient:
3312
def __init__(self, driver: "ydb.Driver"):
3413
self._driver = driver
3514

3615
def _call_node(
37-
self,
38-
request,
39-
rpc_method,
40-
wrapper_fn,
41-
wrap_args=(),
42-
settings: Optional["ydb.BaseRequestSettings"] = None,
16+
self,
17+
request,
18+
rpc_method,
19+
settings: Optional["ydb.BaseRequestSettings"] = None,
4320
):
44-
return self._driver(
21+
response = self._driver(
4522
request,
4623
_apis.CoordinationService.Stub,
4724
rpc_method,
48-
wrap_result=wrapper_fn,
49-
wrap_args=wrap_args,
5025
settings=settings,
5126
)
27+
issues._process_response(response.operation)
28+
return response
5229

5330
def create_node(
54-
self,
55-
path: str,
56-
config: typing.Optional[typing.Any] = None,
57-
operation_params: typing.Optional[typing.Any] = None,
58-
settings: Optional["ydb.BaseRequestSettings"] = None,
59-
) -> CreateNodeOperation:
31+
self,
32+
path: str,
33+
config: Optional[_apis.ydb_coordination.Config] = None,
34+
settings: Optional["ydb.BaseRequestSettings"] = None,
35+
):
6036
request = _apis.ydb_coordination.CreateNodeRequest(
6137
path=path,
6238
config=config,
63-
operation_params=operation_params,
64-
)
65-
return self._call_node(
66-
request,
67-
_apis.CoordinationService.CreateNode,
68-
wrapper_create_node,
69-
wrap_args=(path,),
70-
settings=settings,
7139
)
40+
self._call_node(request, _apis.CoordinationService.CreateNode, settings)
7241

7342
def describe_node(
7443
self,
7544
path: str,
76-
operation_params: typing.Optional[typing.Any] = None,
77-
settings: Optional["ydb.BaseRequestSettings"] = None,
78-
) -> DescribeNodeOperation:
79-
request = _apis.ydb_coordination.DescribeNodeRequest(
80-
path=path,
81-
operation_params=operation_params,
82-
)
83-
return self._call_node(
84-
request,
85-
_apis.CoordinationService.DescribeNode,
86-
wrapper_describe_node,
87-
wrap_args=(path,),
88-
settings=settings,
89-
)
45+
settings: Optional["_apis.ydb_coordination.Config"] = None,
46+
) -> Optional[NodeConfig]:
47+
request = _apis.ydb_coordination.DescribeNodeRequest(path=path)
48+
response = self._call_node(request, _apis.CoordinationService.DescribeNode, settings)
49+
result = _apis.ydb_coordination.DescribeNodeResult()
50+
response.operation.result.Unpack(result)
51+
result.config.path = path
52+
return NodeConfig.from_proto(result.config)
9053

9154
def delete_node(
92-
self,
93-
path: str,
94-
operation_params: typing.Optional[typing.Any] = None,
95-
settings: Optional["ydb.BaseRequestSettings"] = None,
55+
self,
56+
path: str,
57+
settings: Optional["ydb.BaseRequestSettings"] = None,
9658
):
97-
request = _apis.ydb_coordination.DropNodeRequest(
98-
path=path,
99-
operation_params=operation_params,
100-
)
101-
return self._call_node(
102-
request,
103-
_apis.CoordinationService.DropNode,
104-
wrapper_delete_node,
105-
wrap_args=(path,),
106-
settings=settings,
107-
)
59+
request = _apis.ydb_coordination.DropNodeRequest(path=path)
60+
self._call_node(request, _apis.CoordinationService.DropNode, settings)
10861

10962
def alter_node(
110-
self,
111-
path: str,
112-
new_config: typing.Optional[typing.Any] = None,
113-
operation_params: typing.Optional[typing.Any] = None,
114-
settings: Optional["ydb.BaseRequestSettings"] = None,
63+
self,
64+
path: str,
65+
new_config: _apis.ydb_coordination.Config,
66+
settings: Optional["ydb.BaseRequestSettings"] = None,
11567
):
11668
request = _apis.ydb_coordination.AlterNodeRequest(
11769
path=path,
11870
config=new_config,
119-
operation_params=operation_params,
120-
)
121-
122-
return self._call_node(
123-
request,
124-
_apis.CoordinationService.AlterNode,
125-
wrapper_alter_node,
126-
wrap_args=(path,),
127-
settings=settings,
12871
)
72+
self._call_node(request, _apis.CoordinationService.AlterNode, settings)
12973

13074
def close(self):
13175
pass
132-

ydb/coordination/operations.py

Lines changed: 0 additions & 63 deletions
This file was deleted.

0 commit comments

Comments
 (0)