mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-28 10:28:36 +00:00
[Bug] [CLI] Level parameter of the apply and test commands does not work (#10216)
* added verbosity level Signed-off-by: Suruchi Kumari <suruchikumarimfp4@gmail.com> * added else statement to handle the error Signed-off-by: GitHub <noreply@github.com> * fix: verbosity in cli Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> --------- Signed-off-by: Suruchi Kumari <suruchikumarimfp4@gmail.com> Signed-off-by: GitHub <noreply@github.com> Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> Co-authored-by: Suruchi Kumari <suruchikumarimfp4@gmail.com> Co-authored-by: shuting <shuting@nirmata.com> Co-authored-by: anushkamittal20 <anumittal4641@gmail.com>
This commit is contained in:
parent
5fcf83084c
commit
63ab92417c
2 changed files with 78 additions and 32 deletions
|
@ -2,13 +2,18 @@ package log
|
|||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/kyverno/kyverno/pkg/logging"
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
)
|
||||
|
||||
const loggerName = "kubectl-kyverno"
|
||||
|
||||
var defaultLogLevel = 2
|
||||
|
||||
var Log = logging.WithName(loggerName)
|
||||
|
||||
func Configure() error {
|
||||
|
@ -17,19 +22,43 @@ func Configure() error {
|
|||
|
||||
func configure(args ...string) error {
|
||||
logging.InitFlags(nil)
|
||||
if isVerbose(args...) {
|
||||
return logging.Setup(logging.TextFormat, logging.DefaultTime, 0)
|
||||
|
||||
isVerboseBool, level, err := isVerbose(args...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if isVerboseBool {
|
||||
return logging.Setup(logging.TextFormat, logging.DefaultTime, level)
|
||||
} else {
|
||||
log.SetLogger(logr.Discard())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func isVerbose(args ...string) bool {
|
||||
for _, arg := range args {
|
||||
func isVerbose(args ...string) (bool, int, error) {
|
||||
for i, arg := range args {
|
||||
if arg == "-v" || arg == "--v" {
|
||||
return true
|
||||
level := defaultLogLevel
|
||||
if i+1 < len(args) {
|
||||
levelStr := args[i+1]
|
||||
levelInt, err := strconv.Atoi(levelStr)
|
||||
if err != nil {
|
||||
// Return an error if conversion fails
|
||||
return false, 0, err
|
||||
}
|
||||
level = levelInt
|
||||
}
|
||||
return true, level, nil
|
||||
} else if strings.HasPrefix(arg, "-v=") || strings.HasPrefix(arg, "--v=") {
|
||||
return true
|
||||
levelStr := strings.TrimPrefix(arg, "-v=")
|
||||
levelStr = strings.TrimPrefix(levelStr, "--v=")
|
||||
level, err := strconv.Atoi(levelStr)
|
||||
if err != nil {
|
||||
// Return an error if conversion fails
|
||||
return false, 0, err
|
||||
}
|
||||
return true, level, nil
|
||||
}
|
||||
}
|
||||
return false
|
||||
return false, 0, nil
|
||||
}
|
||||
|
|
|
@ -12,43 +12,60 @@ func TestConfigure(t *testing.T) {
|
|||
|
||||
func Test_isVerbose(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
args []string
|
||||
want bool
|
||||
name string
|
||||
args []string
|
||||
want bool
|
||||
level int
|
||||
}{{
|
||||
name: "nil",
|
||||
args: nil,
|
||||
want: false,
|
||||
name: "nil",
|
||||
args: nil,
|
||||
want: false,
|
||||
level: 0,
|
||||
}, {
|
||||
name: "empty",
|
||||
args: []string{},
|
||||
want: false,
|
||||
name: "empty",
|
||||
args: []string{},
|
||||
want: false,
|
||||
level: 0,
|
||||
}, {
|
||||
name: "not verbose",
|
||||
args: []string{"-verbose", "--verbose", "-vv", "--vv"},
|
||||
want: false,
|
||||
name: "not verbose",
|
||||
args: []string{"-verbose", "--verbose", "-vv", "--vv"},
|
||||
want: false,
|
||||
level: 0,
|
||||
}, {
|
||||
name: "verbose",
|
||||
args: []string{"-v", "3"},
|
||||
want: true,
|
||||
name: "verbose",
|
||||
args: []string{"-v", "3"},
|
||||
want: true,
|
||||
level: 3,
|
||||
}, {
|
||||
name: "verbose",
|
||||
args: []string{"-v=3"},
|
||||
want: true,
|
||||
name: "verbose",
|
||||
args: []string{"-v"},
|
||||
want: true,
|
||||
level: defaultLogLevel,
|
||||
}, {
|
||||
name: "verbose",
|
||||
args: []string{"--v", "3"},
|
||||
want: true,
|
||||
name: "verbose",
|
||||
args: []string{"-v=3"},
|
||||
want: true,
|
||||
level: 3,
|
||||
}, {
|
||||
name: "verbose",
|
||||
args: []string{"--v=3"},
|
||||
want: true,
|
||||
name: "verbose",
|
||||
args: []string{"--v", "3"},
|
||||
want: true,
|
||||
level: 3,
|
||||
}, {
|
||||
name: "verbose",
|
||||
args: []string{"--v=3"},
|
||||
want: true,
|
||||
level: 3,
|
||||
}}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := isVerbose(tt.args...); got != tt.want {
|
||||
got, level, _ := isVerbose(tt.args...)
|
||||
if got != tt.want {
|
||||
t.Errorf("isVerbose() = %v, want %v", got, tt.want)
|
||||
}
|
||||
if level != tt.level {
|
||||
t.Errorf("isVerbose() level = %v, want %v", level, tt.level)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue