refactor: update_all_containers filter_map running

This commit is contained in:
Jack Wills
2022-09-06 14:31:27 +00:00
parent eff79d3cfb
commit d26f58201d
+14 -13
View File
@@ -193,12 +193,13 @@ impl DockerData {
let current_sort = self.app_data.lock().get_sorted(); let current_sort = self.app_data.lock().get_sorted();
self.app_data.lock().set_sorted(current_sort); self.app_data.lock().set_sorted(current_sort);
// Just get the containers that are currently running, no point updating info on paused or dead containers
output output
.iter() .iter()
.filter_map(|i| { .filter_map(|i| {
i.id.as_ref().map(|id| { i.id.as_ref().map(|id| {
( (
i.state.as_ref().unwrap_or(&String::new()) == "running", i.state == Some("running".to_owned()),
id.clone(), id.clone(),
) )
}) })
@@ -331,53 +332,53 @@ impl DockerData {
match message { match message {
DockerMessage::Pause(id) => { DockerMessage::Pause(id) => {
let loading_spin = self.loading_spin().await; let loading_spin = self.loading_spin().await;
docker.pause_container(&id).await.unwrap_or_else(|_| { if docker.pause_container(&id).await.is_err() {
app_data app_data
.lock() .lock()
.set_error(AppError::DockerCommand(DockerControls::Pause)); .set_error(AppError::DockerCommand(DockerControls::Pause));
}); };
self.stop_loading_spin(&loading_spin); self.stop_loading_spin(&loading_spin);
} }
DockerMessage::Restart(id) => { DockerMessage::Restart(id) => {
let loading_spin = self.loading_spin().await; let loading_spin = self.loading_spin().await;
docker if docker
.restart_container(&id, None) .restart_container(&id, None)
.await .await
.unwrap_or_else(|_| { .is_err() {
app_data app_data
.lock() .lock()
.set_error(AppError::DockerCommand(DockerControls::Restart)); .set_error(AppError::DockerCommand(DockerControls::Restart));
}); };
self.stop_loading_spin(&loading_spin); self.stop_loading_spin(&loading_spin);
} }
DockerMessage::Start(id) => { DockerMessage::Start(id) => {
let loading_spin = self.loading_spin().await; let loading_spin = self.loading_spin().await;
docker if docker
.start_container(&id, None::<StartContainerOptions<String>>) .start_container(&id, None::<StartContainerOptions<String>>)
.await .await
.unwrap_or_else(|_| { .is_err() {
app_data app_data
.lock() .lock()
.set_error(AppError::DockerCommand(DockerControls::Start)); .set_error(AppError::DockerCommand(DockerControls::Start));
}); };
self.stop_loading_spin(&loading_spin); self.stop_loading_spin(&loading_spin);
} }
DockerMessage::Stop(id) => { DockerMessage::Stop(id) => {
let loading_spin = self.loading_spin().await; let loading_spin = self.loading_spin().await;
docker.stop_container(&id, None).await.unwrap_or_else(|_| { if docker.stop_container(&id, None).await.is_err() {
app_data app_data
.lock() .lock()
.set_error(AppError::DockerCommand(DockerControls::Stop)); .set_error(AppError::DockerCommand(DockerControls::Stop));
}); };
self.stop_loading_spin(&loading_spin); self.stop_loading_spin(&loading_spin);
} }
DockerMessage::Unpause(id) => { DockerMessage::Unpause(id) => {
let loading_spin = self.loading_spin().await; let loading_spin = self.loading_spin().await;
docker.unpause_container(&id).await.unwrap_or_else(|_| { if docker.unpause_container(&id).await.is_err() {
app_data app_data
.lock() .lock()
.set_error(AppError::DockerCommand(DockerControls::Unpause)); .set_error(AppError::DockerCommand(DockerControls::Unpause));
}); };
self.stop_loading_spin(&loading_spin); self.stop_loading_spin(&loading_spin);
self.update_everything().await; self.update_everything().await;
} }