Skip to content
Snippets Groups Projects
Verified Commit 8a792266 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

MAINT: rename ConnectionConfig to ConnectionConfiguration

parent e44d19ee
No related branches found
No related tags found
1 merge request!1Minimal c interface
Pipeline #10508 passed
Pipeline: caosdb-cppinttest

#10509

    ......@@ -29,9 +29,9 @@
    #include "boost/json/value.hpp" // for value
    #include "boost/json/value_ref.hpp" // for array, object
    #include "caosdb/authentication.h" // for Authenticator, PlainPassw...
    #include "caosdb/connection.h" // for ConnectionConfig, Certifi...
    #include "caosdb/exceptions.h" // for ConfigurationError
    #include "caosdb/utility.h" // for load_json_file
    #include "caosdb/connection.h" // for ConnectionConfiguration, Certifi...
    #include "caosdb/exceptions.h" // for ConfigurationError
    #include "caosdb/utility.h" // for load_json_file
    namespace caosdb::configuration {
    using boost::filesystem::exists;
    ......@@ -42,11 +42,11 @@ using boost::json::value;
    using caosdb::authentication::Authenticator;
    using caosdb::authentication::PlainPasswordAuthenticator;
    using caosdb::connection::CertificateProvider;
    using caosdb::connection::ConnectionConfig;
    using caosdb::connection::ConnectionConfiguration;
    using caosdb::connection::ConnectionManager;
    using caosdb::connection::InsecureConnectionConfig;
    using caosdb::connection::InsecureConnectionConfiguration;
    using caosdb::connection::PemFileCertificateProvider;
    using caosdb::connection::TlsConnectionConfig;
    using caosdb::connection::TlsConnectionConfiguration;
    using caosdb::exceptions::ConfigurationError;
    using caosdb::utility::load_json_file;
    ......@@ -55,7 +55,7 @@ using caosdb::utility::load_json_file;
    * the ConfigurationManager to construct Connection instances from the stored
    * configuration.
    */
    class ConnectionConfigurationHelper {
    class ConnectionConfigurationurationHelper {
    public:
    friend class ConfigurationManager;
    ......@@ -75,12 +75,11 @@ private:
    /**
    * @param from - a single connection configuration.
    */
    auto
    CreateConnectionConfiguration(const bool tls, const std::string &host,
    const int port,
    const CertificateProvider *certificate_provider,
    const Authenticator *authenticator) const
    -> std::unique_ptr<ConnectionConfig>;
    auto CreateConnectionConfigurationuration(
    const bool tls, const std::string &host, const int port,
    const CertificateProvider *certificate_provider,
    const Authenticator *authenticator) const
    -> std::unique_ptr<ConnectionConfiguration>;
    /**
    * @param from - a single connection configuration.
    ......@@ -90,8 +89,8 @@ private:
    /**
    * @param from - a single connection configuration.
    */
    auto CreateConnectionConfiguration(const object &from) const
    -> std::unique_ptr<ConnectionConfig>;
    auto CreateConnectionConfigurationuration(const object &from) const
    -> std::unique_ptr<ConnectionConfiguration>;
    };
    /**
    ......@@ -126,19 +125,19 @@ public:
    }
    /**
    * See mGetConnectionConfiguration.
    * See mGetConnectionConfigurationuration.
    */
    inline static auto GetConnectionConfiguration(const std::string &name)
    -> std::unique_ptr<ConnectionConfig> {
    return GetInstance().mGetConnectionConfiguration(name);
    inline static auto GetConnectionConfigurationuration(const std::string &name)
    -> std::unique_ptr<ConnectionConfiguration> {
    return GetInstance().mGetConnectionConfigurationuration(name);
    }
    /**
    * Return the ConnectionConfig for the default connection.
    * Return the ConnectionConfiguration for the default connection.
    */
    inline static auto GetDefaultConnectionConfiguration()
    -> std::unique_ptr<ConnectionConfig> {
    return GetInstance().mGetConnectionConfiguration(
    inline static auto GetDefaultConnectionConfigurationuration()
    -> std::unique_ptr<ConnectionConfiguration> {
    return GetInstance().mGetConnectionConfigurationuration(
    GetInstance().mGetDefaultConnectionName());
    }
    ......@@ -154,7 +153,7 @@ public:
    private:
    value json_configuration;
    ConnectionConfigurationHelper connection_configuration_helper;
    ConnectionConfigurationurationHelper connection_configuration_helper;
    inline ConfigurationManager() { InitializeDefaults(); };
    /**
    ......@@ -206,13 +205,13 @@ private:
    auto mLoadSingleJSONConfiguration(const path &json_file) -> void;
    /**
    * Return the ConnectionConfig for the connection of the given name.
    * Return the ConnectionConfiguration for the connection of the given name.
    */
    auto mGetConnectionConfiguration(const std::string &name) const
    -> std::unique_ptr<ConnectionConfig>;
    auto mGetConnectionConfigurationuration(const std::string &name) const
    -> std::unique_ptr<ConnectionConfiguration>;
    /**
    * Return the ConnectionConfig for the default connection.
    * Return the ConnectionConfiguration for the default connection.
    */
    auto mGetDefaultConnectionName() const -> std::string;
    };
    ......
    ......@@ -74,15 +74,16 @@ public:
    /**
    * @brief Configuration of the CaosDB connection.
    */
    class ConnectionConfig {
    class ConnectionConfiguration {
    private:
    std::string host;
    int port;
    public:
    ConnectionConfig(const std::string &host, int port);
    virtual ~ConnectionConfig() = default;
    friend auto operator<<(std::ostream &out, const ConnectionConfig &config)
    ConnectionConfiguration(const std::string &host, int port);
    virtual ~ConnectionConfiguration() = default;
    friend auto operator<<(std::ostream &out,
    const ConnectionConfiguration &config)
    -> std::ostream &;
    [[nodiscard]] auto virtual ToString() const -> std::string = 0;
    ......@@ -92,31 +93,31 @@ public:
    -> std::shared_ptr<ChannelCredentials> = 0;
    };
    class InsecureConnectionConfig : public ConnectionConfig {
    class InsecureConnectionConfiguration : public ConnectionConfiguration {
    private:
    std::shared_ptr<ChannelCredentials> credentials;
    public:
    InsecureConnectionConfig(const std::string &host, int port);
    InsecureConnectionConfiguration(const std::string &host, int port);
    [[nodiscard]] auto GetChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> override;
    [[nodiscard]] auto ToString() const -> std::string override;
    };
    class TlsConnectionConfig : public ConnectionConfig {
    class TlsConnectionConfiguration : public ConnectionConfiguration {
    private:
    std::shared_ptr<ChannelCredentials> credentials;
    std::string certificate_provider;
    public:
    TlsConnectionConfig(const std::string &host, int port);
    TlsConnectionConfig(const std::string &host, int port,
    const Authenticator &authenticator);
    TlsConnectionConfig(const std::string &host, int port,
    const CertificateProvider &certificate_provider);
    TlsConnectionConfig(const std::string &host, int port,
    const CertificateProvider &certificate_provider,
    const Authenticator &authenticator);
    TlsConnectionConfiguration(const std::string &host, int port);
    TlsConnectionConfiguration(const std::string &host, int port,
    const Authenticator &authenticator);
    TlsConnectionConfiguration(const std::string &host, int port,
    const CertificateProvider &certificate_provider);
    TlsConnectionConfiguration(const std::string &host, int port,
    const CertificateProvider &certificate_provider,
    const Authenticator &authenticator);
    [[nodiscard]] auto GetChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> override;
    [[nodiscard]] auto ToString() const -> std::string override;
    ......@@ -131,7 +132,7 @@ class Connection {
    std::shared_ptr<EntityTransactionService::Stub> entity_transaction_service;
    public:
    explicit Connection(const ConnectionConfig &config);
    explicit Connection(const ConnectionConfiguration &config);
    friend auto operator<<(std::ostream &out, const Connection &connection)
    -> std::ostream &;
    [[nodiscard]] auto GetVersionInfo() const -> std::unique_ptr<VersionInfo>;
    ......
    ......@@ -45,7 +45,7 @@ typedef struct {
    } caosdb_connection_connection;
    /**
    * A wrapper of the C++ ConnectionConfig class.
    * A wrapper of the C++ ConnectionConfiguration class.
    *
    * We use a wrapper for future extensibility and in order to have a minimal
    * capability for type checking in C even though the C++ class
    ......
    ......@@ -27,7 +27,7 @@
    #include "boost/json/string.hpp" // for string
    #include "boost/json/string_view.hpp" // for string_view
    #include "caosdb/authentication.h" // for PlainPasswordAuthentic...
    #include "caosdb/connection.h" // for TlsConnectionConfig
    #include "caosdb/connection.h" // for TlsConnectionConfiguration
    #include "caosdb/constants.h" // for LIBCAOSDB_CONFIGURATIO...
    #include "caosdb/exceptions.h" // for ConfigurationError
    ......@@ -39,15 +39,15 @@ using boost::json::value;
    using caosdb::authentication::Authenticator;
    using caosdb::authentication::PlainPasswordAuthenticator;
    using caosdb::connection::CertificateProvider;
    using caosdb::connection::ConnectionConfig;
    using caosdb::connection::InsecureConnectionConfig;
    using caosdb::connection::ConnectionConfiguration;
    using caosdb::connection::InsecureConnectionConfiguration;
    using caosdb::connection::PemFileCertificateProvider;
    using caosdb::connection::TlsConnectionConfig;
    using caosdb::connection::TlsConnectionConfiguration;
    using caosdb::exceptions::ConfigurationError;
    using caosdb::utility::get_home_directory;
    using caosdb::utility::load_json_file;
    auto ConnectionConfigurationHelper::CreateCertificateProvider(
    auto ConnectionConfigurationurationHelper::CreateCertificateProvider(
    const object &from) const -> std::unique_ptr<CertificateProvider> {
    std::unique_ptr<CertificateProvider> certificate_provider;
    if (from.contains("server_certificate_path")) {
    ......@@ -59,7 +59,7 @@ auto ConnectionConfigurationHelper::CreateCertificateProvider(
    return certificate_provider;
    };
    auto ConnectionConfigurationHelper::CreateAuthenticator(
    auto ConnectionConfigurationurationHelper::CreateAuthenticator(
    const object &from) const -> std::unique_ptr<Authenticator> {
    std::unique_ptr<Authenticator> authenticator;
    if (from.contains("authentication")) {
    ......@@ -89,32 +89,34 @@ auto ConnectionConfigurationHelper::CreateAuthenticator(
    return authenticator;
    };
    auto ConnectionConfigurationHelper::CreateConnectionConfiguration(
    auto ConnectionConfigurationurationHelper::CreateConnectionConfigurationuration(
    const bool tls, const std::string &host, const int port,
    const CertificateProvider *certificate_provider,
    const Authenticator *authenticator) const
    -> std::unique_ptr<ConnectionConfig> {
    -> std::unique_ptr<ConnectionConfiguration> {
    if (tls) {
    if (certificate_provider != nullptr && authenticator != nullptr) {
    // authenticated and special certificate
    return std::make_unique<TlsConnectionConfig>(
    return std::make_unique<TlsConnectionConfiguration>(
    host, port, *certificate_provider, *authenticator);
    } else if (certificate_provider != nullptr) {
    // unauthenticated, special certificate
    return std::make_unique<TlsConnectionConfig>(host, port,
    *certificate_provider);
    return std::make_unique<TlsConnectionConfiguration>(
    host, port, *certificate_provider);
    } else if (authenticator != nullptr) {
    // authenticated, no special certificate
    return std::make_unique<TlsConnectionConfig>(host, port, *authenticator);
    return std::make_unique<TlsConnectionConfiguration>(host, port,
    *authenticator);
    }
    // unauthenticated, no special certificate
    return std::make_unique<TlsConnectionConfig>(host, port);
    return std::make_unique<TlsConnectionConfiguration>(host, port);
    } else {
    return std::make_unique<InsecureConnectionConfig>(host, port);
    return std::make_unique<InsecureConnectionConfiguration>(host, port);
    }
    };
    auto ConnectionConfigurationHelper::IsTls(const object &from) const -> bool {
    auto ConnectionConfigurationurationHelper::IsTls(const object &from) const
    -> bool {
    bool tls = true;
    if (from.contains("tls")) {
    auto tls_switch = from.at("tls");
    ......@@ -124,8 +126,8 @@ auto ConnectionConfigurationHelper::IsTls(const object &from) const -> bool {
    return tls;
    };
    auto ConnectionConfigurationHelper::CreateConnectionConfiguration(
    const object &from) const -> std::unique_ptr<ConnectionConfig> {
    auto ConnectionConfigurationurationHelper::CreateConnectionConfigurationuration(
    const object &from) const -> std::unique_ptr<ConnectionConfiguration> {
    assert(from.contains("host"));
    const auto &host = from.at("host");
    assert(host.is_string());
    ......@@ -140,7 +142,7 @@ auto ConnectionConfigurationHelper::CreateConnectionConfiguration(
    auto authenticator = CreateAuthenticator(from);
    return CreateConnectionConfiguration(
    return CreateConnectionConfigurationuration(
    tls, std::string(host.as_string().c_str()),
    static_cast<int>(port.as_int64()), certificate_provider.get(),
    authenticator.get());
    ......@@ -169,10 +171,10 @@ auto ConfigurationManager::mLoadSingleJSONConfiguration(const path &json_file)
    // TODO(far future) validate against json-schema
    };
    auto ConfigurationManager::mGetConnectionConfiguration(
    const std::string &name) const -> std::unique_ptr<ConnectionConfig> {
    auto ConfigurationManager::mGetConnectionConfigurationuration(
    const std::string &name) const -> std::unique_ptr<ConnectionConfiguration> {
    auto connection_json = GetConnection(name);
    return connection_configuration_helper.CreateConnectionConfiguration(
    return connection_configuration_helper.CreateConnectionConfigurationuration(
    connection_json);
    };
    ......
    ......@@ -72,66 +72,70 @@ auto PemCertificateProvider::GetCertificatePem() const -> std::string {
    return this->certificate_provider;
    }
    ConnectionConfig::ConnectionConfig(const std::string &host, int port) {
    ConnectionConfiguration::ConnectionConfiguration(const std::string &host,
    int port) {
    this->host = host;
    this->port = port;
    }
    auto ConnectionConfig::GetHost() const -> std::string { return this->host; }
    auto ConnectionConfiguration::GetHost() const -> std::string {
    return this->host;
    }
    auto ConnectionConfig::GetPort() const -> int { return this->port; }
    auto ConnectionConfiguration::GetPort() const -> int { return this->port; }
    auto operator<<(std::ostream &out, const ConnectionConfig &config)
    auto operator<<(std::ostream &out, const ConnectionConfiguration &config)
    -> std::ostream & {
    out << config.ToString();
    return out;
    }
    InsecureConnectionConfig::InsecureConnectionConfig(const std::string &host,
    int port)
    : ConnectionConfig(host, port) {
    InsecureConnectionConfiguration::InsecureConnectionConfiguration(
    const std::string &host, int port)
    : ConnectionConfiguration(host, port) {
    this->credentials = InsecureChannelCredentials();
    }
    auto InsecureConnectionConfig::GetChannelCredentials() const
    auto InsecureConnectionConfiguration::GetChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> {
    return this->credentials;
    }
    auto InsecureConnectionConfig::ToString() const -> std::string {
    return "InsecureConnectionConfig(" + this->GetHost() + "," +
    auto InsecureConnectionConfiguration::ToString() const -> std::string {
    return "InsecureConnectionConfiguration(" + this->GetHost() + "," +
    std::to_string(this->GetPort()) + ")";
    }
    TlsConnectionConfig::TlsConnectionConfig(const std::string &host, int port)
    : ConnectionConfig(host, port) {
    TlsConnectionConfiguration::TlsConnectionConfiguration(const std::string &host,
    int port)
    : ConnectionConfiguration(host, port) {
    SslCredentialsOptions options;
    this->credentials = SslCredentials(options);
    }
    TlsConnectionConfig::TlsConnectionConfig(
    TlsConnectionConfiguration::TlsConnectionConfiguration(
    const std::string &host, int port,
    const CertificateProvider &certificate_provider)
    : ConnectionConfig(host, port) {
    : ConnectionConfiguration(host, port) {
    SslCredentialsOptions options;
    options.pem_root_certs = certificate_provider.GetCertificatePem();
    this->credentials = SslCredentials(options);
    }
    TlsConnectionConfig::TlsConnectionConfig(const std::string &host, int port,
    const Authenticator &authenticator)
    : ConnectionConfig(host, port) {
    TlsConnectionConfiguration::TlsConnectionConfiguration(
    const std::string &host, int port, const Authenticator &authenticator)
    : ConnectionConfiguration(host, port) {
    SslCredentialsOptions options;
    this->credentials = grpc::CompositeChannelCredentials(
    SslCredentials(options), authenticator.GetCallCredentials());
    }
    TlsConnectionConfig::TlsConnectionConfig(
    TlsConnectionConfiguration::TlsConnectionConfiguration(
    const std::string &host, int port,
    const CertificateProvider &certificate_provider,
    const Authenticator &authenticator)
    : ConnectionConfig(host, port) {
    : ConnectionConfiguration(host, port) {
    SslCredentialsOptions options;
    options.pem_root_certs = certificate_provider.GetCertificatePem();
    ......@@ -139,18 +143,18 @@ TlsConnectionConfig::TlsConnectionConfig(
    SslCredentials(options), authenticator.GetCallCredentials());
    }
    auto TlsConnectionConfig::GetChannelCredentials() const
    auto TlsConnectionConfiguration::GetChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> {
    return this->credentials;
    }
    auto TlsConnectionConfig::ToString() const -> std::string {
    return "TlsConnectionConfig(" + this->GetHost() + "," +
    auto TlsConnectionConfiguration::ToString() const -> std::string {
    return "TlsConnectionConfiguration(" + this->GetHost() + "," +
    std::to_string(this->GetPort()) + "," + this->certificate_provider +
    ")";
    }
    Connection::Connection(const ConnectionConfig &config) {
    Connection::Connection(const ConnectionConfiguration &config) {
    const std::string target =
    config.GetHost() + ":" + std::to_string(config.GetPort());
    this->channel = grpc::CreateChannel(target, config.GetChannelCredentials());
    ......@@ -203,7 +207,8 @@ auto ConnectionManager::mGetConnection(const std::string &name) const
    -> const std::shared_ptr<Connection> & {
    if (!HasConnection(name)) {
    try {
    auto connection = ConfigurationManager::GetConnectionConfiguration(name);
    auto connection =
    ConfigurationManager::GetConnectionConfigurationuration(name);
    connections[name] = std::make_shared<Connection>(*connection.release());
    } catch (const caosdb::exceptions::ConfigurationError &exc) {
    throw caosdb::exceptions::UnknownConnectionError("No connection named '" +
    ......@@ -218,7 +223,7 @@ auto ConnectionManager::mGetDefaultConnection() const
    if (!HasConnection(default_connection_name)) {
    default_connection_name = ConfigurationManager::GetDefaultConnectionName();
    auto default_connection =
    ConfigurationManager::GetDefaultConnectionConfiguration();
    ConfigurationManager::GetDefaultConnectionConfigurationuration();
    connections[default_connection_name] =
    std::make_shared<Connection>(*default_connection.release());
    }
    ......
    ......@@ -86,25 +86,25 @@ int caosdb_connection_create_tls_connection_configuration(
    static_cast<caosdb::authentication::Authenticator *>(
    authenticator->wrapped_authenticator);
    out->wrapped_connection_configuration =
    new caosdb::connection::TlsConnectionConfig(
    new caosdb::connection::TlsConnectionConfiguration(
    host_str, port, *wrapped_provider, *wrapped_authenticator);
    } else if (authenticator != nullptr) {
    auto wrapped_authenticator =
    static_cast<caosdb::authentication::Authenticator *>(
    authenticator->wrapped_authenticator);
    out->wrapped_connection_configuration =
    new caosdb::connection::TlsConnectionConfig(host_str, port,
    *wrapped_authenticator);
    new caosdb::connection::TlsConnectionConfiguration(
    host_str, port, *wrapped_authenticator);
    } else if (provider != nullptr) {
    auto wrapped_provider =
    static_cast<caosdb::connection::CertificateProvider *>(
    provider->wrapped_certificate_provider);
    out->wrapped_connection_configuration =
    new caosdb::connection::TlsConnectionConfig(host_str, port,
    *wrapped_provider);
    new caosdb::connection::TlsConnectionConfiguration(host_str, port,
    *wrapped_provider);
    } else {
    out->wrapped_connection_configuration =
    new caosdb::connection::TlsConnectionConfig(host_str, port);
    new caosdb::connection::TlsConnectionConfiguration(host_str, port);
    }
    return 0;
    }
    ......@@ -113,13 +113,13 @@ int caosdb_connection_create_insecure_connection_configuration(
    caosdb_connection_connection_configuration *out, const char *host,
    const int port) {
    out->wrapped_connection_configuration =
    new caosdb::connection::InsecureConnectionConfig(host, port);
    new caosdb::connection::InsecureConnectionConfiguration(host, port);
    return 0;
    }
    int caosdb_connection_delete_connection_configuration(
    caosdb_connection_connection_configuration *configuration) {
    delete static_cast<caosdb::connection::ConnectionConfig *>(
    delete static_cast<caosdb::connection::ConnectionConfiguration *>(
    configuration->wrapped_connection_configuration);
    return 0;
    }
    ......@@ -127,8 +127,8 @@ int caosdb_connection_delete_connection_configuration(
    int caosdb_connection_create_connection(
    caosdb_connection_connection *out,
    const caosdb_connection_connection_configuration *configuration) {
    caosdb::connection::ConnectionConfig *config =
    static_cast<caosdb::connection::ConnectionConfig *>(
    caosdb::connection::ConnectionConfiguration *config =
    static_cast<caosdb::connection::ConnectionConfiguration *>(
    configuration->wrapped_connection_configuration);
    out->wrapped_connection = new caosdb::connection::Connection(*config);
    return 0;
    ......
    ......@@ -44,7 +44,7 @@ protected:
    };
    TEST_F(test_connection, configure_insecure_localhost_8080) {
    InsecureConnectionConfig config("localhost", 8000);
    InsecureConnectionConfiguration config("localhost", 8000);
    EXPECT_EQ("localhost", config.GetHost());
    EXPECT_EQ(8000, config.GetPort());
    ......@@ -54,7 +54,7 @@ TEST_F(test_connection, configure_insecure_localhost_8080) {
    TEST_F(test_connection, configure_ssl_localhost_8080) {
    auto cacert = PemCertificateProvider("ca chain");
    TlsConnectionConfig config("localhost", 44300, cacert);
    TlsConnectionConfiguration config("localhost", 44300, cacert);
    EXPECT_EQ("localhost", config.GetHost());
    EXPECT_EQ(44300, config.GetPort());
    ......
    ......@@ -33,14 +33,14 @@
    namespace caosdb::transaction {
    using caosdb::connection::Connection;
    using caosdb::connection::InsecureConnectionConfig;
    using caosdb::connection::InsecureConnectionConfiguration;
    using caosdb::exceptions::ConnectionError;
    using caosdb::transaction::UniqueResult;
    using ProtoEntity = caosdb::entity::v1alpha1::Entity;
    TEST(test_transaction, create_transaction) {
    const auto *host = "localhost";
    auto config = InsecureConnectionConfig(host, 8000);
    auto config = InsecureConnectionConfiguration(host, 8000);
    Connection connection(config);
    auto transaction = connection.CreateTransaction();
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment