diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e7ee174..8ad0d4da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- Make KeepAlive method public for TableClient + ## v0.3.1 - Fix error: Access denied without user token diff --git a/src/Ydb.Sdk/src/Driver.cs b/src/Ydb.Sdk/src/Driver.cs index 7b1f07a9..021c8dd4 100644 --- a/src/Ydb.Sdk/src/Driver.cs +++ b/src/Ydb.Sdk/src/Driver.cs @@ -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) @@ -37,8 +38,6 @@ public static async Task CreateInitialized(DriverConfig config, ILoggerF return driver; } - public ILoggerFactory LoggerFactory { get; } - ~Driver() { Dispose(_disposed); @@ -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 { internal UnaryResponse(TResponse data, @@ -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; } diff --git a/src/Ydb.Sdk/src/Services/Query/QueryClientRpc.cs b/src/Ydb.Sdk/src/Services/Query/QueryClientRpc.cs index 1ce0c36e..e2efce08 100644 --- a/src/Ydb.Sdk/src/Services/Query/QueryClientRpc.cs +++ b/src/Ydb.Sdk/src/Services/Query/QueryClientRpc.cs @@ -23,10 +23,7 @@ internal async Task 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); diff --git a/src/Ydb.Sdk/src/Services/Query/SessionPool.cs b/src/Ydb.Sdk/src/Services/Query/SessionPool.cs index 211ec57b..6249b714 100644 --- a/src/Ydb.Sdk/src/Services/Query/SessionPool.cs +++ b/src/Ydb.Sdk/src/Services/Query/SessionPool.cs @@ -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 }); } } diff --git a/src/Ydb.Sdk/src/Services/Query/QueryGrpcData.cs b/src/Ydb.Sdk/src/Services/Query/Settings.cs similarity index 97% rename from src/Ydb.Sdk/src/Services/Query/QueryGrpcData.cs rename to src/Ydb.Sdk/src/Services/Query/Settings.cs index 2f22c576..35b261a8 100644 --- a/src/Ydb.Sdk/src/Services/Query/QueryGrpcData.cs +++ b/src/Ydb.Sdk/src/Services/Query/Settings.cs @@ -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; } } @@ -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)) { } @@ -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)) { } diff --git a/src/Ydb.Sdk/src/Services/Table/KeepAlive.cs b/src/Ydb.Sdk/src/Services/Table/KeepAlive.cs index 0ccfef7c..3d7f0b96 100644 --- a/src/Ydb.Sdk/src/Services/Table/KeepAlive.cs +++ b/src/Ydb.Sdk/src/Services/Table/KeepAlive.cs @@ -11,8 +11,7 @@ public class KeepAliveSettings : OperationRequestSettings public class KeepAliveResponse : ResponseWithResultBase { - internal KeepAliveResponse(Status status, ResultData? result = null) - : base(status, result) + public KeepAliveResponse(Status status, ResultData? result = null) : base(status, result) { } @@ -25,7 +24,7 @@ public enum SessionStatus : uint public class ResultData { - internal ResultData(SessionStatus sessionStatus) + private ResultData(SessionStatus sessionStatus) { SessionStatus = sessionStatus; } @@ -54,7 +53,7 @@ private static SessionStatus SessionStatusFromProto(KeepAliveResult.Types.Sessio public partial class TableClient { - internal async Task KeepAlive(string sessionId, KeepAliveSettings? settings = null) + public async Task KeepAlive(string sessionId, KeepAliveSettings? settings = null) { settings ??= new KeepAliveSettings(); diff --git a/src/Ydb.Sdk/src/Status.cs b/src/Ydb.Sdk/src/Status.cs index 3fa59f40..cc266776 100644 --- a/src/Ydb.Sdk/src/Status.cs +++ b/src/Ydb.Sdk/src/Status.cs @@ -163,8 +163,9 @@ private static string IssuesToString(IReadOnlyList issues, int currentInd public class Status { - public StatusCode StatusCode { get; } + public static readonly Status Success = new(StatusCode.Success); + public StatusCode StatusCode { get; } public IReadOnlyList Issues { get; } public Status(StatusCode statusCode, IReadOnlyList issues) @@ -173,20 +174,14 @@ public Status(StatusCode statusCode, IReadOnlyList issues) Issues = issues; } - public Status(StatusCode statusCode) : this( - statusCode: statusCode, - issues: Array.Empty()) + public Status(StatusCode statusCode) : this(statusCode, Array.Empty()) { } - public Status(StatusCode statusCode, string message) : this( - statusCode: statusCode, - issues: new List { new(message) }) + public Status(StatusCode statusCode, string message) : this(statusCode, new List { new(message) }) { } - public static readonly Status Success = new(StatusCode.Success); - public bool IsSuccess => StatusCode == StatusCode.Success; public void EnsureSuccess() @@ -229,18 +224,13 @@ public static Status FromProto( StatusIds.Types.StatusCode statusCode, RepeatedField 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; } diff --git a/src/Ydb.Sdk/tests/Auth/StaticAuthTests.cs b/src/Ydb.Sdk/tests/Auth/StaticAuthTests.cs index 09a79d3f..110f21e3 100644 --- a/src/Ydb.Sdk/tests/Auth/StaticAuthTests.cs +++ b/src/Ydb.Sdk/tests/Auth/StaticAuthTests.cs @@ -1,5 +1,4 @@ using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; using Xunit; using Xunit.Abstractions; using Ydb.Sdk.Auth; @@ -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(); } diff --git a/src/Ydb.Sdk/tests/Fixture/DriverFixture.cs b/src/Ydb.Sdk/tests/Fixture/DriverFixture.cs index d892ba3c..e98b628f 100644 --- a/src/Ydb.Sdk/tests/Fixture/DriverFixture.cs +++ b/src/Ydb.Sdk/tests/Fixture/DriverFixture.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; using Xunit; namespace Ydb.Sdk.Tests.Fixture; @@ -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(); @@ -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(); - } } diff --git a/src/Ydb.Sdk/tests/Utils.cs b/src/Ydb.Sdk/tests/Utils.cs index d270a8db..3032bb55 100644 --- a/src/Ydb.Sdk/tests/Utils.cs +++ b/src/Ydb.Sdk/tests/Utils.cs @@ -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; @@ -40,12 +41,12 @@ public static async Task ExecuteSchemeQuery( return (ExecuteSchemeQueryResponse)response; } - internal static ILoggerFactory? GetLoggerFactory() + internal static ILoggerFactory GetLoggerFactory() { return new ServiceCollection() .AddLogging(configure => configure.AddConsole().SetMinimumLevel(LogLevel.Information)) .BuildServiceProvider() - .GetService(); + .GetService() ?? NullLoggerFactory.Instance; } internal static async Task CreateSimpleTable(