74900, kubectl logs selector supports tail=-1

This commit is contained in:
Ji Shan Xing 2019-03-05 02:53:04 -05:00
parent 71fe27eff5
commit d2896d6198
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",