fix pr issues

This commit is contained in:
Nim Wijetunga 2022-07-26 10:14:59 -07:00
parent 26d233c0f8
commit 7cc58cb1af
8 changed files with 19 additions and 18 deletions

View File

@ -96,8 +96,7 @@ Future<Void> checkTenantMode(Transaction tr) {
ACTOR template <class Transaction> ACTOR template <class Transaction>
Future<std::pair<Optional<TenantMapEntry>, bool>> createTenantTransaction(Transaction tr, Future<std::pair<Optional<TenantMapEntry>, bool>> createTenantTransaction(Transaction tr,
TenantNameRef name, TenantNameRef name,
TenantMapEntry tenantEntry, TenantMapEntry tenantEntry) {
bool encrypted) {
ASSERT(tenantEntry.id >= 0); ASSERT(tenantEntry.id >= 0);
if (name.startsWith("\xff"_sr)) { if (name.startsWith("\xff"_sr)) {
@ -130,7 +129,6 @@ Future<std::pair<Optional<TenantMapEntry>, bool>> createTenantTransaction(Transa
} }
tenantEntry.tenantState = TenantState::READY; tenantEntry.tenantState = TenantState::READY;
tenantEntry.encrypted = encrypted;
TenantMetadata::tenantMap.set(tr, name, tenantEntry); TenantMetadata::tenantMap.set(tr, name, tenantEntry);
if (tenantEntry.tenantGroup.present()) { if (tenantEntry.tenantGroup.present()) {
TenantMetadata::tenantGroupTenantIndex.insert(tr, Tuple::makeTuple(tenantEntry.tenantGroup.get(), name)); TenantMetadata::tenantGroupTenantIndex.insert(tr, Tuple::makeTuple(tenantEntry.tenantGroup.get(), name));
@ -158,7 +156,6 @@ Future<int64_t> getNextTenantId(Transaction tr) {
ACTOR template <class DB> ACTOR template <class DB>
Future<Optional<TenantMapEntry>> createTenant(Reference<DB> db, Future<Optional<TenantMapEntry>> createTenant(Reference<DB> db,
TenantName name, TenantName name,
bool encrypted,
TenantMapEntry tenantEntry = TenantMapEntry()) { TenantMapEntry tenantEntry = TenantMapEntry()) {
state Reference<typename DB::TransactionT> tr = db->createTransaction(); state Reference<typename DB::TransactionT> tr = db->createTransaction();
@ -191,7 +188,7 @@ Future<Optional<TenantMapEntry>> createTenant(Reference<DB> db,
} }
state std::pair<Optional<TenantMapEntry>, bool> newTenant = state std::pair<Optional<TenantMapEntry>, bool> newTenant =
wait(createTenantTransaction(tr, name, tenantEntry, encrypted)); wait(createTenantTransaction(tr, name, tenantEntry));
if (newTenant.second) { if (newTenant.second) {
ASSERT(newTenant.first.present()); ASSERT(newTenant.first.present());

View File

@ -117,6 +117,7 @@ private:
bool encrypted) { bool encrypted) {
state TenantMapEntry tenantEntry; state TenantMapEntry tenantEntry;
tenantEntry.setId(tenantId); tenantEntry.setId(tenantId);
tenantEntry.encrypted = encrypted;
for (auto const& [name, value] : configMutations) { for (auto const& [name, value] : configMutations) {
tenantEntry.configure(name, value); tenantEntry.configure(name, value);
@ -127,7 +128,7 @@ private:
} }
std::pair<Optional<TenantMapEntry>, bool> entry = std::pair<Optional<TenantMapEntry>, bool> entry =
wait(TenantAPI::createTenantTransaction(&ryw->getTransaction(), tenantName, tenantEntry, encrypted)); wait(TenantAPI::createTenantTransaction(&ryw->getTransaction(), tenantName, tenantEntry));
return Void(); return Void();
} }

View File

@ -248,7 +248,7 @@ ACTOR Future<Void> clusterWatchDatabase(ClusterControllerData* cluster,
dbInfo.latencyBandConfig = db->serverInfo->get().latencyBandConfig; dbInfo.latencyBandConfig = db->serverInfo->get().latencyBandConfig;
dbInfo.myLocality = db->serverInfo->get().myLocality; dbInfo.myLocality = db->serverInfo->get().myLocality;
dbInfo.client = ClientDBInfo(); dbInfo.client = ClientDBInfo();
dbInfo.client.isEncryptionEnabled = db->serverInfo->get().encryptKeyProxy.present(); dbInfo.client.isEncryptionEnabled = SERVER_KNOBS->ENABLE_ENCRYPTION;
dbInfo.client.tenantMode = db->config.tenantMode; dbInfo.client.tenantMode = db->config.tenantMode;
dbInfo.client.clusterId = db->serverInfo->get().client.clusterId; dbInfo.client.clusterId = db->serverInfo->get().client.clusterId;
@ -1013,7 +1013,7 @@ void clusterRegisterMaster(ClusterControllerData* self, RegisterMasterRequest co
if (db->clientInfo->get().commitProxies != req.commitProxies || if (db->clientInfo->get().commitProxies != req.commitProxies ||
db->clientInfo->get().grvProxies != req.grvProxies || db->clientInfo->get().grvProxies != req.grvProxies ||
db->clientInfo->get().tenantMode != db->config.tenantMode || db->clientInfo->get().clusterId != req.clusterId || db->clientInfo->get().tenantMode != db->config.tenantMode || db->clientInfo->get().clusterId != req.clusterId ||
db->clientInfo->get().isEncryptionEnabled != db->serverInfo->get().encryptKeyProxy.present()) { db->clientInfo->get().isEncryptionEnabled != SERVER_KNOBS->ENABLE_ENCRYPTION) {
TraceEvent("PublishNewClientInfo", self->id) TraceEvent("PublishNewClientInfo", self->id)
.detail("Master", dbInfo.master.id()) .detail("Master", dbInfo.master.id())
.detail("GrvProxies", db->clientInfo->get().grvProxies) .detail("GrvProxies", db->clientInfo->get().grvProxies)
@ -1023,13 +1023,13 @@ void clusterRegisterMaster(ClusterControllerData* self, RegisterMasterRequest co
.detail("TenantMode", db->clientInfo->get().tenantMode.toString()) .detail("TenantMode", db->clientInfo->get().tenantMode.toString())
.detail("ReqTenantMode", db->config.tenantMode.toString()) .detail("ReqTenantMode", db->config.tenantMode.toString())
.detail("ClusterId", db->clientInfo->get().clusterId) .detail("ClusterId", db->clientInfo->get().clusterId)
.detail("EncryptionEnabled", db->serverInfo->get().encryptKeyProxy.present()) .detail("EncryptionEnabled", SERVER_KNOBS->ENABLE_ENCRYPTION)
.detail("ReqClusterId", req.clusterId); .detail("ReqClusterId", req.clusterId);
isChanged = true; isChanged = true;
// TODO why construct a new one and not just copy the old one and change proxies + id? // TODO why construct a new one and not just copy the old one and change proxies + id?
ClientDBInfo clientInfo; ClientDBInfo clientInfo;
clientInfo.id = deterministicRandom()->randomUniqueID(); clientInfo.id = deterministicRandom()->randomUniqueID();
clientInfo.isEncryptionEnabled = db->serverInfo->get().encryptKeyProxy.present(); clientInfo.isEncryptionEnabled = SERVER_KNOBS->ENABLE_ENCRYPTION;
clientInfo.commitProxies = req.commitProxies; clientInfo.commitProxies = req.commitProxies;
clientInfo.grvProxies = req.grvProxies; clientInfo.grvProxies = req.grvProxies;
clientInfo.tenantMode = db->config.tenantMode; clientInfo.tenantMode = db->config.tenantMode;

View File

@ -217,7 +217,7 @@ public:
for (uint16_t i = 0; i < tenantCount; i++) { for (uint16_t i = 0; i < tenantCount; i++) {
TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantNumber + i)); TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantNumber + i));
TenantMapEntry tenant(tenantNumber + i, TenantState::READY, false); TenantMapEntry tenant(tenantNumber + i, TenantState::READY, SERVER_KNOBS->ENABLE_ENCRYPTION);
tenantCache.insert(tenantName, tenant); tenantCache.insert(tenantName, tenant);
} }
@ -245,7 +245,7 @@ public:
for (uint16_t i = 0; i < tenantCount; i++) { for (uint16_t i = 0; i < tenantCount; i++) {
TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantNumber + i)); TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantNumber + i));
TenantMapEntry tenant(tenantNumber + i, TenantState::READY, false); TenantMapEntry tenant(tenantNumber + i, TenantState::READY, SERVER_KNOBS->ENABLE_ENCRYPTION);
tenantCache.insert(tenantName, tenant); tenantCache.insert(tenantName, tenant);
} }
@ -259,7 +259,7 @@ public:
if (tenantOrdinal % staleTenantFraction != 0) { if (tenantOrdinal % staleTenantFraction != 0) {
TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantOrdinal)); TenantName tenantName(format("%s_%08d", "ddtc_test_tenant", tenantOrdinal));
TenantMapEntry tenant(tenantOrdinal, TenantState::READY, false); TenantMapEntry tenant(tenantOrdinal, TenantState::READY, SERVER_KNOBS->ENABLE_ENCRYPTION);
bool newTenant = tenantCache.update(tenantName, tenant); bool newTenant = tenantCache.update(tenantName, tenant);
ASSERT(!newTenant); ASSERT(!newTenant);
keepCount++; keepCount++;

View File

@ -1637,8 +1637,9 @@ ACTOR Future<Void> runTests(Reference<AsyncVar<Optional<struct ClusterController
if (deterministicRandom()->coinflip()) { if (deterministicRandom()->coinflip()) {
entry.tenantGroup = "TestTenantGroup"_sr; entry.tenantGroup = "TestTenantGroup"_sr;
} }
entry.encrypted = SERVER_KNOBS->ENABLE_ENCRYPTION;
TraceEvent("CreatingTenant").detail("Tenant", tenant).detail("TenantGroup", entry.tenantGroup); TraceEvent("CreatingTenant").detail("Tenant", tenant).detail("TenantGroup", entry.tenantGroup);
tenantFutures.push_back(success(TenantAPI::createTenant(cx.getReference(), tenant, false, entry))); tenantFutures.push_back(success(TenantAPI::createTenant(cx.getReference(), tenant, entry)));
} }
wait(waitForAll(tenantFutures)); wait(waitForAll(tenantFutures));

View File

@ -212,7 +212,7 @@ struct BlobGranuleCorrectnessWorkload : TestWorkload {
fmt::print("Setting up blob granule range for tenant {0}\n", name.printable()); fmt::print("Setting up blob granule range for tenant {0}\n", name.printable());
} }
Optional<TenantMapEntry> entry = wait(TenantAPI::createTenant(cx.getReference(), name, false)); Optional<TenantMapEntry> entry = wait(TenantAPI::createTenant(cx.getReference(), name));
ASSERT(entry.present()); ASSERT(entry.present());
if (BGW_DEBUG) { if (BGW_DEBUG) {

View File

@ -24,6 +24,7 @@
#include <sstream> #include <sstream>
#include "fdbclient/FDBOptions.g.h" #include "fdbclient/FDBOptions.g.h"
#include "fdbserver/Knobs.h"
#include "fdbserver/TesterInterface.actor.h" #include "fdbserver/TesterInterface.actor.h"
#include "fdbclient/GenericManagementAPI.actor.h" #include "fdbclient/GenericManagementAPI.actor.h"
#include "fdbclient/TenantManagement.actor.h" #include "fdbclient/TenantManagement.actor.h"
@ -240,8 +241,9 @@ struct FuzzApiCorrectnessWorkload : TestWorkload {
if (i < self->numTenants) { if (i < self->numTenants) {
TenantMapEntry entry; TenantMapEntry entry;
entry.tenantGroup = self->getTenantGroup(i); entry.tenantGroup = self->getTenantGroup(i);
entry.encrypted = SERVER_KNOBS->ENABLE_ENCRYPTION;
tenantFutures.push_back( tenantFutures.push_back(
::success(TenantAPI::createTenant(cx.getReference(), tenantName, false, entry))); ::success(TenantAPI::createTenant(cx.getReference(), tenantName, entry)));
self->createdTenants.insert(tenantName); self->createdTenants.insert(tenantName);
} }
} }

View File

@ -158,7 +158,6 @@ struct TenantManagementWorkload : TestWorkload {
ASSERT(tenantsToCreate.size() == 1); ASSERT(tenantsToCreate.size() == 1);
wait(success(TenantAPI::createTenant(cx.getReference(), wait(success(TenantAPI::createTenant(cx.getReference(),
tenantsToCreate.begin()->first, tenantsToCreate.begin()->first,
SERVER_KNOBS->ENABLE_ENCRYPTION,
tenantsToCreate.begin()->second))); tenantsToCreate.begin()->second)));
} else if (operationType == OperationType::MANAGEMENT_TRANSACTION) { } else if (operationType == OperationType::MANAGEMENT_TRANSACTION) {
tr->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS); tr->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS);
@ -169,7 +168,7 @@ struct TenantManagementWorkload : TestWorkload {
for (auto [tenant, entry] : tenantsToCreate) { for (auto [tenant, entry] : tenantsToCreate) {
entry.setId(nextId++); entry.setId(nextId++);
createFutures.push_back( createFutures.push_back(
success(TenantAPI::createTenantTransaction(tr, tenant, entry, SERVER_KNOBS->ENABLE_ENCRYPTION))); success(TenantAPI::createTenantTransaction(tr, tenant, entry)));
} }
TenantMetadata::lastTenantId.set(tr, nextId - 1); TenantMetadata::lastTenantId.set(tr, nextId - 1);
wait(waitForAll(createFutures)); wait(waitForAll(createFutures));
@ -207,6 +206,7 @@ struct TenantManagementWorkload : TestWorkload {
TenantMapEntry entry; TenantMapEntry entry;
entry.tenantGroup = self->chooseTenantGroup(true); entry.tenantGroup = self->chooseTenantGroup(true);
entry.encrypted = SERVER_KNOBS->ENABLE_ENCRYPTION;
tenantsToCreate[tenant] = entry; tenantsToCreate[tenant] = entry;
alreadyExists = alreadyExists || self->createdTenants.count(tenant); alreadyExists = alreadyExists || self->createdTenants.count(tenant);