Skip to content

Commit

Permalink
refactor: [torrust#634] extract funtions
Browse files Browse the repository at this point in the history
  • Loading branch information
josecelano committed Jan 24, 2024
1 parent af65b59 commit bf14375
Showing 1 changed file with 22 additions and 17 deletions.
39 changes: 22 additions & 17 deletions src/e2e/runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,24 @@ use crate::e2e::logs::RunningServices;
use crate::e2e::temp_dir::Handler;

pub const NUMBER_OF_ARGUMENTS: usize = 2;
const CONTAINER_TAG: &str = "torrust-tracker:local";
const TRACKER_CHECKER_CONFIG_FILE: &str = "tracker_checker.json";

pub struct Arguments {
pub tracker_config_path: String,
}

/// # Panics
///
/// Will panic if it can't not perform any of the operations.
pub fn run() {
// todo: const
let container_tag: &str = "torrust-tracker:local";
let tracker_checker_config_file = "tracker_checker.json";

setup_logging(LevelFilter::Info);
setup_runner_logging(LevelFilter::Info);

let args = parse_arguments();

// Setup tracker configuration
info!("Reading tracker configuration from file: {} ...", args.tracker_config_path);
let tracker_config = read_tracker_config(&args.tracker_config_path);
let tracker_config = load_tracker_configuration(&args.tracker_config_path);

// Build tracker container image
Docker::build("./Containerfile", container_tag).expect("A tracker local docker image should be built");
build_tracker_container_image(CONTAINER_TAG);

// Create temp dir
info!(
Expand All @@ -57,7 +56,7 @@ pub fn run() {
"1313:1313/tcp".to_string(),
];
let container =
Docker::run(container_tag, &container_name, &env_vars, &ports).expect("A tracker local docker image should be running");
Docker::run(CONTAINER_TAG, &container_name, &env_vars, &ports).expect("A tracker local docker image should be running");

info!("Waiting for the container {container_name} to be healthy ...");
let is_healthy = Docker::wait_until_is_healthy(&container_name, Duration::from_secs(10));
Expand All @@ -80,7 +79,7 @@ pub fn run() {
// Write tracker_checker configuration file

let mut absolute_tracker_checker_config_path = PathBuf::from(&temp_dir_handler.temp_dir.path());
absolute_tracker_checker_config_path.push(tracker_checker_config_file);
absolute_tracker_checker_config_path.push(TRACKER_CHECKER_CONFIG_FILE);

let mut file = File::create(absolute_tracker_checker_config_path.clone()).expect("Tracker checker config file to be created");
file.write_all(json.as_bytes())
Expand All @@ -104,7 +103,7 @@ pub fn run() {
info!("Running container `{}` will be automatically removed", container.name);
}

fn setup_logging(level: LevelFilter) {
fn setup_runner_logging(level: LevelFilter) {
if let Err(_err) = fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
Expand All @@ -125,10 +124,6 @@ fn setup_logging(level: LevelFilter) {
debug!("logging initialized.");
}

pub struct Arguments {
pub tracker_config_path: String,
}

fn parse_arguments() -> Arguments {
let args: Vec<String> = std::env::args().collect();

Expand All @@ -145,11 +140,21 @@ fn parse_arguments() -> Arguments {
}
}

fn load_tracker_configuration(tracker_config_path: &str) -> String {
info!("Reading tracker configuration from file: {} ...", tracker_config_path);
read_tracker_config(tracker_config_path)
}

fn read_tracker_config(tracker_config_path: &str) -> String {
std::fs::read_to_string(tracker_config_path)
.unwrap_or_else(|_| panic!("Can't read tracker config file {tracker_config_path}"))
}

fn build_tracker_container_image(tag: &str) {
info!("Building tracker container image with tag: {} ...", tag);
Docker::build("./Containerfile", tag).expect("A tracker local docker image should be built");
}

fn generate_random_container_name(prefix: &str) -> String {
let rand_string: String = rand::thread_rng()
.sample_iter(&Alphanumeric)
Expand Down

0 comments on commit bf14375

Please sign in to comment.