From 66d077882854bc407f27a4ecd47deb157fe7a47d Mon Sep 17 00:00:00 2001 From: Lee Verberne Date: Tue, 27 Aug 2019 09:35:16 +0000 Subject: [PATCH] Update kubectl polymorphic logs helper for ephemeral containers This also updates the test to check there were actual actions that weren't expected. --- .../pkg/polymorphichelpers/logsforobject.go | 9 +++++++++ .../pkg/polymorphichelpers/logsforobject_test.go | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject.go b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject.go index 68730191556..e0fbb97578c 100644 --- a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject.go +++ b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject.go @@ -89,6 +89,15 @@ func logsForObjectWithClient(clientset corev1client.CoreV1Interface, object, opt } ret = append(ret, currRet...) } + for _, c := range t.Spec.EphemeralContainers { + currOpts := opts.DeepCopy() + currOpts.Container = c.Name + currRet, err := logsForObjectWithClient(clientset, t, currOpts, timeout, false) + if err != nil { + return nil, err + } + ret = append(ret, currRet...) + } return ret, nil } diff --git a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject_test.go b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject_test.go index 7a75d8bb540..7403ec784da 100644 --- a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject_test.go +++ b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/logsforobject_test.go @@ -70,6 +70,11 @@ func TestLogsForObject(t *testing.T) { {Name: "c1"}, {Name: "c2"}, }, + EphemeralContainers: []corev1.EphemeralContainer{ + { + EphemeralContainerCommon: corev1.EphemeralContainerCommon{Name: "e1"}, + }, + }, }, }, opts: &corev1.PodLogOptions{}, @@ -80,6 +85,7 @@ func TestLogsForObject(t *testing.T) { getLogsAction("test", &corev1.PodLogOptions{Container: "initc2"}), getLogsAction("test", &corev1.PodLogOptions{Container: "c1"}), getLogsAction("test", &corev1.PodLogOptions{Container: "c2"}), + getLogsAction("test", &corev1.PodLogOptions{Container: "e1"}), }, }, { @@ -215,18 +221,22 @@ func TestLogsForObject(t *testing.T) { continue } - for i := range test.actions { + var i int + for i = range test.actions { if len(fakeClientset.Actions()) < i { - t.Errorf("%s: action %d does not exists in actual actions: %#v", + t.Errorf("%s: expected action %d does not exists in actual actions: %#v", test.name, i, fakeClientset.Actions()) continue } got := fakeClientset.Actions()[i] want := test.actions[i] if !reflect.DeepEqual(got, want) { - t.Errorf("%s: unexpected action: %s", test.name, diff.ObjectDiff(got, want)) + t.Errorf("%s: unexpected diff for action: %s", test.name, diff.ObjectDiff(got, want)) } } + for i++; i < len(fakeClientset.Actions()); i++ { + t.Errorf("%s: actual action %d does not exist in expected: %v", test.name, i, fakeClientset.Actions()[i]) + } } }