Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into add_span_events
Browse files Browse the repository at this point in the history
  • Loading branch information
nepridumalnik committed Jan 31, 2025
2 parents 674795a + b8361d8 commit 4365380
Show file tree
Hide file tree
Showing 36 changed files with 529 additions and 325 deletions.
1 change: 1 addition & 0 deletions .mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -1925,6 +1925,7 @@
"grpc/include/userver/ugrpc/client/impl/call_params.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/call_params.hpp",
"grpc/include/userver/ugrpc/client/impl/channel_factory.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/channel_factory.hpp",
"grpc/include/userver/ugrpc/client/impl/client_data.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/client_data.hpp",
"grpc/include/userver/ugrpc/client/impl/client_dependencies.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/client_dependencies.hpp",
"grpc/include/userver/ugrpc/client/impl/codegen_declarations.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/codegen_declarations.hpp",
"grpc/include/userver/ugrpc/client/impl/codegen_definitions.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/codegen_definitions.hpp",
"grpc/include/userver/ugrpc/client/impl/completion_queue_pool.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/client/impl/completion_queue_pool.hpp",
Expand Down
11 changes: 8 additions & 3 deletions cmake/DetectVersion.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,14 @@ function(pacman_version version_output_var pacmanpackage)
)

if (version_result EQUAL 0)
if (version_output MATCHES "^(.*) (.*)-.*$")
set(${version_output_var} ${CMAKE_MATCH_2} PARENT_SCOPE)
message(STATUS "pacman version of ${pacmanpackage}: ${CMAKE_MATCH_2}")
# Possible output is `re2 1:20240702-2` (format spec https://wiki.archlinux.org/title/PKGBUILD#Version)
# `re2` is name
# `1` is epoch (optional)
# `20240702` is version
# `2` is release number
if (version_output MATCHES "^(.*) ([0-9]*:)?(.*)-.*$")
set(${version_output_var} ${CMAKE_MATCH_3} PARENT_SCOPE)
message(STATUS "pacman version of ${pacmanpackage}: ${CMAKE_MATCH_3}")
else()
set(${version_output_var} "NOT_FOUND")
endif()
Expand Down
2 changes: 1 addition & 1 deletion core/include/userver/tracing/span.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class SpanBuilder;
/// @brief Measures the execution time of the current code block, links it with
/// the parent tracing::Spans and stores that info in the log.
///
/// Logging of spans can be controled at runtime via @ref USERVER_NO_LOG_SPANS.
/// Logging of spans can be controlled at runtime via @ref USERVER_NO_LOG_SPANS.
///
/// See @ref scripts/docs/en/userver/logging.md for usage examples and more
/// descriptions.
Expand Down
2 changes: 1 addition & 1 deletion core/include/userver/utils/statistics/labels.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class LabelView final {
LabelView(Label&& label) = delete;
explicit LabelView(const Label& label);
constexpr LabelView(std::string_view name, std::string_view value) : name_(name), value_(value) {
UINVARIANT(!name_.empty(), "The lable name must not be empty.");
UINVARIANT(!name_.empty(), "The label name must not be empty.");
}

template <class T, std::enable_if_t<std::is_arithmetic_v<T>>* = nullptr>
Expand Down
2 changes: 1 addition & 1 deletion core/src/clients/http/client_crl_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ struct TlsServer {

auto tls_server = engine::io::TlsWrapper::StartTlsServer(
std::move(socket),
crypto::LoadCertficatesChainFromString(kServerCertificate),
crypto::LoadCertificatesChainFromString(kServerCertificate),
crypto::PrivateKey::LoadFromString(kRevokedServerPrivateKey),
deadline,
cas
Expand Down
4 changes: 2 additions & 2 deletions core/src/engine/io/tls_wrapper_benchmark.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ constexpr auto kDeadlineMaxTime = std::chrono::seconds{60};
[&reading, deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
deadline
);
Expand Down Expand Up @@ -141,7 +141,7 @@ BENCHMARK(tls_write_all_buffered)->RangeMultiplier(2)->Range(1 << 6, 1 << 12)->U
[&reading, deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
deadline
);
Expand Down
32 changes: 16 additions & 16 deletions core/src/engine/io/tls_wrapper_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ UTEST(TlsWrapper, InitListSmall) {
[deadline, kDataA, kDataB, kDataC, kDataD](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert_chain),
crypto::LoadCertificatesChainFromString(cert_chain),
crypto::PrivateKey::LoadFromString(chain_private_key),
deadline
);
Expand Down Expand Up @@ -274,7 +274,7 @@ UTEST(TlsWrapper, InitListLarge) {
[deadline, kDataA, kDataB, kDataC, kDataD](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
deadline
);
Expand Down Expand Up @@ -310,7 +310,7 @@ UTEST(TlsWrapper, InitListSmallThenLarge) {
[deadline, kDataSmall, kDataLarge](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
deadline
);
Expand Down Expand Up @@ -342,7 +342,7 @@ UTEST_MT(TlsWrapper, Smoke, 2) {
try {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand Down Expand Up @@ -389,7 +389,7 @@ UTEST_MT(TlsWrapper, DocTest, 2) {
[deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
deadline
);
Expand Down Expand Up @@ -421,7 +421,7 @@ UTEST(TlsWrapper, Move) {
try {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand Down Expand Up @@ -471,7 +471,7 @@ UTEST(TlsWrapper, ConnectTimeout) {
EXPECT_THROW(
static_cast<void>(io::TlsWrapper::StartTlsServer(
std::move(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
Deadline::FromDuration(kShortTimeout)
)),
Expand All @@ -490,7 +490,7 @@ UTEST_MT(TlsWrapper, IoTimeout, 2) {
[test_deadline, &timeout_happened](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand Down Expand Up @@ -527,7 +527,7 @@ UTEST(TlsWrapper, Cancel) {
[test_deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand All @@ -554,7 +554,7 @@ UTEST_MT(TlsWrapper, CertKeyMismatch, 2) {
UEXPECT_THROW(
static_cast<void>(io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(other_key),
test_deadline
)),
Expand All @@ -581,7 +581,7 @@ UTEST_MT(TlsWrapper, NonTlsClient, 2) {
UEXPECT_THROW(
static_cast<void>(io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(other_key),
test_deadline
)),
Expand Down Expand Up @@ -622,7 +622,7 @@ UTEST_MT(TlsWrapper, DoubleSmoke, 4) {
[test_deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand All @@ -643,7 +643,7 @@ UTEST_MT(TlsWrapper, DoubleSmoke, 4) {
[test_deadline](auto&& server) {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(other_cert),
crypto::LoadCertificatesChainFromString(other_cert),
crypto::PrivateKey::LoadFromString(other_key),
test_deadline
);
Expand Down Expand Up @@ -696,7 +696,7 @@ UTEST(TlsWrapper, InvalidSocket) {
UEXPECT_THROW(static_cast<void>(io::TlsWrapper::StartTlsClient({}, {}, test_deadline)), io::TlsException);
UEXPECT_THROW(
static_cast<void>(io::TlsWrapper::StartTlsServer(
{}, crypto::LoadCertficatesChainFromString(cert), crypto::PrivateKey::LoadFromString(key), test_deadline
{}, crypto::LoadCertificatesChainFromString(cert), crypto::PrivateKey::LoadFromString(key), test_deadline
)),
io::TlsException
);
Expand All @@ -713,7 +713,7 @@ UTEST(TlsWrapper, PeerShutdown) {
try {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand Down Expand Up @@ -755,7 +755,7 @@ UTEST(TlsWrapper, PeerDisconnect) {
try {
auto tls_server = io::TlsWrapper::StartTlsServer(
std::forward<decltype(server)>(server),
crypto::LoadCertficatesChainFromString(cert),
crypto::LoadCertificatesChainFromString(cert),
crypto::PrivateKey::LoadFromString(key),
test_deadline
);
Expand Down
2 changes: 1 addition & 1 deletion core/src/server/net/listener_config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ PortConfig Parse(const yaml_config::YamlConfig& value, formats::parse::To<PortCo
}
if (!cert_path.empty()) {
auto contents = fs::blocking::ReadFileContents(cert_path);
config.tls_cert_chain = crypto::LoadCertficatesChainFromString(contents);
config.tls_cert_chain = crypto::LoadCertificatesChainFromString(contents);
config.tls = true;
}
if (!pkey_path.empty()) {
Expand Down
7 changes: 4 additions & 3 deletions grpc/include/userver/ugrpc/client/client_factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include <userver/ugrpc/client/client_factory_settings.hpp>
#include <userver/ugrpc/client/client_settings.hpp>
#include <userver/ugrpc/client/impl/client_dependencies.hpp>
#include <userver/ugrpc/client/middlewares/base.hpp>

USERVER_NAMESPACE_BEGIN
Expand All @@ -38,7 +39,7 @@ class ClientFactory final {
public:
/// @brief Make a client of the specified code-generated type.
template <typename Client>
Client MakeClient(ClientSettings&& settings);
Client MakeClient(ClientSettings&& client_settings);

/// @deprecated Use the overload taking @ref ClientSettings instead.
/// @brief Make a client of the specified code-generated type.
Expand All @@ -50,7 +51,7 @@ class ClientFactory final {
/// @cond
// For internal use only.
ClientFactory(
ClientFactorySettings&& settings,
ClientFactorySettings&& client_factory_settings,
engine::TaskProcessor& channel_task_processor,
MiddlewareFactories mws,
ugrpc::impl::CompletionQueuePoolBase& completion_queues,
Expand All @@ -63,7 +64,7 @@ class ClientFactory final {
private:
impl::ClientDependencies MakeClientDependencies(ClientSettings&& settings);

ClientFactorySettings settings_;
ClientFactorySettings client_factory_settings_;
engine::TaskProcessor& channel_task_processor_;
MiddlewareFactories mws_;
ugrpc::impl::CompletionQueuePoolBase& completion_queues_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ namespace ugrpc::client {
///
/// Name | Description | Default value
/// ---- | ----------- | -------------
/// task-processor | the task processor for blocking channel creation | -
/// channel-args | a map of channel arguments, see gRPC Core docs | {}
/// auth-type | authentication method, see above | -
/// default-service-config | default service config, see above | -
Expand Down
6 changes: 0 additions & 6 deletions grpc/include/userver/ugrpc/client/client_factory_settings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
#include <grpcpp/security/credentials.h>
#include <grpcpp/support/channel_arguments.h>

#include <userver/logging/level.hpp>

USERVER_NAMESPACE_BEGIN

namespace ugrpc::client {
Expand All @@ -29,10 +27,6 @@ struct ClientFactorySettings final {
/// @see https://grpc.github.io/grpc/core/group__grpc__arg__keys.html
grpc::ChannelArguments channel_args{};

/// The logging level override for the internal grpcpp library. Must be either
/// `kDebug`, `kInfo` or `kError`.
logging::Level native_log_level{logging::Level::kError};

/// Number of underlying channels that will be created for every client
/// in this factory.
std::size_t channel_count{1};
Expand Down
26 changes: 2 additions & 24 deletions grpc/include/userver/ugrpc/client/impl/client_data.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,14 @@

#include <grpcpp/completion_queue.h>

#include <userver/dynamic_config/source.hpp>
#include <userver/engine/task/task_processor_fwd.hpp>
#include <userver/dynamic_config/snapshot.hpp>
#include <userver/rcu/rcu.hpp>
#include <userver/testsuite/grpc_control.hpp>
#include <userver/utils/fixed_array.hpp>

#include <userver/ugrpc/client/client_factory_settings.hpp>
#include <userver/ugrpc/client/client_settings.hpp>
#include <userver/ugrpc/client/fwd.hpp>
#include <userver/ugrpc/client/impl/channel_factory.hpp>
#include <userver/ugrpc/client/impl/client_dependencies.hpp>
#include <userver/ugrpc/client/impl/stub_any.hpp>
#include <userver/ugrpc/client/impl/stub_pool.hpp>
#include <userver/ugrpc/client/middlewares/fwd.hpp>
Expand All @@ -25,28 +23,8 @@

USERVER_NAMESPACE_BEGIN

namespace ugrpc::impl {
class StatisticsStorage;
class CompletionQueuePoolBase;
} // namespace ugrpc::impl

namespace ugrpc::client::impl {

/// Contains all non-code-generated dependencies for creating a gRPC client
struct ClientDependencies final {
std::string client_name;
std::string endpoint;
Middlewares mws;
ugrpc::impl::CompletionQueuePoolBase& completion_queues;
ugrpc::impl::StatisticsStorage& statistics_storage;
dynamic_config::Source config_source;
testsuite::GrpcControl& testsuite_grpc;
const dynamic_config::Key<ClientQos>* qos{nullptr};
const ClientFactorySettings& client_factory_settings;
engine::TaskProcessor& channel_task_processor;
DedicatedMethodsConfig dedicated_methods_config;
};

struct GenericClientTag final {
explicit GenericClientTag() = default;
};
Expand Down
39 changes: 39 additions & 0 deletions grpc/include/userver/ugrpc/client/impl/client_dependencies.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#pragma once

#include <string>

#include <userver/dynamic_config/source.hpp>
#include <userver/engine/task/task_processor_fwd.hpp>
#include <userver/testsuite/grpc_control.hpp>

#include <userver/ugrpc/client/client_factory_settings.hpp>
#include <userver/ugrpc/client/client_settings.hpp>
#include <userver/ugrpc/client/middlewares/fwd.hpp>

USERVER_NAMESPACE_BEGIN

namespace ugrpc::impl {
class StatisticsStorage;
class CompletionQueuePoolBase;
} // namespace ugrpc::impl

namespace ugrpc::client::impl {

/// Contains all non-code-generated dependencies for creating a gRPC client
struct ClientDependencies final {
std::string client_name;
std::string endpoint;
Middlewares mws;
ugrpc::impl::CompletionQueuePoolBase& completion_queues;
ugrpc::impl::StatisticsStorage& statistics_storage;
dynamic_config::Source config_source;
testsuite::GrpcControl& testsuite_grpc;
const dynamic_config::Key<ClientQos>* qos{nullptr};
const ClientFactorySettings& client_factory_settings;
engine::TaskProcessor& channel_task_processor;
DedicatedMethodsConfig dedicated_methods_config;
};

} // namespace ugrpc::client::impl

USERVER_NAMESPACE_END
Loading

0 comments on commit 4365380

Please sign in to comment.