Skip to content

Commit af65b59

Browse files
committed
refactor: [torrust#634] no need to change dir to temp dir
We only need to create the config file for the tracker_checker in a temp dir but it can be executed from the root dir.
1 parent ef80b0a commit af65b59

File tree

3 files changed

+34
-21
lines changed

3 files changed

+34
-21
lines changed

src/e2e/docker.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub struct RunningContainer {
1313
}
1414

1515
impl Drop for RunningContainer {
16-
/// Ensures that the temporary container is stopped and removed when the
16+
/// Ensures that the temporary container is stopped and removed when the
1717
/// struct goes out of scope.
1818
fn drop(&mut self) {
1919
let _unused = Docker::stop(self);

src/e2e/runner.rs

+22-20
Original file line numberDiff line numberDiff line change
@@ -19,32 +19,30 @@ pub const NUMBER_OF_ARGUMENTS: usize = 2;
1919
///
2020
/// Will panic if it can't not perform any of the operations.
2121
pub fn run() {
22+
// todo: const
23+
let container_tag: &str = "torrust-tracker:local";
24+
let tracker_checker_config_file = "tracker_checker.json";
25+
2226
setup_logging(LevelFilter::Info);
2327

2428
let args = parse_arguments();
2529

30+
// Setup tracker configuration
2631
info!("Reading tracker configuration from file: {} ...", args.tracker_config_path);
27-
2832
let tracker_config = read_tracker_config(&args.tracker_config_path);
2933

30-
let container_tag: &str = "torrust-tracker:local";
31-
let tracker_checker_config_file = "tracker_checker.json";
32-
34+
// Build tracker container image
3335
Docker::build("./Containerfile", container_tag).expect("A tracker local docker image should be built");
3436

37+
// Create temp dir
3538
info!(
3639
"Current dir: {:?}",
3740
env::current_dir().expect("It should return the current dir")
3841
);
39-
4042
let temp_dir_handler = Handler::new().expect("A temp dir should be created");
4143
info!("Temp dir created: {:?}", temp_dir_handler.temp_dir);
4244

43-
info!("Change dir to: {:?}", temp_dir_handler.temp_dir);
44-
temp_dir_handler
45-
.change_to_temp_dir()
46-
.expect("The app should change dir to the temp dir");
47-
45+
// Run the tracker container
4846
let container_name = generate_random_container_name("tracker_");
4947

5048
// code-review: if we want to use port 0 we don't know which ports we have to open.
@@ -68,6 +66,8 @@ pub fn run() {
6866

6967
info!("Container {container_name} is healthy ...");
7068

69+
// Extract running services from container logs
70+
7171
let logs = Docker::logs(&container_name).expect("Logs should be captured from running container");
7272

7373
debug!("Logs after starting the container:\n{logs}");
@@ -77,20 +77,20 @@ pub fn run() {
7777

7878
let json = serde_json::to_string_pretty(&config).expect("Running services should be serialized into JSON");
7979

80-
let tracker_checker_config_path = format!("./{tracker_checker_config_file}");
80+
// Write tracker_checker configuration file
8181

82-
let mut file = File::create(tracker_checker_config_path.clone()).expect("Tracker checker config file to be created");
82+
let mut absolute_tracker_checker_config_path = PathBuf::from(&temp_dir_handler.temp_dir.path());
83+
absolute_tracker_checker_config_path.push(tracker_checker_config_file);
84+
85+
let mut file = File::create(absolute_tracker_checker_config_path.clone()).expect("Tracker checker config file to be created");
8386
file.write_all(json.as_bytes())
8487
.expect("Tracker checker config file to be written");
85-
info!("Tracker checker configuration file: {tracker_checker_config_path} \n{json}");
86-
87-
info!("Revert current dir to: {:?}", temp_dir_handler.original_dir);
88-
temp_dir_handler
89-
.revert_to_original_dir()
90-
.expect("The app should revert dir from temp dir to the original one");
88+
info!(
89+
"Tracker checker configuration file: {:?} \n{json}",
90+
absolute_tracker_checker_config_path
91+
);
9192

92-
let mut absolute_tracker_checker_config_path = PathBuf::from(&temp_dir_handler.temp_dir.path());
93-
absolute_tracker_checker_config_path.push(tracker_checker_config_file);
93+
// Run the tracker_checker
9494

9595
info!(
9696
"Running tacker checker: cargo --bin tracker_checker {}",
@@ -99,6 +99,8 @@ pub fn run() {
9999

100100
run_tracker_checker(&absolute_tracker_checker_config_path).expect("Tracker checker should check running services");
101101

102+
// End: container will be removed automatically when the `RunningContainer` is dropped.
103+
102104
info!("Running container `{}` will be automatically removed", container.name);
103105
}
104106

tracker_checker.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"udp_trackers": [
3+
"127.0.0.1:6969"
4+
],
5+
"http_trackers": [
6+
"http://127.0.0.1:7070"
7+
],
8+
"health_checks": [
9+
"http://127.0.0.1:1313/health_check"
10+
]
11+
}

0 commit comments

Comments
 (0)