Merge pull request #74943 from JishanXing/bug-fix

Fix #74900 - kubectl logs --selector supports --tail=-1
This commit is contained in:
Kubernetes Prow Robot 2019-06-30 19:17:20 -07:00 committed by GitHub
commit bf86300241
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -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

View File

@ -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",