From d2896d61985b4f9c77a2475d301fd5feeb10260a Mon Sep 17 00:00:00 2001 From: Ji Shan Xing Date: Tue, 5 Mar 2019 02:53:04 -0500 Subject: [PATCH] 74900, kubectl logs selector supports tail=-1 --- pkg/kubectl/cmd/logs/logs.go | 9 ++++++--- pkg/kubectl/cmd/logs/logs_test.go | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/kubectl/cmd/logs/logs.go b/pkg/kubectl/cmd/logs/logs.go index 15774199603..53f06cd66da 100644 --- a/pkg/kubectl/cmd/logs/logs.go +++ b/pkg/kubectl/cmd/logs/logs.go @@ -115,6 +115,8 @@ type LogsOptions struct { LogsForObject polymorphichelpers.LogsForObjectFunc genericclioptions.IOStreams + + TailSpecified bool } func NewLogsOptions(streams genericclioptions.IOStreams, allContainers bool) *LogsOptions { @@ -191,7 +193,7 @@ func (o *LogsOptions) ToLogOptions() (*corev1.PodLogOptions, error) { logOptions.SinceSeconds = &sec } - if len(o.Selector) > 0 && o.Tail == -1 { + if len(o.Selector) > 0 && o.Tail == -1 && !o.TailSpecified { logOptions.TailLines = &selectorTail } else if o.Tail != -1 { logOptions.TailLines = &o.Tail @@ -202,6 +204,7 @@ func (o *LogsOptions) ToLogOptions() (*corev1.PodLogOptions, error) { func (o *LogsOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { o.ContainerNameSpecified = cmd.Flag("container").Changed + o.TailSpecified = cmd.Flag("tail").Changed o.Resources = args switch len(args) { @@ -290,8 +293,8 @@ func (o LogsOptions) Validate() error { return fmt.Errorf("--since must be greater than 0") } - if logsOptions.TailLines != nil && *logsOptions.TailLines < 0 { - return fmt.Errorf("TailLines must be greater than or equal to 0") + if logsOptions.TailLines != nil && *logsOptions.TailLines < -1 { + return fmt.Errorf("--tail must be greater than or equal to -1") } return nil diff --git a/pkg/kubectl/cmd/logs/logs_test.go b/pkg/kubectl/cmd/logs/logs_test.go index b793a11aefb..e2b9da41b15 100644 --- a/pkg/kubectl/cmd/logs/logs_test.go +++ b/pkg/kubectl/cmd/logs/logs_test.go @@ -328,7 +328,7 @@ func TestValidateLogOptions(t *testing.T) { return o }, args: []string{"foo"}, - expected: "must be greater than or equal to 0", + expected: "--tail must be greater than or equal to -1", }, { name: "container name combined with --all-containers",