From 6cfaf0a9cce8cdadb203b2579b22555b6cbf83f9 Mon Sep 17 00:00:00 2001 From: Kornilios Kourtis Date: Wed, 6 Mar 2024 06:44:21 +0100 Subject: [PATCH] tetra: add cgroup id command in policyfilter When troubleshooting it is often useful to get the cgroup id from a file. Add a CLI command for doing so. Signed-off-by: Kornilios Kourtis --- cmd/tetra/policyfilter/policyfilter.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmd/tetra/policyfilter/policyfilter.go b/cmd/tetra/policyfilter/policyfilter.go index 1315649b946..b94045b8704 100644 --- a/cmd/tetra/policyfilter/policyfilter.go +++ b/cmd/tetra/policyfilter/policyfilter.go @@ -4,6 +4,7 @@ package policyfilter import ( + "fmt" "path/filepath" "strconv" @@ -26,11 +27,32 @@ func New() *cobra.Command { ret.AddCommand( dumpCmd(), addCommand(), + cgroupGetIDCommand(), ) return ret } +func cgroupGetIDCommand() *cobra.Command { + mapFname := filepath.Join(defaults.DefaultMapRoot, defaults.DefaultMapPrefix, policyfilter.MapName) + ret := &cobra.Command{ + Use: "cgroupid", + Short: "retrieve cgroup id from file", + Args: cobra.ExactArgs(1), + Run: func(_ *cobra.Command, args []string) { + cgID, err := cgroups.GetCgroupIdFromPath(args[0]) + if err != nil { + logger.GetLogger().WithError(err).Fatal("Failed to parse cgroup") + } + fmt.Printf("%d\n", cgID) + }, + } + + flags := ret.Flags() + flags.StringVar(&mapFname, "map-fname", mapFname, "policyfilter map filename") + return ret +} + func dumpCmd() *cobra.Command { mapFname := filepath.Join(defaults.DefaultMapRoot, defaults.DefaultMapPrefix, policyfilter.MapName) ret := &cobra.Command{