[#3] Added generate proto script create container method

Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
This commit is contained in:
Ilyas Niyazov 2025-03-25 11:12:10 +03:00
parent 19282f13cc
commit 3afa14db95
52 changed files with 1381 additions and 74 deletions

View file

@ -0,0 +1,44 @@
from google.protobuf.message import DecodeError
from frostfs_sdk.protos.models.session import types_pb2 as types_pb2_session
class SessionMapper:
@staticmethod
def serialize(token: types_pb2_session.SessionToken) -> bytes:
"""
Serializes a SessionToken object into a byte array.
:param token: A SessionToken Protobuf object.
:return: A byte array representing the serialized SessionToken.
:raises ValueError: If the input token is None.
:raises Exception: If serialization fails.
"""
if token is None:
raise ValueError(f"Input parameter is missing: {types_pb2_session.SessionToken.__name__}")
try:
# Serialize the token to bytes
return token.SerializeToString()
except Exception as e:
raise Exception(f"Serialization failed: {str(e)}")
@staticmethod
def deserialize_session_token(bytes_data: bytes) -> types_pb2_session.SessionToken:
"""
Deserializes a byte array into a SessionToken object.
:param bytes_data: A byte array representing the serialized SessionToken.
:return: A SessionToken Protobuf object.
:raises ValueError: If the input byte array is None or empty.
:raises Exception: If deserialization fails.
"""
if not bytes_data:
raise ValueError(f"Input parameter is missing: {types_pb2_session.SessionToken.__name__}")
try:
# Deserialize the byte array into a SessionToken object
session_token = types_pb2_session.SessionToken()
session_token.ParseFromString(bytes_data)
return session_token
except DecodeError as e:
raise Exception(f"Deserialization failed: {str(e)}")