From 9ee9d9849001b20da5d5a196019f7137a4a1b873 Mon Sep 17 00:00:00 2001 From: Artem Medvedev Date: Mon, 25 Sep 2023 16:33:08 +0200 Subject: [PATCH] refactor(zookeper): use bitnami image (#33) --- src/dynamodb_local/mod.rs | 4 ++-- src/zookeeper/mod.rs | 33 ++++++++++++++++++++++++++------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/dynamodb_local/mod.rs b/src/dynamodb_local/mod.rs index 0fab546..ae01648 100644 --- a/src/dynamodb_local/mod.rs +++ b/src/dynamodb_local/mod.rs @@ -1,8 +1,8 @@ use testcontainers::{core::WaitFor, Image}; const NAME: &str = "amazon/dynamodb-local"; -const TAG: &str = "latest"; -const DEFAULT_WAIT: u64 = 2000; +const TAG: &str = "2.0.0"; +const DEFAULT_WAIT: u64 = 3000; #[derive(Default, Debug)] pub struct DynamoDb; diff --git a/src/zookeeper/mod.rs b/src/zookeeper/mod.rs index b84dfcf..0810480 100644 --- a/src/zookeeper/mod.rs +++ b/src/zookeeper/mod.rs @@ -1,10 +1,23 @@ +use std::collections::HashMap; + use testcontainers::{core::WaitFor, Image}; -const NAME: &str = "zookeeper"; -const TAG: &str = "3.6.2"; +const NAME: &str = "bitnami/zookeeper"; +const TAG: &str = "3.9.0"; + +#[derive(Debug)] +pub struct Zookeeper { + env_vars: HashMap, +} + +impl Default for Zookeeper { + fn default() -> Self { + let mut env_vars = HashMap::new(); + env_vars.insert("ALLOW_ANONYMOUS_LOGIN".to_owned(), "yes".to_owned()); -#[derive(Debug, Default)] -pub struct Zookeeper; + Self { env_vars } + } +} impl Image for Zookeeper { type Args = (); @@ -18,7 +31,14 @@ impl Image for Zookeeper { } fn ready_conditions(&self) -> Vec { - vec![WaitFor::message_on_stdout("Started AdminServer")] + vec![ + WaitFor::message_on_stdout("Started AdminServer"), + WaitFor::message_on_stdout("PrepRequestProcessor (sid:0) started"), + ] + } + + fn env_vars(&self) -> Box + '_> { + Box::new(self.env_vars.iter()) } } @@ -32,12 +52,11 @@ mod tests { use crate::zookeeper::Zookeeper as ZookeeperImage; #[test] - #[ignore] fn zookeeper_check_directories_existence() { let _ = pretty_env_logger::try_init(); let docker = clients::Cli::default(); - let node = docker.run(ZookeeperImage); + let node = docker.run(ZookeeperImage::default()); let host_port = node.get_host_port_ipv4(2181); let zk_urls = format!("127.0.0.1:{host_port}");