diff --git a/pkg/container/cgroup_id.go b/pkg/container/cgroup_id.go index b5335bf..1da1dfe 100644 --- a/pkg/container/cgroup_id.go +++ b/pkg/container/cgroup_id.go @@ -17,9 +17,13 @@ func GetRunningContainerID() (cid types.ContainerID, err error) { return } - matches := dockerContainerPattern.FindStringSubmatch(string(file)) - if len(matches) < 2 { - return "", nil - } - return types.ContainerID(matches[1]), nil + return getRunningContainerIDFromString(string(file)), nil +} + +func getRunningContainerIDFromString(s string) types.ContainerID { + matches := dockerContainerPattern.FindStringSubmatch(s) + if len(matches) < 2 { + return "" + } + return types.ContainerID(matches[1]) } diff --git a/pkg/container/cgroup_id_test.go b/pkg/container/cgroup_id_test.go new file mode 100644 index 0000000..5f694e3 --- /dev/null +++ b/pkg/container/cgroup_id_test.go @@ -0,0 +1,40 @@ +package container + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("GetRunningContainerID", func() { + When("a matching container ID is found", func() { + It("should return that container ID", func() { + cid := getRunningContainerIDFromString(` +15:name=systemd:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +14:misc:/ +13:rdma:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +12:pids:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +11:hugetlb:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +10:net_prio:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +9:perf_event:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +8:net_cls:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +7:freezer:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +6:devices:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +5:blkio:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +4:cpuacct:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +3:cpu:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +2:cpuset:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +1:memory:/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 +0::/docker/991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377 + `) + Expect(cid).To(BeEquivalentTo(`991b6b42691449d3ce90192ff9f006863dcdafc6195e227aeefa298235004377`)) + }) + }) + When("no matching container ID could be found", func() { + It("should return that container ID", func() { + cid := getRunningContainerIDFromString(`14:misc:/`) + Expect(cid).To(BeEmpty()) + }) + }) +}) + +//