From d66081c01f2a856ff6fbccf1dc3e78e3de30d5be Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Mon, 23 Aug 2021 11:04:14 -0700 Subject: [PATCH] use package version for telemetry (#2780) --- .../src/key_client.cpp | 3 +- .../test/ut/mocked_client_test.cpp | 34 +++++++++++++++++++ .../test/ut/mocked_transport_adapter_test.hpp | 8 ++++- .../src/secret_client.cpp | 3 +- 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp b/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp index b92a10bda..02c434e53 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp @@ -12,6 +12,7 @@ #include "private/key_request_parameters.hpp" #include "private/key_serializers.hpp" #include "private/keyvault_protocol.hpp" +#include "private/package_version.hpp" #include #include @@ -87,7 +88,7 @@ KeyClient::KeyClient( m_pipeline = std::make_shared( options, KeyVaultServicePackageName, - m_apiVersion, + PackageVersion::ToString(), std::move(perRetrypolicies), std::move(perCallpolicies)); } diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_client_test.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_client_test.cpp index b4ee0a7ab..0893b3125 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_client_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_client_test.cpp @@ -49,6 +49,40 @@ TEST_F(MockedTransportAdapterTest, keyvaultTelemetryId) EXPECT_TRUE(foundHeader); } +TEST_F(MockedTransportAdapterTest, keyvaultTelemetryIdVersion) +{ + m_client = std::make_unique< + Azure::Security::KeyVault::Keys::Test::KeyClientWithNoAuthenticationPolicy>( + "url", m_clientOptions); + + std::string const expectedTelemetryVersionString( + Azure::Security::KeyVault::Keys::_detail::PackageVersion::ToString()); + std::string telemetryStart("azsdk-cpp-keyvault-keys/"); + + // The fake response from the mocked transport adapter is good for parsing a Key back + auto response = m_client->GetKey("name"); + + // The response is an echo of the sent headers. Let's find the telemetry ID + auto foundHeader = false; + for (auto& header : response.RawResponse->GetHeaders()) + { + if (Azure::Core::_internal::StringExtensions::LocaleInvariantCaseInsensitiveEqual( + header.first, "User-Agent")) + { + foundHeader = true; + EXPECT_PRED2( + [](std::string const& received, std::string const& sent) { + return Azure::Core::_internal::StringExtensions::LocaleInvariantCaseInsensitiveEqual( + received, sent); + }, + header.second.substr(telemetryStart.size(), expectedTelemetryVersionString.size()), + expectedTelemetryVersionString); + break; + } + } + EXPECT_TRUE(foundHeader); +} + TEST_F(MockedTransportAdapterTest, CreateKeyRSA) { std::string applicationId("CreateKeyRSA"); diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_transport_adapter_test.hpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_transport_adapter_test.hpp index 02fb56911..39343b290 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_transport_adapter_test.hpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/mocked_transport_adapter_test.hpp @@ -11,10 +11,12 @@ #include "./../../src/private/key_serializers.hpp" #include "./../../src/private/keyvault_protocol.hpp" +#include "./../../src/private/package_version.hpp" #include #include #include + #include #include @@ -105,7 +107,11 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { nam std::vector> perCallpolicies; std::vector> perRetrypolicies; m_pipeline = std::make_unique( - options, "test", "version", std::move(perRetrypolicies), std::move(perCallpolicies)); + options, + "keyvault-keys", + Azure::Security::KeyVault::Keys::_detail::PackageVersion::ToString(), + std::move(perRetrypolicies), + std::move(perCallpolicies)); } }; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp index 047e66db7..6573ac5ce 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp @@ -21,6 +21,7 @@ using namespace Azure::Security::KeyVault::Secrets; using namespace Azure::Core::Http::Policies; using namespace Azure::Core::Http::Policies::_internal; +using namespace Azure::Security::KeyVault::Secrets::_detail; namespace { constexpr static const char TelemetryName[] = "keyvault-secrets"; @@ -74,7 +75,7 @@ SecretClient::SecretClient( Azure::Core::Url(vaultUrl), apiVersion, Azure::Core::Http::_internal::HttpPipeline( - options, TelemetryName, apiVersion, std::move(perRetrypolicies), {})); + options, TelemetryName, PackageVersion::ToString(), std::move(perRetrypolicies), {})); } Azure::Response SecretClient::GetSecret(