Skip to content

Commit de14a6b

Browse files
committed
Add stats label filter test
Adding a conformance test for filtering stats by container labels. Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
1 parent a9d9845 commit de14a6b

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

pkg/framework/util.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -253,14 +253,20 @@ func BuildContainerMetadata(containerName string, attempt uint32) *runtimeapi.Co
253253
}
254254
}
255255

256-
// CreateDefaultContainer creates a default container with default options.
256+
// CreateDefaultContainer creates a default container with default options.
257257
func CreateDefaultContainer(rc internalapi.RuntimeService, ic internalapi.ImageManagerService, podID string, podConfig *runtimeapi.PodSandboxConfig, prefix string) string {
258+
return CreateDefaultContainerWithLabels(rc, ic, podID, podConfig, prefix, nil)
259+
}
260+
261+
// CreateDefaultContainerWithLabels creates a default container with default options
262+
func CreateDefaultContainerWithLabels(rc internalapi.RuntimeService, ic internalapi.ImageManagerService, podID string, podConfig *runtimeapi.PodSandboxConfig, prefix string, labels map[string]string) string {
258263
containerName := prefix + NewUUID()
259264
containerConfig := &runtimeapi.ContainerConfig{
260265
Metadata: BuildContainerMetadata(containerName, DefaultAttempt),
261266
Image: &runtimeapi.ImageSpec{Image: TestContext.TestImageList.DefaultTestContainerImage},
262267
Command: DefaultContainerCommand,
263268
Linux: &runtimeapi.LinuxContainerConfig{},
269+
Labels: labels,
264270
}
265271

266272
return CreateContainer(rc, ic, containerConfig, podID, podConfig)

pkg/validate/container.go

+16
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,22 @@ var _ = framework.KubeDescribe("Container", func() {
239239
Expect(statFound(stats, secondContainerID)).To(BeTrue(), "Stats should be found")
240240
Expect(statFound(stats, thirdContainerID)).To(BeTrue(), "Stats should be found")
241241
})
242+
243+
It("runtime should support listing stats for containers filtered by labels [Conformance]", func() {
244+
By("create container")
245+
labels := map[string]string{"foo": "bar"}
246+
containerID := framework.CreateDefaultContainerWithLabels(rc, ic, podID, podConfig, "container-for-stats-with-labels-", labels)
247+
248+
By("start container")
249+
startContainer(rc, containerID)
250+
251+
By("test container stats")
252+
stats := listContainerStats(rc, &runtimeapi.ContainerStatsFilter{LabelSelector: labels})
253+
Expect(statFound(stats, containerID)).To(BeTrue(), "Container should be found")
254+
255+
stats = listContainerStats(rc, &runtimeapi.ContainerStatsFilter{LabelSelector: map[string]string{"foo": "baz"}})
256+
Expect(statFound(stats, containerID)).To(BeFalse(), "Container should be filtered")
257+
})
242258
})
243259

244260
Context("runtime should support adding volume and device", func() {

0 commit comments

Comments
 (0)