Refactor Docker integration: update BollardAdapter to use async Mutex, implement version retrieval, and clean up unused service methods.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
use bollard::Docker;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::sync::Arc;
|
||||
use tokio::sync::Mutex;
|
||||
|
||||
pub struct BollardAdapter {
|
||||
client: Arc<Mutex<Option<Docker>>>,
|
||||
@@ -22,22 +23,22 @@ impl crate::docker::DockerAdapter for BollardAdapter {
|
||||
|
||||
docker.ping().await?;
|
||||
|
||||
let mut client = self.client.lock().unwrap();
|
||||
let mut client = self.client.lock().await;
|
||||
*client = Some(docker);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn list_service_with_label(&self, label: &str) -> anyhow::Result<Vec<String>> {
|
||||
Ok(vec![])
|
||||
}
|
||||
async fn version(&self) -> anyhow::Result<String> {
|
||||
let client = self.client.lock().await;
|
||||
if let Some(docker) = &*client {
|
||||
let version_info = docker.version().await?;
|
||||
let version = version_info.version;
|
||||
|
||||
async fn shutdown_service(&self, service_name: &str) -> anyhow::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn start_service(&self, service_name: &str) -> anyhow::Result<()> {
|
||||
Ok(())
|
||||
version.ok_or_else(|| anyhow::anyhow!("Version not available"))
|
||||
} else {
|
||||
Err(anyhow::anyhow!("Docker client is not connected"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user