[#11] Add Network Snapshot
Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
parent
b69d22966f
commit
c988ff3c76
84 changed files with 2238 additions and 933 deletions
57
src/FrostFS.SDK.ClientV2/Services/SessionServiceProvider.cs
Normal file
57
src/FrostFS.SDK.ClientV2/Services/SessionServiceProvider.cs
Normal file
|
@ -0,0 +1,57 @@
|
|||
using System.Threading.Tasks;
|
||||
|
||||
using FrostFS.SDK.ClientV2.Mappers.GRPC;
|
||||
using FrostFS.Session;
|
||||
|
||||
namespace FrostFS.SDK.ClientV2;
|
||||
|
||||
internal class SessionServiceProvider : ContextAccessor
|
||||
{
|
||||
private readonly SessionService.SessionServiceClient? _sessionServiceClient;
|
||||
|
||||
internal SessionServiceProvider(SessionService.SessionServiceClient? sessionServiceClient, ClientEnvironment context)
|
||||
: base (context)
|
||||
{
|
||||
_sessionServiceClient = sessionServiceClient;
|
||||
}
|
||||
|
||||
internal async Task<SessionToken> CreateSessionAsync(ulong expiration, Context ctx)
|
||||
{
|
||||
var request = new CreateRequest
|
||||
{
|
||||
Body = new CreateRequest.Types.Body
|
||||
{
|
||||
OwnerId = Context.Owner.ToGrpcMessage(),
|
||||
Expiration = expiration
|
||||
}
|
||||
};
|
||||
|
||||
request.AddMetaHeader();
|
||||
request.Sign(Context.Key);
|
||||
|
||||
var token = await CreateSession(request, ctx);
|
||||
|
||||
return token;
|
||||
}
|
||||
|
||||
internal async Task<SessionToken> CreateSession(CreateRequest request, Context ctx)
|
||||
{
|
||||
var resp = await _sessionServiceClient!.CreateAsync(request, null, ctx.Deadline, ctx.CancellationToken);
|
||||
|
||||
return new SessionToken
|
||||
{
|
||||
Body = new SessionToken.Types.Body
|
||||
{
|
||||
Id = resp.Body.Id,
|
||||
SessionKey = resp.Body.SessionKey,
|
||||
OwnerId = request.Body.OwnerId,
|
||||
Lifetime = new SessionToken.Types.Body.Types.TokenLifetime
|
||||
{
|
||||
Exp = request.Body.Expiration,
|
||||
Iat = resp.MetaHeader.Epoch,
|
||||
Nbf = resp.MetaHeader.Epoch,
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue