Skip to content

Commit f765537

Browse files
committed
Fix unit
1 parent 4f38b65 commit f765537

File tree

4 files changed

+57
-20
lines changed

4 files changed

+57
-20
lines changed

ydb/_grpc/grpcwrapper/ydb_topic.py

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -980,11 +980,15 @@ def from_proto(msg: ydb_topic_pb2.PartitioningSettings) -> "PartitioningSettings
980980
)
981981

982982
def to_proto(self) -> ydb_topic_pb2.PartitioningSettings:
983+
auto_partitioning_settings = None
984+
if self.auto_partitioning_settings is not None:
985+
auto_partitioning_settings = self.auto_partitioning_settings.to_proto()
986+
983987
return ydb_topic_pb2.PartitioningSettings(
984988
min_active_partitions=self.min_active_partitions,
985989
partition_count_limit=self.partition_count_limit,
986990
max_active_partitions=self.max_active_partitions,
987-
auto_partitioning_settings=self.auto_partitioning_settings.to_proto(),
991+
auto_partitioning_settings=auto_partitioning_settings,
988992
)
989993

990994

@@ -1041,6 +1045,9 @@ def from_public(
10411045

10421046
@staticmethod
10431047
def from_proto(msg: ydb_topic_pb2.AutoPartitioningSettings) -> AutoPartitioningSettings:
1048+
if msg is None:
1049+
return None
1050+
10441051
return AutoPartitioningSettings(
10451052
strategy=AutoPartitioningStrategy.from_proto(msg.strategy),
10461053
partition_write_speed=AutoPartitioningWriteSpeedStrategy.from_proto(msg.partition_write_speed),
@@ -1074,7 +1081,12 @@ def to_proto(self):
10741081
)
10751082

10761083
@staticmethod
1077-
def from_proto(msg: ydb_topic_pb2.AutoPartitioningWriteSpeedStrategy) -> AutoPartitioningWriteSpeedStrategy:
1084+
def from_proto(
1085+
msg: Optional[ydb_topic_pb2.AutoPartitioningWriteSpeedStrategy],
1086+
) -> Optional[AutoPartitioningWriteSpeedStrategy]:
1087+
if msg is None:
1088+
return None
1089+
10781090
return AutoPartitioningWriteSpeedStrategy(
10791091
stabilization_window=timedelta_from_proto_duration(msg.stabilization_window),
10801092
up_utilization_percent=msg.up_utilization_percent,
@@ -1090,10 +1102,15 @@ class AlterPartitioningSettings(IToProto):
10901102
alter_auto_partitioning_settings: Optional[AlterAutoPartitioningSettings]
10911103

10921104
def to_proto(self) -> ydb_topic_pb2.AlterPartitioningSettings:
1105+
alter_auto_partitioning_settings = None
1106+
if self.alter_auto_partitioning_settings is not None:
1107+
alter_auto_partitioning_settings = self.alter_auto_partitioning_settings.to_proto()
1108+
10931109
return ydb_topic_pb2.AlterPartitioningSettings(
10941110
set_min_active_partitions=self.set_min_active_partitions,
10951111
set_partition_count_limit=self.set_partition_count_limit,
10961112
set_max_active_partitions=self.set_max_active_partitions,
1113+
alter_auto_partitioning_settings=alter_auto_partitioning_settings,
10971114
)
10981115

10991116

@@ -1109,12 +1126,12 @@ def from_public(
11091126
if not settings:
11101127
return None
11111128

1112-
return AutoPartitioningSettings(
1113-
strategy=settings.set_strategy,
1114-
partition_write_speed=AlterAutoPartitioningWriteSpeedStrategy(
1115-
stabilization_window=settings.set_stabilization_window,
1116-
up_utilization_percent=settings.set_up_utilization_percent,
1117-
down_utilization_percent=settings.set_down_utilization_percent,
1129+
return AlterAutoPartitioningSettings(
1130+
set_strategy=settings.set_strategy,
1131+
set_partition_write_speed=AlterAutoPartitioningWriteSpeedStrategy(
1132+
set_stabilization_window=settings.set_stabilization_window,
1133+
set_up_utilization_percent=settings.set_up_utilization_percent,
1134+
set_down_utilization_percent=settings.set_down_utilization_percent,
11181135
),
11191136
)
11201137

@@ -1185,9 +1202,13 @@ class CreateTopicRequest(IToProto, IFromPublic):
11851202
metering_mode: "MeteringMode"
11861203

11871204
def to_proto(self) -> ydb_topic_pb2.CreateTopicRequest:
1205+
partitioning_settings = None
1206+
if self.partitioning_settings is not None:
1207+
partitioning_settings = self.partitioning_settings.to_proto()
1208+
11881209
return ydb_topic_pb2.CreateTopicRequest(
11891210
path=self.path,
1190-
partitioning_settings=self.partitioning_settings.to_proto(),
1211+
partitioning_settings=partitioning_settings,
11911212
retention_period=proto_duration_from_timedelta(self.retention_period),
11921213
retention_storage_mb=self.retention_storage_mb,
11931214
supported_codecs=self.supported_codecs.to_proto(),
@@ -1295,7 +1316,7 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
12951316

12961317
alter_auto_partitioning_settings = None
12971318
if req.alter_auto_partitioning_settings is not None:
1298-
alter_auto_partitioning_settings = AutoPartitioningSettings.from_public(
1319+
alter_auto_partitioning_settings = AlterAutoPartitioningSettings.from_public(
12991320
req.alter_auto_partitioning_settings
13001321
)
13011322

ydb/_grpc/grpcwrapper/ydb_topic_public_types.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,18 @@ class PublicAutoPartitioningStrategy(IntEnum):
8282

8383
@dataclass
8484
class PublicAutoPartitioningSettings:
85-
strategy: Optional["PublicAutoPartitioningStrategy"]
86-
stabilization_window: Optional[datetime.timedelta]
87-
up_utilization_percent: Optional[int]
88-
down_utilization_percent: Optional[int]
85+
strategy: Optional["PublicAutoPartitioningStrategy"] = 0
86+
stabilization_window: Optional[datetime.timedelta] = None
87+
up_utilization_percent: Optional[int] = None
88+
down_utilization_percent: Optional[int] = None
8989

9090

9191
@dataclass
9292
class PublicAlterAutoPartitioningSettings:
93-
set_strategy: Optional["PublicAutoPartitioningStrategy"]
94-
set_stabilization_window: Optional[datetime.timedelta]
95-
set_up_utilization_percent: Optional[int]
96-
set_down_utilization_percent: Optional[int]
93+
set_strategy: Optional["PublicAutoPartitioningStrategy"] = 0
94+
set_stabilization_window: Optional[datetime.timedelta] = None
95+
set_up_utilization_percent: Optional[int] = None
96+
set_down_utilization_percent: Optional[int] = None
9797

9898

9999
@dataclass

ydb/_grpc/grpcwrapper/ydb_topic_test.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from .ydb_topic_public_types import (
88
AlterTopicRequestParams,
99
PublicAlterConsumer,
10+
PublicAlterAutoPartitioningSettings,
11+
PublicAutoPartitioningStrategy,
1012
PublicConsumer,
1113
PublicCodec,
1214
)
@@ -51,7 +53,11 @@ def test_alter_topic_request_from_public_to_proto():
5153
"alter_attributes": {"key": "value"},
5254
"set_metering_mode": 1,
5355
"set_min_active_partitions": 2,
54-
"set_partition_count_limit": 4,
56+
"set_max_active_partitions": 8,
57+
"set_partition_count_limit": 10,
58+
"alter_auto_partitioning_settings": PublicAlterAutoPartitioningSettings(
59+
set_strategy=PublicAutoPartitioningStrategy.DISABLED,
60+
),
5561
}
5662

5763
params_public = AlterTopicRequestParams(**params)
@@ -62,7 +68,15 @@ def test_alter_topic_request_from_public_to_proto():
6268

6369
expected_dict = {
6470
"path": "topic_name",
65-
"alter_partitioning_settings": {"set_min_active_partitions": "2", "set_partition_count_limit": "4"},
71+
"alter_partitioning_settings": {
72+
"set_min_active_partitions": "2",
73+
"set_max_active_partitions": "8",
74+
"set_partition_count_limit": "10",
75+
"alter_auto_partitioning_settings": {
76+
"set_strategy": "AUTO_PARTITIONING_STRATEGY_DISABLED",
77+
"set_partition_write_speed": {},
78+
},
79+
},
6680
"set_retention_period": "2419200s",
6781
"set_retention_storage_mb": "4",
6882
"set_supported_codecs": {"codecs": [1, 2]},

ydb/topic.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ async def create_topic(
111111
self,
112112
path: str,
113113
min_active_partitions: Optional[int] = None,
114+
max_active_partitions: Optional[int] = None,
114115
partition_count_limit: Optional[int] = None,
115116
retention_period: Optional[datetime.timedelta] = None,
116117
retention_storage_mb: Optional[int] = None,
@@ -312,6 +313,7 @@ def create_topic(
312313
self,
313314
path: str,
314315
min_active_partitions: Optional[int] = None,
316+
max_active_partitions: Optional[int] = None,
315317
partition_count_limit: Optional[int] = None,
316318
retention_period: Optional[datetime.timedelta] = None,
317319
retention_storage_mb: Optional[int] = None,

0 commit comments

Comments
 (0)