use zookeeper_client as zk;
use zookeeper_client::Error;
use crate::core::zookeeper::ZkClient;
use crate::core::zookeeper::ZookeeperSettings;
pub async fn create_client(settings: &ZookeeperSettings) -> Result<ZkClient, Error> {
let server_address = settings.servers();
match zk::Client::connect(&server_address).await {
Ok(client) => {
let client = ZkClient {
server_address,
client,
};
client.server_info().await;
Ok(client)
}
Err(e) => {
log::error!(
"Failed to connect to ZooKeeper: server_address={}, error={:?}",
server_address,
e
);
Err(e)
}
}
}