From ad8968c8d99a6089a0fdcfae48eb55e6fd1a0504 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Fri, 10 Feb 2023 14:34:53 +0100 Subject: [PATCH] rustjail: print type of cgroup manager Since the cgroup manager is wrapped in a dyn now, the print in LinuxContainer::new has been useless and just says "CgroupManager". Extend the Debug trait for 'dyn Manager' to print the type of the cgroup manager so that it's easier to debug issues. Fixes: #5779 Signed-off-by: Jeremi Piotrowski --- src/agent/rustjail/src/cgroups/fs/mod.rs | 4 ++++ src/agent/rustjail/src/cgroups/mock.rs | 4 ++++ src/agent/rustjail/src/cgroups/mod.rs | 4 +++- src/agent/rustjail/src/cgroups/systemd/manager.rs | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/agent/rustjail/src/cgroups/fs/mod.rs b/src/agent/rustjail/src/cgroups/fs/mod.rs index becc56036..6eaa9870d 100644 --- a/src/agent/rustjail/src/cgroups/fs/mod.rs +++ b/src/agent/rustjail/src/cgroups/fs/mod.rs @@ -267,6 +267,10 @@ impl CgroupManager for Manager { fn as_any(&self) -> Result<&dyn Any> { Ok(self) } + + fn name(&self) -> &str { + "cgroupfs" + } } fn set_network_resources( diff --git a/src/agent/rustjail/src/cgroups/mock.rs b/src/agent/rustjail/src/cgroups/mock.rs index fbad6d664..3bcc99955 100644 --- a/src/agent/rustjail/src/cgroups/mock.rs +++ b/src/agent/rustjail/src/cgroups/mock.rs @@ -66,6 +66,10 @@ impl CgroupManager for Manager { fn as_any(&self) -> Result<&dyn Any> { Ok(self) } + + fn name(&self) -> &str { + "mock" + } } impl Manager { diff --git a/src/agent/rustjail/src/cgroups/mod.rs b/src/agent/rustjail/src/cgroups/mod.rs index 24275c314..c4e3b178b 100644 --- a/src/agent/rustjail/src/cgroups/mod.rs +++ b/src/agent/rustjail/src/cgroups/mod.rs @@ -52,10 +52,12 @@ pub trait Manager { fn as_any(&self) -> Result<&dyn Any> { Err(anyhow!("not supported!")) } + + fn name(&self) -> &str; } impl Debug for dyn Manager + Send + Sync { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - write!(f, "CgroupManager") + write!(f, "{}", self.name()) } } diff --git a/src/agent/rustjail/src/cgroups/systemd/manager.rs b/src/agent/rustjail/src/cgroups/systemd/manager.rs index 481ef1e60..c52e727e4 100644 --- a/src/agent/rustjail/src/cgroups/systemd/manager.rs +++ b/src/agent/rustjail/src/cgroups/systemd/manager.rs @@ -101,6 +101,10 @@ impl CgroupManager for Manager { fn as_any(&self) -> Result<&dyn Any> { Ok(self) } + + fn name(&self) -> &str { + "systemd" + } } impl Manager {