Skip to content

Commit

Permalink
[.NET SDK]: Make TableClient.KeepAlive public and micro refactoring S…
Browse files Browse the repository at this point in the history
…DK (#101)

* [.NET SDK]: Make TableClient.KeepAlive public and micro refactoring SDK

* fix linter
  • Loading branch information
KirillKurdyukov committed May 20, 2024
1 parent c5a9787 commit fb0cf30
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 55 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- Make KeepAlive method public for TableClient

## v0.3.1
- Fix error: Access denied without user token

Expand Down
10 changes: 2 additions & 8 deletions src/Ydb.Sdk/src/Driver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public class Driver : IDisposable, IAsyncDisposable

private volatile bool _disposed;

internal ILoggerFactory LoggerFactory { get; }
internal string Database => _config.Database;

public Driver(DriverConfig config, ILoggerFactory? loggerFactory = null)
Expand All @@ -37,8 +38,6 @@ public static async Task<Driver> CreateInitialized(DriverConfig config, ILoggerF
return driver;
}

public ILoggerFactory LoggerFactory { get; }

~Driver()
{
Dispose(_disposed);
Expand Down Expand Up @@ -289,11 +288,6 @@ private CallOptions GetCallOptions(RequestSettings settings, bool streaming)
return options;
}

private static Status ConvertStatus(Grpc.Core.Status rpcStatus)
{
return rpcStatus.ConvertStatus();
}

internal sealed class UnaryResponse<TResponse>
{
internal UnaryResponse(TResponse data,
Expand Down Expand Up @@ -354,7 +348,7 @@ public class TransportException : Exception
{
internal TransportException(RpcException e) : base($"Transport exception: {e.Message}", e)
{
Status = ConvertStatus(e.Status);
Status = e.Status.ConvertStatus();
}

public Status Status { get; }
Expand Down
5 changes: 1 addition & 4 deletions src/Ydb.Sdk/src/Services/Query/QueryClientRpc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,7 @@ internal async Task<CreateSessionResponse> CreateSession(SessionPool sessionPool

try
{
var response = await _driver.UnaryCall(
method: QueryService.CreateSessionMethod,
request: request,
settings: settings);
var response = await _driver.UnaryCall(QueryService.CreateSessionMethod, request, settings);

var status = Status.FromProto(response.Data.Status, response.Data.Issues);

Expand Down
4 changes: 1 addition & 3 deletions src/Ydb.Sdk/src/Services/Query/SessionPool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,6 @@ private protected override async Task DeleteSession(string id)
DetachSession(id);

await _client.DeleteSession(id, new DeleteSessionSettings
{
TransportTimeout = SessionBase.DeleteSessionTimeout
});
{ TransportTimeout = SessionBase.DeleteSessionTimeout });
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ public class ExecuteQuerySettings : RequestSettings
{
public ExecMode ExecMode { get; set; } = ExecMode.Execute;
public Syntax Syntax { get; set; }

public StatsMode StatsMode { get; set; }
}

Expand Down Expand Up @@ -256,8 +255,8 @@ internal CommitTransactionResponse(Status status) : base(status)
{
}

private CommitTransactionResponse(Ydb.Query.CommitTransactionResponse proto) : base(
Status.FromProto(proto.Status, proto.Issues))
private CommitTransactionResponse(Ydb.Query.CommitTransactionResponse proto)
: base(Status.FromProto(proto.Status, proto.Issues))
{
}

Expand All @@ -273,8 +272,8 @@ internal RollbackTransactionResponse(Status status) : base(status)
{
}

private RollbackTransactionResponse(Ydb.Query.RollbackTransactionResponse proto) : base(
Status.FromProto(proto.Status, proto.Issues))
private RollbackTransactionResponse(Ydb.Query.RollbackTransactionResponse proto)
: base(Status.FromProto(proto.Status, proto.Issues))
{
}

Expand Down
7 changes: 3 additions & 4 deletions src/Ydb.Sdk/src/Services/Table/KeepAlive.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ public class KeepAliveSettings : OperationRequestSettings

public class KeepAliveResponse : ResponseWithResultBase<KeepAliveResponse.ResultData>
{
internal KeepAliveResponse(Status status, ResultData? result = null)
: base(status, result)
public KeepAliveResponse(Status status, ResultData? result = null) : base(status, result)
{
}

Expand All @@ -25,7 +24,7 @@ public enum SessionStatus : uint

public class ResultData
{
internal ResultData(SessionStatus sessionStatus)
private ResultData(SessionStatus sessionStatus)
{
SessionStatus = sessionStatus;
}
Expand Down Expand Up @@ -54,7 +53,7 @@ private static SessionStatus SessionStatusFromProto(KeepAliveResult.Types.Sessio

public partial class TableClient
{
internal async Task<KeepAliveResponse> KeepAlive(string sessionId, KeepAliveSettings? settings = null)
public async Task<KeepAliveResponse> KeepAlive(string sessionId, KeepAliveSettings? settings = null)
{
settings ??= new KeepAliveSettings();

Expand Down
22 changes: 6 additions & 16 deletions src/Ydb.Sdk/src/Status.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,9 @@ private static string IssuesToString(IReadOnlyList<Issue> issues, int currentInd

public class Status
{
public StatusCode StatusCode { get; }
public static readonly Status Success = new(StatusCode.Success);

public StatusCode StatusCode { get; }
public IReadOnlyList<Issue> Issues { get; }

public Status(StatusCode statusCode, IReadOnlyList<Issue> issues)
Expand All @@ -173,20 +174,14 @@ public Status(StatusCode statusCode, IReadOnlyList<Issue> issues)
Issues = issues;
}

public Status(StatusCode statusCode) : this(
statusCode: statusCode,
issues: Array.Empty<Issue>())
public Status(StatusCode statusCode) : this(statusCode, Array.Empty<Issue>())
{
}

public Status(StatusCode statusCode, string message) : this(
statusCode: statusCode,
issues: new List<Issue> { new(message) })
public Status(StatusCode statusCode, string message) : this(statusCode, new List<Issue> { new(message) })
{
}

public static readonly Status Success = new(StatusCode.Success);

public bool IsSuccess => StatusCode == StatusCode.Success;

public void EnsureSuccess()
Expand Down Expand Up @@ -229,18 +224,13 @@ public static Status FromProto(
StatusIds.Types.StatusCode statusCode,
RepeatedField<IssueMessage> issues)
{
var issuesList = issues
.Select(i => new Issue(i))
.ToList();

return new Status(ConvertStatusCode(statusCode), issuesList);
return new Status(ConvertStatusCode(statusCode), issues.Select(i => new Issue(i)).ToList());
}
}

public class StatusUnsuccessfulException : Exception
{
public StatusUnsuccessfulException(Status status)
: base(status.ToString())
public StatusUnsuccessfulException(Status status) : base(status.ToString())
{
Status = status;
}
Expand Down
3 changes: 1 addition & 2 deletions src/Ydb.Sdk/tests/Auth/StaticAuthTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Xunit;
using Xunit.Abstractions;
using Ydb.Sdk.Auth;
Expand All @@ -19,7 +18,7 @@ public class StaticAuthTests : IDisposable
public StaticAuthTests(ITestOutputHelper output)
{
_output = output;
_loggerFactory = Utils.GetLoggerFactory() ?? NullLoggerFactory.Instance;
_loggerFactory = Utils.GetLoggerFactory();
_logger = _loggerFactory.CreateLogger<StaticAuthTests>();
}

Expand Down
12 changes: 1 addition & 11 deletions src/Ydb.Sdk/tests/Fixture/DriverFixture.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Xunit;

namespace Ydb.Sdk.Tests.Fixture;
Expand All @@ -15,7 +13,7 @@ protected DriverFixture(DriverConfig? driverConfig = null)
database: "/local"
);

Driver = new Driver(driverConfig, GetLoggerFactory());
Driver = new Driver(driverConfig, Utils.GetLoggerFactory());
}

protected abstract void ClientDispose();
Expand All @@ -31,12 +29,4 @@ public Task DisposeAsync()

return Driver.DisposeAsync().AsTask();
}

private static ILoggerFactory? GetLoggerFactory()
{
return new ServiceCollection()
.AddLogging(configure => configure.AddConsole().SetMinimumLevel(LogLevel.Information))
.BuildServiceProvider()
.GetService<ILoggerFactory>();
}
}
5 changes: 3 additions & 2 deletions src/Ydb.Sdk/tests/Utils.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Ydb.Sdk.Services.Table;
using Ydb.Sdk.Value;

Expand Down Expand Up @@ -40,12 +41,12 @@ public static async Task<ExecuteSchemeQueryResponse> ExecuteSchemeQuery(
return (ExecuteSchemeQueryResponse)response;
}

internal static ILoggerFactory? GetLoggerFactory()
internal static ILoggerFactory GetLoggerFactory()
{
return new ServiceCollection()
.AddLogging(configure => configure.AddConsole().SetMinimumLevel(LogLevel.Information))
.BuildServiceProvider()
.GetService<ILoggerFactory>();
.GetService<ILoggerFactory>() ?? NullLoggerFactory.Instance;
}

internal static async Task<ExecuteSchemeQueryResponse> CreateSimpleTable(
Expand Down

0 comments on commit fb0cf30

Please sign in to comment.