Skip to content

Commit 0b83d15

Browse files
committed
test: switch to tokio-zookeeper
Switch to another clinet in order to improve stability
1 parent 9dec5a6 commit 0b83d15

File tree

2 files changed

+37
-35
lines changed

2 files changed

+37
-35
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ tiberius = { version = "0.12.3", default-features = false, features = [
125125
] }
126126
tokio = { version = "1", features = ["macros"] }
127127
tokio-util = { version = "0.7.10", features = ["compat"] }
128-
zookeeper-client = { version = "0.9.0" }
128+
tokio-zookeeper = "0.4.0"
129129
kube = { version = "0.98.0", default-features = false, features = [
130130
"client",
131131
"rustls-tls",

src/zookeeper/mod.rs

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,28 @@ const TAG: &str = "3.9.0";
1414
/// # Example
1515
///
1616
/// ```
17-
/// use testcontainers_modules::{testcontainers::runners::AsyncRunner, zookeeper};
18-
/// # tokio::runtime::Runtime::new().unwrap().block_on(async {
19-
/// let node = zookeeper::Zookeeper::default().start().await.unwrap();
20-
/// let zk_url = format!(
21-
/// "{}:{}",
22-
/// node.get_host().await.unwrap(),
23-
/// node.get_host_port_ipv4(2181).await.unwrap(),
24-
/// );
25-
/// let client = zookeeper_client::Client::connect(&zk_url)
26-
/// .await
27-
/// .expect("connect to Zookeeper");
17+
/// async {
18+
/// use testcontainers_modules::{testcontainers::runners::AsyncRunner, zookeeper};
2819
///
29-
/// let path = "/test";
30-
/// let (_, stat_watcher) = client
31-
/// .check_and_watch_stat(path)
32-
/// .await
33-
/// .expect("stat watcher created");
34-
/// # })
20+
/// let node = zookeeper::Zookeeper::default().start().await.unwrap();
21+
/// let zk_url = format!(
22+
/// "{}:{}",
23+
/// node.get_host().await.unwrap(),
24+
/// node.get_host_port_ipv4(2181).await.unwrap(),
25+
/// );
26+
/// let zk_socket_addr = tokio::net::lookup_host(&zk_url)
27+
/// .await
28+
/// .unwrap()
29+
/// .next()
30+
/// .unwrap();
31+
///
32+
/// let (zk, default_watcher) = tokio_zookeeper::ZooKeeper::connect(&zk_socket_addr)
33+
/// .await
34+
/// .expect("connect to Zookeeper");
35+
///
36+
/// let path = "/test";
37+
/// let _stat = zk.watch().exists(path).await.expect("stat received");
38+
/// };
3539
/// ```
3640
///
3741
///
@@ -71,8 +75,10 @@ impl Image for Zookeeper {
7175

7276
#[cfg(test)]
7377
mod tests {
78+
use futures::StreamExt;
7479
use rustls::crypto::CryptoProvider;
75-
use zookeeper_client::{Acls, Client, CreateMode, EventType};
80+
use tokio::net::lookup_host;
81+
use tokio_zookeeper::*;
7682

7783
use crate::{testcontainers::runners::AsyncRunner, zookeeper::Zookeeper as ZookeeperImage};
7884

@@ -88,27 +94,23 @@ mod tests {
8894

8995
let node = ZookeeperImage::default().start().await?;
9096

91-
let host_ip = node.get_host().await?;
97+
let host = node.get_host().await?;
9298
let host_port = node.get_host_port_ipv4(2181).await?;
93-
let zk_url = format!("{host_ip}:{host_port}");
94-
let client = Client::connect(&zk_url)
95-
.await
96-
.expect("connect to Zookeeper");
99+
let zk_url = format!("{host}:{host_port}");
100+
let zk_socket_addr = lookup_host(&zk_url).await?.next().unwrap();
101+
102+
let (zk, mut default_watcher) = ZooKeeper::connect(&zk_socket_addr).await.unwrap();
97103

98104
let path = "/test";
99-
let (_, stat_watcher) = client
100-
.check_and_watch_stat(path)
101-
.await
102-
.expect("stat watcher created");
103-
104-
let create_options = CreateMode::Ephemeral.with_acls(Acls::anyone_all());
105-
let (_, _) = client
106-
.create(path, &[1, 2], &create_options)
107-
.await
105+
let _stat = zk.watch().exists(path).await.expect("stat requested");
106+
107+
let path = zk
108+
.create(path, &[1, 2], Acl::open_unsafe(), CreateMode::Ephemeral)
109+
.await?
108110
.expect("create a node");
109111

110-
let event = stat_watcher.changed().await;
111-
assert_eq!(event.event_type, EventType::NodeCreated);
112+
let event = default_watcher.next().await.expect("event received");
113+
assert_eq!(event.event_type, WatchedEventType::NodeCreated);
112114
assert_eq!(event.path, path);
113115
Ok(())
114116
}

0 commit comments

Comments
 (0)