incus: add stop/start/rename_container/device_set wrappers
Author:
Chris Tusa <chris.tusa@leafscale.com>
Date:
Jul 15, 2026 14:29
Changeset:
862f1e4340a199dd035062047839ff5caa385109
Branch:
default
Changed files:
Diff
diff -r 216a154d7f7d -r 862f1e4340a1 src/incus.reef --- a/src/incus.reef Wed Jul 15 14:25:37 2026 -0500 +++ b/src/incus.reef Wed Jul 15 14:29:56 2026 -0500 @@ -43,6 +43,10 @@ fn profile_create_or_edit(project: string, name: string, yaml: string): rg.Result[bool, string] fn profile_get(project: string, name: string): rg.Result[string, string] fn device_add_disk_opts(project: string, name: string, dev: string, src: string, dst: string, opts: [string]): rg.Result[bool, string] + fn stop(project: string, name: string): rg.Result[bool, string] + fn start(project: string, name: string): rg.Result[bool, string] + fn rename_container(project: string, old: string, new_name: string): rg.Result[bool, string] + fn device_set(project: string, name: string, dev: string, keyvals: [string]): rg.Result[bool, string] end export // Spawn a program with both stdout and stderr redirected to /dev/null in the @@ -363,6 +367,37 @@ return run_incus(["restart", "--project", project, name]) end restart +fn stop(project: string, name: string): rg.Result[bool, string] + return run_incus(["stop", "--project", project, name]) +end stop + +fn start(project: string, name: string): rg.Result[bool, string] + return run_incus(["start", "--project", project, name]) +end start + +fn rename_container(project: string, old: string, new_name: string): rg.Result[bool, string] + return run_incus(["rename", "--project", project, old, new_name]) +end rename_container + +// incus config device set <container> <device> <key>=<val> ... +fn device_set(project: string, name: string, dev: string, keyvals: [string]): rg.Result[bool, string] + let kn: int = keyvals.length() + mut args: [string] = new [string](7 + kn) + args[0] = "config" + args[1] = "device" + args[2] = "set" + args[3] = "--project" + args[4] = project + args[5] = name + args[6] = dev + mut i: int = 0 + while i < kn + args[7 + i] = keyvals[i] + i = i + 1 + end while + return run_incus(args) +end device_set + fn delete_container(project: string, name: string): rg.Result[bool, string] return run_incus(["delete", "--project", project, "--force", name]) end delete_container