fix pr issues
This commit is contained in:
parent
26d233c0f8
commit
7cc58cb1af
|
@ -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());
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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++;
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue