diff --git a/sdk/grpc/ClientProxy.cpp b/sdk/grpc/ClientProxy.cpp index a4b3091669b2cda483d87482f5ee2f4733918bc7..06b5b706f6654216a04cfda1b4feb8027af58111 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 0a0ea0b8eb6af9173d8f59b48e3399adfe1c92fa..bca81b9c53e65df99158b37c1fd34d73b469051c 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 4abdf31357fec313a9210f0bc4491a016bf22ff2..61966695d14550e6ca3d53506b630b68c4379a29 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 13412bb4cdf47a4792877ebd9ab5fafe1305d42d..0632fb53d3ebe545239812c291d496718af017ac 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 db91944b3315230f6bcf9ad3ccc1fb470b6a81d3..1ddcef8155855ef76fb2747ad0ac616cd7a83c2c 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_; };