Skip to content

Commit cfc30db

Browse files
authored
Merge ca74685 into 8efacf9
2 parents 8efacf9 + ca74685 commit cfc30db

File tree

17 files changed

+398
-247
lines changed

17 files changed

+398
-247
lines changed

ydb/core/kqp/federated_query/kqp_federated_query_actors.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ class TDescribeSecretsActor: public NActors::TActorBootstrapped<TDescribeSecrets
1919
std::vector<TString> secretValues;
2020
secretValues.reserve(SecretIds.size());
2121
for (const auto& secretId: SecretIds) {
22-
TString secretValue;
23-
bool isFound = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretId), secretValue);
24-
if (isFound) {
25-
secretValues.push_back(secretValue);
22+
auto secretValue = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretId));
23+
if (secretValue.IsSuccess()) {
24+
secretValues.push_back(secretValue.DetachResult());
2625
continue;
2726
}
2827

@@ -32,10 +31,12 @@ class TDescribeSecretsActor: public NActors::TActorBootstrapped<TDescribeSecrets
3231
return;
3332
}
3433

35-
isFound = !secretIds.empty() && snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretIds[0]), secretValue);
36-
if (isFound) {
37-
secretValues.push_back(secretValue);
38-
continue;
34+
if (!secretIds.empty()) {
35+
secretValue = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretIds[0]));
36+
if (secretValue.IsSuccess()) {
37+
secretValues.push_back(secretValue.DetachResult());
38+
continue;
39+
}
3940
}
4041

4142
if (!AskSent) {

ydb/core/tx/replication/controller/secret_resolver.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ class TSecretResolver: public TActorBootstrapped<TSecretResolver> {
4747
void Handle(NMetadata::NProvider::TEvRefreshSubscriberData::TPtr& ev) {
4848
const auto* snapshot = ev->Get()->GetSnapshotAs<NMetadata::NSecret::TSnapshot>();
4949

50-
TString secretValue;
51-
if (!snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(SecretId), secretValue)) {
52-
return Reply(false, TStringBuilder() << "Secret '" << SecretName << "' not found");
50+
auto secretValue = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(SecretId));
51+
if (secretValue.IsFail()) {
52+
return Reply(false, secretValue.GetErrorMessage());
5353
}
5454

55-
Reply(secretValue);
55+
Reply(secretValue.DetachResult());
5656
}
5757

5858
template <typename... Args>

ydb/core/tx/tiering/tier/checker.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ void TTierPreparationActor::StartChecker() {
1010
return;
1111
}
1212
auto g = PassAwayGuard();
13-
for (auto&& tier : Objects) {
14-
if (!Secrets->CheckSecretAccess(tier.GetAccessKey(), Context.GetExternalData().GetUserToken())) {
15-
Controller->OnPreparationProblem("no access for secret: " + tier.GetAccessKey().DebugString());
16-
return;
17-
} else if (!Secrets->CheckSecretAccess(tier.GetSecretKey(), Context.GetExternalData().GetUserToken())) {
18-
Controller->OnPreparationProblem("no access for secret: " + tier.GetSecretKey().DebugString());
19-
return;
13+
if (const auto& userToken = Context.GetExternalData().GetUserToken()) {
14+
for (auto&& tier : Objects) {
15+
if (!Secrets->CheckSecretAccess(tier.GetAccessKey(), *userToken)) {
16+
Controller->OnPreparationProblem("no access for secret: " + tier.GetAccessKey().DebugString());
17+
return;
18+
} else if (!Secrets->CheckSecretAccess(tier.GetSecretKey(), *userToken)) {
19+
Controller->OnPreparationProblem("no access for secret: " + tier.GetSecretKey().DebugString());
20+
return;
21+
}
2022
}
2123
}
2224
Controller->OnPreparationFinished(std::move(Objects));

ydb/core/tx/tiering/tier/object.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,22 @@ NMetadata::NInternal::TTableRecord TTierConfig::SerializeToRecord() const {
4444
return result;
4545
}
4646

47-
NKikimrSchemeOp::TS3Settings TTierConfig::GetPatchedConfig(
48-
std::shared_ptr<NMetadata::NSecret::TSnapshot> secrets) const
49-
{
47+
NKikimrSchemeOp::TS3Settings TTierConfig::GetPatchedConfig(std::shared_ptr<NMetadata::NSecret::ISnapshotAccessor> secrets) const {
5048
auto config = ProtoConfig.GetObjectStorage();
5149
if (secrets) {
52-
if (!secrets->GetSecretValue(GetAccessKey(), *config.MutableAccessKey())) {
53-
ALS_ERROR(NKikimrServices::TX_TIERING) << "cannot read access key secret for " << GetAccessKey().DebugString();
50+
{
51+
auto value = secrets->GetSecretValue(GetAccessKey());
52+
if (value.IsFail()) {
53+
AFL_ERROR(NKikimrServices::TX_TIERING)("error", "invalid_secret")("object", "access_key")("reason", value.GetErrorMessage());
54+
}
55+
config.SetAccessKey(value.DetachResult());
5456
}
55-
if (!secrets->GetSecretValue(GetSecretKey(), *config.MutableSecretKey())) {
56-
ALS_ERROR(NKikimrServices::TX_TIERING) << "cannot read secret key secret for " << GetSecretKey().DebugString();
57+
{
58+
auto value = secrets->GetSecretValue(GetSecretKey());
59+
if (value.IsFail()) {
60+
AFL_ERROR(NKikimrServices::TX_TIERING)("error", "invalid_secret")("object", "secret_key")("reason", value.GetErrorMessage());
61+
}
62+
config.SetSecretKey(value.DetachResult());
5763
}
5864
}
5965
return config;

ydb/core/tx/tiering/tier/object.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
#include <ydb/services/metadata/manager/preparation_controller.h>
55
#include <ydb/services/metadata/manager/table_record.h>
66
#include <ydb/services/metadata/manager/object.h>
7+
#include <ydb/services/metadata/secret/accessor/snapshot.h>
8+
#include <ydb/services/metadata/secret/accessor/secret_id.h>
79
#include <ydb/services/metadata/service.h>
8-
#include <ydb/services/metadata/secret/secret.h>
910

1011
#include <library/cpp/json/writer/json_value.h>
1112

@@ -59,7 +60,7 @@ class TTierConfig: public NMetadata::NModifications::TObject<TTierConfig> {
5960

6061

6162
static NMetadata::IClassBehaviour::TPtr GetBehaviour();
62-
NKikimrSchemeOp::TS3Settings GetPatchedConfig(std::shared_ptr<NMetadata::NSecret::TSnapshot> secrets) const;
63+
NKikimrSchemeOp::TS3Settings GetPatchedConfig(std::shared_ptr<NMetadata::NSecret::ISnapshotAccessor> secrets) const;
6364

6465
class TDecoder: public NMetadata::NInternal::TDecoderBase {
6566
private:

ydb/services/ext_index/ut/ut_ext_index.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <ydb/core/cms/console/configs_dispatcher.h>
22
#include <ydb/core/testlib/cs_helper.h>
3-
#include <ydb/core/tx/tiering/external_data.h>
43
#include <ydb/core/tx/schemeshard/schemeshard.h>
54
#include <ydb/core/tx/tx_proxy/proxy.h>
65
#include <ydb/core/formats/arrow/size_calcer.h>
@@ -25,8 +24,6 @@
2524

2625
namespace NKikimr {
2726

28-
using namespace NColumnShard;
29-
3027
class TLocalHelper: public Tests::NCS::THelper {
3128
private:
3229
using TBase = Tests::NCS::THelper;

ydb/services/metadata/initializer/ut/ut_init.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <ydb/core/cms/console/configs_dispatcher.h>
22
#include <ydb/core/testlib/cs_helper.h>
3-
#include <ydb/core/tx/tiering/external_data.h>
43
#include <ydb/core/tx/schemeshard/schemeshard.h>
54
#include <ydb/core/tx/tx_proxy/proxy.h>
65
#include <ydb/core/wrappers/ut_helpers/s3_mock.h>
@@ -28,8 +27,6 @@
2827

2928
namespace NKikimr {
3029

31-
using namespace NColumnShard;
32-
3330
Y_UNIT_TEST_SUITE(Initializer) {
3431

3532
class TTestInitializer: public NMetadata::NInitializer::IInitializationBehaviour {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include "secret_id.h"
2+
3+
#include <ydb/services/metadata/manager/ydb_value_operator.h>
4+
#include <library/cpp/digest/md5/md5.h>
5+
6+
namespace NKikimr::NMetadata::NSecret {
7+
8+
TString TSecretId::SerializeToString() const {
9+
TStringBuilder sb;
10+
sb << "USId:" << OwnerUserId << ":" << SecretId;
11+
return sb;
12+
}
13+
14+
15+
TString TSecretIdOrValue::DebugString() const {
16+
return std::visit(TOverloaded(
17+
[](std::monostate) -> TString{
18+
return "__NONE__";
19+
},
20+
[](const TSecretId& id) -> TString{
21+
return id.SerializeToString();
22+
},
23+
[](const TSecretName& name) -> TString{
24+
return name.SerializeToString();
25+
},
26+
[](const TString& value) -> TString{
27+
return MD5::Calc(value);
28+
}
29+
),
30+
State);
31+
}
32+
33+
}

0 commit comments

Comments
 (0)