diff --git a/sdk/grpc/ClientProxy.cpp b/sdk/grpc/ClientProxy.cpp index a4b3091669..06b5b706f6 100644 --- a/sdk/grpc/ClientProxy.cpp +++ b/sdk/grpc/ClientProxy.cpp @@ -456,4 +456,24 @@ ClientProxy::DropPartition(const PartitionParam& partition_param) { } } +Status +ClientProxy::GetConfig(const std::string& node_name, std::string& value) const { + try { + return client_ptr_->Cmd(value, "get_config " + node_name); + } catch (std::exception& ex) { + return Status(StatusCode::UnknownError, "Fail to get config: " + node_name); + } +} + +Status +ClientProxy::SetConfig(const std::string& node_name, const std::string& value) const { + try { + std::string dummy; + return client_ptr_->Cmd(dummy, "set_config " + node_name + " " + value); + } catch (std::exception& ex) { + return Status(StatusCode::UnknownError, "Fail to set config: " + node_name); + } +} + + } // namespace milvus diff --git a/sdk/grpc/ClientProxy.h b/sdk/grpc/ClientProxy.h index 0a0ea0b8eb..bca81b9c53 100644 --- a/sdk/grpc/ClientProxy.h +++ b/sdk/grpc/ClientProxy.h @@ -104,10 +104,14 @@ class ClientProxy : public Connection { Status DropPartition(const PartitionParam& partition_param) override; - private: - std::shared_ptr<::grpc::Channel> channel_; + Status + GetConfig(const std::string& node_name, std::string& value) const override; + + Status + SetConfig(const std::string& node_name, const std::string& value) const override; private: + std::shared_ptr<::grpc::Channel> channel_; std::shared_ptr client_ptr_; bool connected_ = false; }; diff --git a/sdk/include/MilvusApi.h b/sdk/include/MilvusApi.h index 4abdf31357..61966695d1 100644 --- a/sdk/include/MilvusApi.h +++ b/sdk/include/MilvusApi.h @@ -444,6 +444,32 @@ class Connection { */ virtual Status DropPartition(const PartitionParam& param) = 0; + + /** + * @brief Get config method + * + * This method is used to set config. + * + * @param node_name, config node name. + * @param value, config value. + * + * @return Indicate if this operation is successful. + */ + virtual Status + GetConfig(const std::string& node_name, std::string& value) const = 0; + + /** + * @brief Set config method + * + * This method is used to set config. + * + * @param node_name, config node name. + * @param value, config value. + * + * @return Indicate if this operation is successful. + */ + virtual Status + SetConfig(const std::string& node_name, const std::string& value) const = 0; }; } // namespace milvus diff --git a/sdk/interface/ConnectionImpl.cpp b/sdk/interface/ConnectionImpl.cpp index 13412bb4cd..0632fb53d3 100644 --- a/sdk/interface/ConnectionImpl.cpp +++ b/sdk/interface/ConnectionImpl.cpp @@ -161,4 +161,13 @@ ConnectionImpl::DropPartition(const PartitionParam& param) { return client_proxy_->DropPartition(param); } +Status +ConnectionImpl::GetConfig(const std::string& node_name, std::string& value) const { + return client_proxy_->GetConfig(node_name, value); +} + +Status +ConnectionImpl::SetConfig(const std::string& node_name, const std::string& value) const { + return client_proxy_->SetConfig(node_name, value); +} } // namespace milvus diff --git a/sdk/interface/ConnectionImpl.h b/sdk/interface/ConnectionImpl.h index db91944b33..1ddcef8155 100644 --- a/sdk/interface/ConnectionImpl.h +++ b/sdk/interface/ConnectionImpl.h @@ -106,7 +106,13 @@ class ConnectionImpl : public Connection { Status DropPartition(const PartitionParam& param) override; - private: + Status + GetConfig(const std::string& node_name, std::string& value) const override; + + Status + SetConfig(const std::string& node_name, const std::string& value) const override; + +private: std::shared_ptr client_proxy_; };