[#28] Clients: Make immutable parameters
Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
parent
749000a090
commit
9bb7b5eff8
62 changed files with 2742 additions and 963 deletions
|
@ -49,7 +49,7 @@ public class FrostFSClient : IFrostFSClient
|
|||
|
||||
internal ClientContext ClientCtx { get; set; }
|
||||
|
||||
public static IFrostFSClient GetSingleOwnerInstance(IOptions<ClientSettings> clientOptions, GrpcChannelOptions? channelOptions = null)
|
||||
public static IFrostFSClient GetInstance(IOptions<ClientSettings> clientOptions, GrpcChannelOptions? channelOptions = null)
|
||||
{
|
||||
return new FrostFSClient(clientOptions, channelOptions);
|
||||
}
|
||||
|
@ -170,229 +170,134 @@ public class FrostFSClient : IFrostFSClient
|
|||
}
|
||||
|
||||
#region ApeManagerImplementation
|
||||
public Task<ReadOnlyMemory<byte>> AddChainAsync(PrmApeChainAdd args)
|
||||
public Task<ReadOnlyMemory<byte>> AddChainAsync(PrmApeChainAdd args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
}
|
||||
|
||||
var service = GetApeManagerService();
|
||||
return service.AddChainAsync(args);
|
||||
return GetApeManagerService().AddChainAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task RemoveChainAsync(PrmApeChainRemove args)
|
||||
public Task RemoveChainAsync(PrmApeChainRemove args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
}
|
||||
|
||||
var service = GetApeManagerService();
|
||||
return service.RemoveChainAsync(args);
|
||||
return GetApeManagerService().RemoveChainAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<Chain[]> ListChainAsync(PrmApeChainList args)
|
||||
public Task<Chain[]> ListChainAsync(PrmApeChainList args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetApeManagerService();
|
||||
return service.ListChainAsync(args);
|
||||
return GetApeManagerService().ListChainAsync(args, ctx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ContainerImplementation
|
||||
public Task<FrostFsContainerInfo> GetContainerAsync(PrmContainerGet args)
|
||||
public Task<FrostFsContainerInfo> GetContainerAsync(PrmContainerGet args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetContainerService();
|
||||
return service.GetContainerAsync(args);
|
||||
return GetContainerService().GetContainerAsync(args, ctx);
|
||||
}
|
||||
|
||||
public IAsyncEnumerable<FrostFsContainerId> ListContainersAsync(PrmContainerGetAll? args = null)
|
||||
public IAsyncEnumerable<FrostFsContainerId> ListContainersAsync(PrmContainerGetAll args, CallContext ctx)
|
||||
{
|
||||
args ??= new PrmContainerGetAll();
|
||||
var service = GetContainerService();
|
||||
return service.ListContainersAsync(args);
|
||||
return GetContainerService().ListContainersAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsContainerId> CreateContainerAsync(PrmContainerCreate args)
|
||||
public Task<FrostFsContainerId> CreateContainerAsync(PrmContainerCreate args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetContainerService();
|
||||
return service.CreateContainerAsync(args);
|
||||
return GetContainerService().CreateContainerAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task DeleteContainerAsync(PrmContainerDelete args)
|
||||
public Task DeleteContainerAsync(PrmContainerDelete args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetContainerService();
|
||||
return service.DeleteContainerAsync(args);
|
||||
return GetContainerService().DeleteContainerAsync(args, ctx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region NetworkImplementation
|
||||
public Task<FrostFsNetmapSnapshot> GetNetmapSnapshotAsync(PrmNetmapSnapshot? args)
|
||||
public Task<FrostFsNetmapSnapshot> GetNetmapSnapshotAsync(CallContext ctx)
|
||||
{
|
||||
args ??= new PrmNetmapSnapshot();
|
||||
var service = GetNetmapService();
|
||||
return service.GetNetmapSnapshotAsync(args);
|
||||
return GetNetmapService().GetNetmapSnapshotAsync(ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsNodeInfo> GetNodeInfoAsync(PrmNodeInfo? args)
|
||||
public Task<FrostFsNodeInfo> GetNodeInfoAsync(CallContext ctx)
|
||||
{
|
||||
args ??= new PrmNodeInfo();
|
||||
var service = GetNetmapService();
|
||||
return service.GetLocalNodeInfoAsync(args);
|
||||
return GetNetmapService().GetLocalNodeInfoAsync(ctx);
|
||||
}
|
||||
|
||||
public Task<NetworkSettings> GetNetworkSettingsAsync(PrmNetworkSettings? args)
|
||||
public Task<NetworkSettings> GetNetworkSettingsAsync(CallContext ctx)
|
||||
{
|
||||
args ??= new PrmNetworkSettings();
|
||||
var service = GetNetmapService();
|
||||
return service.GetNetworkSettingsAsync(args.Context!);
|
||||
return GetNetmapService().GetNetworkSettingsAsync(ctx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ObjectImplementation
|
||||
public Task<FrostFsObjectHeader> GetObjectHeadAsync(PrmObjectHeadGet args)
|
||||
public Task<FrostFsHeaderResult> GetObjectHeadAsync(PrmObjectHeadGet args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.GetObjectHeadAsync(args);
|
||||
return GetObjectService().GetObjectHeadAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsObject> GetObjectAsync(PrmObjectGet args)
|
||||
public Task<FrostFsObject> GetObjectAsync(PrmObjectGet args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.GetObjectAsync(args);
|
||||
return GetObjectService().GetObjectAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<RangeReader> GetRangeAsync(PrmRangeGet args)
|
||||
public Task<RangeReader> GetRangeAsync(PrmRangeGet args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.GetRangeAsync(args);
|
||||
return GetObjectService().GetRangeAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<ReadOnlyMemory<byte>[]> GetRangeHashAsync(PrmRangeHashGet args)
|
||||
public Task<ReadOnlyMemory<byte>[]> GetRangeHashAsync(PrmRangeHashGet args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.GetRangeHashAsync(args);
|
||||
return GetObjectService().GetRangeHashAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsObjectId> PutObjectAsync(PrmObjectPut args)
|
||||
public Task<FrostFsObjectId> PutObjectAsync(PrmObjectPut args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.PutObjectAsync(args);
|
||||
return GetObjectService().PutObjectAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsObjectId> PutSingleObjectAsync(PrmSingleObjectPut args)
|
||||
public Task<FrostFsObjectId> PutSingleObjectAsync(PrmSingleObjectPut args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.PutSingleObjectAsync(args);
|
||||
return GetObjectService().PutSingleObjectAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task<FrostFsObjectId> PatchObjectAsync(PrmObjectPatch args)
|
||||
public Task<FrostFsObjectId> PatchObjectAsync(PrmObjectPatch args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
}
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.PatchObjectAsync(args);
|
||||
return GetObjectService().PatchObjectAsync(args, ctx);
|
||||
}
|
||||
|
||||
public Task DeleteObjectAsync(PrmObjectDelete args)
|
||||
public Task DeleteObjectAsync(PrmObjectDelete args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.DeleteObjectAsync(args);
|
||||
return GetObjectService().DeleteObjectAsync(args, ctx);
|
||||
}
|
||||
|
||||
public IAsyncEnumerable<FrostFsObjectId> SearchObjectsAsync(PrmObjectSearch args)
|
||||
public IAsyncEnumerable<FrostFsObjectId> SearchObjectsAsync(PrmObjectSearch args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetObjectService();
|
||||
return service.SearchObjectsAsync(args);
|
||||
return GetObjectService().SearchObjectsAsync(args, ctx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Session Implementation
|
||||
public async Task<FrostFsSessionToken> CreateSessionAsync(PrmSessionCreate args)
|
||||
public async Task<FrostFsSessionToken> CreateSessionAsync(PrmSessionCreate args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var token = await CreateSessionInternalAsync(args).ConfigureAwait(false);
|
||||
var token = await CreateSessionInternalAsync(args, ctx).ConfigureAwait(false);
|
||||
|
||||
return new FrostFsSessionToken(token);
|
||||
}
|
||||
|
||||
internal Task<SessionToken> CreateSessionInternalAsync(PrmSessionCreate args)
|
||||
internal Task<SessionToken> CreateSessionInternalAsync(PrmSessionCreate args, CallContext ctx)
|
||||
{
|
||||
if (args is null)
|
||||
throw new ArgumentNullException(nameof(args));
|
||||
|
||||
var service = GetSessionService();
|
||||
return service.CreateSessionAsync(args);
|
||||
return service.CreateSessionAsync(args, ctx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Accounting Implementation
|
||||
public async Task<Accounting.Decimal> GetBalanceAsync(PrmBalance? args)
|
||||
public async Task<Accounting.Decimal> GetBalanceAsync(CallContext ctx)
|
||||
{
|
||||
args ??= new PrmBalance();
|
||||
|
||||
var service = GetAccouningService();
|
||||
return await service.GetBallance(args).ConfigureAwait(false);
|
||||
return await GetAccouningService().GetBallance(ctx).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ToolsImplementation
|
||||
public FrostFsObjectId CalculateObjectId(FrostFsObjectHeader header)
|
||||
private async void CheckFrostFsVersionSupport(CallContext ctx)
|
||||
{
|
||||
if (header == null)
|
||||
throw new ArgumentNullException(nameof(header));
|
||||
|
||||
return ObjectTools.CalculateObjectId(header, this.ClientCtx);
|
||||
}
|
||||
#endregion
|
||||
|
||||
private async void CheckFrostFsVersionSupport(CallContext? ctx = default)
|
||||
{
|
||||
var args = new PrmNodeInfo(ctx);
|
||||
|
||||
var service = GetNetmapService();
|
||||
var localNodeInfo = await service.GetLocalNodeInfoAsync(args).ConfigureAwait(false);
|
||||
var localNodeInfo = await service.GetLocalNodeInfoAsync(ctx).ConfigureAwait(false);
|
||||
|
||||
if (!localNodeInfo.Version.IsSupported(ClientCtx.Version))
|
||||
{
|
||||
|
@ -559,10 +464,8 @@ public class FrostFSClient : IFrostFSClient
|
|||
|
||||
public async Task<string?> Dial(CallContext ctx)
|
||||
{
|
||||
var prm = new PrmBalance(ctx);
|
||||
|
||||
var service = GetAccouningService();
|
||||
_ = await service.GetBallance(prm).ConfigureAwait(false);
|
||||
_ = await service.GetBallance(ctx).ConfigureAwait(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue