m/p/devicemapper: make parameter encoding part of package
The DM kernel interface gets a single parameter string for each DM
target in a table but internally the kernel immediately decodes it into
an argv-style list of string arguments. Because everything needs to do
it and it can be quite hard to get right, let's make it part of the
devicemapper package. Properly encoding this also means you get
actionable errors when you pass invalid data instead of weird kernel
errors or misbehavior.
Change-Id: I8060871a7459183c0395e5e4e8aac517544b2e87
Reviewed-on: https://review.monogon.dev/c/monogon/+/309
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/devicemapper/BUILD.bazel b/metropolis/pkg/devicemapper/BUILD.bazel
index 9e66a7e..e0dca24 100644
--- a/metropolis/pkg/devicemapper/BUILD.bazel
+++ b/metropolis/pkg/devicemapper/BUILD.bazel
@@ -2,7 +2,10 @@
go_library(
name = "go_default_library",
- srcs = ["devicemapper.go"],
+ srcs = [
+ "ctype.go",
+ "devicemapper.go",
+ ],
importpath = "source.monogon.dev/metropolis/pkg/devicemapper",
visibility = ["//metropolis:__subpackages__"],
deps = [