diff --git a/bindings/c/fdb_c.cpp b/bindings/c/fdb_c.cpp index 7f69b189e2..a9cdd280e2 100644 --- a/bindings/c/fdb_c.cpp +++ b/bindings/c/fdb_c.cpp @@ -361,9 +361,7 @@ void fdb_cluster_destroy_v609(FDBCluster* c) { // If it does and this is an external client loaded though the multi-version API, then it may inadvertently call // the version of the function in the primary library if it was loaded into the global symbols. fdb_error_t fdb_create_database_impl(const char* cluster_file_path, FDBDatabase** out_database) { - CATCH_AND_RETURN(*out_database = - (FDBDatabase*)API->createDatabase(ClusterConnectionFile::openOrDefault(cluster_file_path)) - .extractPtr();); + CATCH_AND_RETURN(*out_database = (FDBDatabase*)API->createDatabase(cluster_file_path).extractPtr();); } FDBFuture* fdb_cluster_create_database_v609(FDBCluster* c, uint8_t const* db_name, int db_name_length) { diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp index 6767cb54ef..b580570721 100644 --- a/fdbcli/fdbcli.actor.cpp +++ b/fdbcli/fdbcli.actor.cpp @@ -1095,7 +1095,7 @@ ACTOR Future cli(CLIOptions opt, LineNoise* plinenoise) { if (!opt.exec.present()) { printf("Using cluster file `%s'.\n", ccf->getLocation().c_str()); } - db = API->createDatabase(ccf); + db = API->createDatabase(resolvedClusterFile.first.c_str()); } catch (Error& e) { fprintf(stderr, "ERROR: %s (%d)\n", e.what(), e.code()); printf("Unable to connect to cluster from `%s'\n", ccf->getLocation().c_str()); diff --git a/fdbclient/MetaclusterManagement.actor.cpp b/fdbclient/MetaclusterManagement.actor.cpp index 39aecf1a93..c63de3580e 100644 --- a/fdbclient/MetaclusterManagement.actor.cpp +++ b/fdbclient/MetaclusterManagement.actor.cpp @@ -18,6 +18,7 @@ * limitations under the License. */ +#include "fdbclient/ClusterConnectionMemoryRecord.h" #include "fdbclient/DatabaseContext.h" #include "fdbclient/FDBTypes.h" #include "fdbclient/MetaclusterManagement.actor.h" @@ -27,14 +28,15 @@ namespace MetaclusterAPI { ACTOR Future> openDatabase(ClusterConnectionString connectionString) { - Reference clusterFile = makeReference(connectionString); if (g_network->isSimulated()) { + Reference clusterFile = + makeReference(connectionString); Database nativeDb = Database::createDatabase(clusterFile, -1); Reference threadSafeDb = wait(unsafeThreadFutureToFuture(ThreadSafeDatabase::createFromExistingDatabase(nativeDb))); return MultiVersionDatabase::debugCreateFromExistingDatabase(threadSafeDb); } else { - return MultiVersionApi::api->createDatabase(clusterFile); + return MultiVersionApi::api->createDatabaseFromConnectionString(connectionString.toString().c_str()); } } diff --git a/fdbclient/MultiVersionTransaction.actor.cpp b/fdbclient/MultiVersionTransaction.actor.cpp index fb1a3ec735..b08457a3ac 100644 --- a/fdbclient/MultiVersionTransaction.actor.cpp +++ b/fdbclient/MultiVersionTransaction.actor.cpp @@ -859,35 +859,13 @@ Reference DLApi::createDatabase609(const char* clusterFilePath) { return makeReference(api, dbFuture); } -Reference DLApi::createDatabaseFromFile(std::string filename) { +Reference DLApi::createDatabase(const char* clusterFilePath) { if (headerVersion >= 610) { FdbCApi::FDBDatabase* db; - throwIfError(api->createDatabase(filename.c_str(), &db)); + throwIfError(api->createDatabase(clusterFilePath, &db)); return Reference(new DLDatabase(api, db)); } else { - return DLApi::createDatabase609(filename.c_str()); - } -} - -Reference DLApi::createDatabaseFromConnectionString(std::string connectionString) { - if (api->createDatabaseFromConnectionString == nullptr) { - throw unsupported_operation(); - } - - FdbCApi::FDBDatabase* db; - throwIfError(api->createDatabaseFromConnectionString(connectionString.c_str(), &db)); - return Reference(new DLDatabase(api, db)); -} - -Reference DLApi::createDatabase(Reference connectionRecord) { - if (!connectionRecord->supportedExternally()) { - throw unsupported_operation(); - } - Optional filename = connectionRecord->getFilename(); - if (filename.present()) { - return createDatabaseFromFile(filename.get()); - } else { - return createDatabaseFromConnectionString(connectionRecord->getConnectionString().toString()); + return DLApi::createDatabase609(clusterFilePath); } } diff --git a/fdbserver/workloads/TenantManagementConcurrencyWorkload.actor.cpp b/fdbserver/workloads/TenantManagementConcurrencyWorkload.actor.cpp index a6f23e1663..719c98bc89 100644 --- a/fdbserver/workloads/TenantManagementConcurrencyWorkload.actor.cpp +++ b/fdbserver/workloads/TenantManagementConcurrencyWorkload.actor.cpp @@ -20,6 +20,7 @@ #include #include +#include "fdbclient/ClusterConnectionMemoryRecord.h" #include "fdbclient/FDBOptions.g.h" #include "fdbclient/GenericManagementAPI.actor.h" #include "fdbclient/MetaclusterManagement.actor.h" diff --git a/fdbserver/workloads/TenantManagementWorkload.actor.cpp b/fdbserver/workloads/TenantManagementWorkload.actor.cpp index 2dfc96b518..cf5c1f23f7 100644 --- a/fdbserver/workloads/TenantManagementWorkload.actor.cpp +++ b/fdbserver/workloads/TenantManagementWorkload.actor.cpp @@ -20,6 +20,7 @@ #include #include +#include "fdbclient/ClusterConnectionMemoryRecord.h" #include "fdbclient/FDBOptions.g.h" #include "fdbclient/GenericManagementAPI.actor.h" #include "fdbclient/MetaclusterManagement.actor.h" @@ -1017,7 +1018,7 @@ struct TenantManagementWorkload : TestWorkload { ASSERT(newTenantEntry.present()); // Update Internal Tenant Map and check for correctness - TenantState tState = self->createdTenants[oldTenantName]; + TenantData tState = self->createdTenants[oldTenantName]; self->createdTenants[newTenantName] = tState; self->createdTenants.erase(oldTenantName); if (!tState.empty) { @@ -1032,7 +1033,7 @@ struct TenantManagementWorkload : TestWorkload { } } } - wait(self->checkTenant(cx, self, newTenantName, self->createdTenants[newTenantName])); + wait(self->checkTenantContents(self, newTenantName, self->createdTenants[newTenantName])); } return Void(); } catch (Error& e) {