From beb4a94cb486f1076e9f4ef392d131e7029123ca Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Thu, 19 Aug 2021 10:23:30 -0700 Subject: [PATCH] adding GetUrl to key vault clients (#2761) * adding GetUrl to key vault clients * format --- sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md | 2 ++ .../inc/azure/keyvault/keys/key_client.hpp | 7 +++++++ .../test/ut/key_client_test.cpp | 10 ++++++++++ .../azure-security-keyvault-secrets/CHANGELOG.md | 2 +- .../inc/azure/keyvault/secrets/secret_client.hpp | 7 +++++++ .../src/private/keyvault_protocol.hpp | 7 +++++++ .../src/secret_client.cpp | 2 ++ .../test/ut/secret_client_test.cpp | 10 ++++++++++ 8 files changed, 46 insertions(+), 1 deletion(-) diff --git a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md index ceb3b37ec..3002bb5c4 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md @@ -4,6 +4,8 @@ ### Features Added +- Added `GetUrl()` to `KeyClient`. + ### Breaking Changes ### Bugs Fixed diff --git a/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp index 5830a15d0..f18718d1e 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp +++ b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp @@ -387,6 +387,13 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { ImportKeyOptions const& importKeyOptions, Azure::Core::Context const& context = Azure::Core::Context()) const; + /** + * @brief Gets the key client's primary URL endpoint. + * + * @return The key client's primary URL endpoint. + */ + std::string GetUrl() const { return m_vaultUrl.GetAbsoluteUrl(); } + private: std::unique_ptr SendRequest( Azure::Core::Http::Request& request, diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_test.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_test.cpp index cdc4022cb..d9a6fa11b 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_test.cpp @@ -43,3 +43,13 @@ TEST(KeyClient, ServiceVersion) EXPECT_EQ(options.Version.ToString(), "1.0");); } } + +TEST(KeyClient, GetUrl) +{ + auto credential + = std::make_shared("tenantID", "AppId", "SecretId"); + + auto url = "vaultUrl"; + KeyClient keyClient(url, credential); + EXPECT_EQ(url, keyClient.GetUrl()); +} diff --git a/sdk/keyvault/azure-security-keyvault-secrets/CHANGELOG.md b/sdk/keyvault/azure-security-keyvault-secrets/CHANGELOG.md index f7f7f73af..fbe6f0c0e 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/CHANGELOG.md +++ b/sdk/keyvault/azure-security-keyvault-secrets/CHANGELOG.md @@ -2,4 +2,4 @@ ## 1.0.0-beta.1 (Unreleased) -* initial preview +- initial preview diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp index ffd5337bd..b0b4cefa4 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp @@ -292,5 +292,12 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { DeletedSecretPagedResponse GetDeletedSecrets( GetDeletedSecretsOptions const& options = GetDeletedSecretsOptions(), Azure::Core::Context const& context = Azure::Core::Context()) const; + + /** + * @brief Gets the secret client's primary URL endpoint. + * + * @return The key secret's primary URL endpoint. + */ + std::string GetUrl() const; }; }}}} // namespace Azure::Security::KeyVault::Secrets diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/private/keyvault_protocol.hpp b/sdk/keyvault/azure-security-keyvault-secrets/src/private/keyvault_protocol.hpp index bc56b1adb..a3a7a8710 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/private/keyvault_protocol.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/private/keyvault_protocol.hpp @@ -185,5 +185,12 @@ namespace Azure { namespace Security { namespace KeyVault { namespace _detail { // Use the core pipeline directly to avoid checking the response code. return m_pipeline.Send(request, context); } + + /** + * @brief Get the Url used to create the secret client. + * + * @return A constant reference to the Url. + */ + Azure::Core::Url const& GetUrl() const { return m_vaultUrl; } }; }}}} // namespace Azure::Security::KeyVault::_detail 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 310cd49f4..ef26af9a7 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp @@ -311,3 +311,5 @@ DeletedSecretPagedResponse SecretClient::GetDeletedSecrets( std::move(response.RawResponse), std::make_unique(*this)); } + +std::string SecretClient::GetUrl() const { return m_protocolClient->GetUrl().GetAbsoluteUrl(); } diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_client_test.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_client_test.cpp index 2d6029a5b..8c9e7ec7b 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_client_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_client_test.cpp @@ -42,3 +42,13 @@ TEST(SecretClient, ServiceVersion) EXPECT_EQ(options.Version.ToString(), "1.0");); } } + +TEST(SecretClient, GetUrl) +{ + auto credential + = std::make_shared("tenantID", "AppId", "SecretId"); + + auto url = "vaultUrl"; + SecretClient secretClient(url, credential); + EXPECT_EQ(url, secretClient.GetUrl()); +}