feat(controller): start, stop, restart, destroy and wipe commands #1

Merged
Skipper merged 3 commits from impl-commands into main 2025-12-12 12:34:30 +00:00
Showing only changes of commit 4c64e411f9 - Show all commits

View File

@@ -105,28 +105,15 @@ impl Controller {
}
pub async fn start(&self) -> Result<()> {
let instance = self.ctx.require_instance()?;
let project = self.ctx.require_project()?;
CleverWild marked this conversation as resolved
Review

check Reconciler

check `Reconciler`
if self
.ctx
.docker
.is_container_running_by_id(&instance.container_id)
.await?
{
println!("{}", "Container is already running".yellow());
return Ok(());
}
let reconciler = Reconciler { ctx: &self.ctx };
println!("{}", "Starting container...".cyan());
self.ctx
.docker
.start_container_by_id(&instance.container_id)
.await?;
reconciler.reconcile(project).await?;
println!(
"{} {} {}",
"".green().bold(),
"Container".green(),
"Container started".green(),
project.container_name().yellow()
);
@@ -163,14 +150,11 @@ impl Controller {
}
pub async fn restart(&self) -> Result<()> {
let instance = self.ctx.require_instance()?;
let project = self.ctx.require_project()?;
let reconciler = Reconciler { ctx: &self.ctx };
println!("{}", "Restarting container...".cyan());
self.ctx
.docker
.restart_container(&instance.container_id, 10)
.await?;
reconciler.reconcile(project).await?;
CleverWild marked this conversation as resolved Outdated

Contrary to the intuition, you should stop container here before calling reconciler. Because if container is already running, it wouldn't do anything

Contrary to the intuition, you should stop container here before calling reconciler. Because if container is already running, it wouldn't do anything
println!(
"{} {} {}",
"".green().bold(),