[#3] Added generate proto script create container method
Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
This commit is contained in:
parent
19282f13cc
commit
3afa14db95
52 changed files with 1381 additions and 74 deletions
53
frostfs_sdk/models/mappers/placement_policy_mapper.py
Normal file
53
frostfs_sdk/models/mappers/placement_policy_mapper.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
from typing import Optional
|
||||
|
||||
from frostfs_sdk.models.mappers.filter_mapper import FilterMapper
|
||||
from frostfs_sdk.models.mappers.selector_mapper import SelectorMapper
|
||||
from frostfs_sdk.models.mappers.replica_mapper import ReplicaMapper
|
||||
from frostfs_sdk.models.dto.placement_policy import PlacementPolicy
|
||||
from frostfs_sdk.protos.models.netmap import types_pb2 as types_pb2_netmap
|
||||
|
||||
|
||||
class PlacementPolicyMapper:
|
||||
@staticmethod
|
||||
def to_grpc_message(policy: PlacementPolicy) -> Optional[types_pb2_netmap.PlacementPolicy]:
|
||||
"""
|
||||
Converts PlacementPolicy DTO to gRPC message
|
||||
|
||||
Args:
|
||||
policy: PlacementPolicy DTO object
|
||||
|
||||
Returns:
|
||||
gRPC PlacementPolicy message
|
||||
"""
|
||||
if not policy:
|
||||
return None
|
||||
|
||||
return types_pb2_netmap.PlacementPolicy(
|
||||
unique=policy.unique,
|
||||
container_backup_factor=policy.backup_factory,
|
||||
filters=FilterMapper.to_grpc_messages(policy.filters),
|
||||
selectors=SelectorMapper.to_grpc_messages(policy.selectors),
|
||||
replicas=ReplicaMapper.to_grpc_messages(policy.replicas)
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def to_model(policy_grpc: types_pb2_netmap.PlacementPolicy) -> Optional[PlacementPolicy]:
|
||||
"""
|
||||
Converts gRPC message to PlacementPolicy DTO
|
||||
|
||||
Args:
|
||||
policy_grpc: gRPC PlacementPolicy message
|
||||
|
||||
Returns:
|
||||
PlacementPolicy DTO object
|
||||
"""
|
||||
if not policy_grpc or policy_grpc.ByteSize() == 0:
|
||||
return None
|
||||
|
||||
return PlacementPolicy(
|
||||
replicas=ReplicaMapper.to_models(policy_grpc.replicas),
|
||||
unique=policy_grpc.unique,
|
||||
backup_factory=policy_grpc.container_backup_factor,
|
||||
filters=FilterMapper.to_models(policy_grpc.filters),
|
||||
selectors=SelectorMapper.to_models(policy_grpc.selectors)
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue