From b0992db25d229b3ada3780da05152cb295063fed Mon Sep 17 00:00:00 2001 From: Ashvin Deodhar Date: Wed, 29 Jan 2020 13:43:26 -0800 Subject: [PATCH] Fix CNS regression --- aitelemetry/telemetrywrapper_test.go | 3 +-- cni/ipam/plugin/main.go | 3 ++- cni/network/plugin/main.go | 9 +++++---- cni/telemetry/service/telemetrymain.go | 6 +----- cnm/plugin/main.go | 3 ++- cns/logger/log.go | 8 ++++---- cns/service/main.go | 3 +-- log/logger.go | 9 +++++---- log/logger_test.go | 12 +++++++----- log/stdapi.go | 11 ++++------- npm/plugin/main.go | 2 +- 11 files changed, 33 insertions(+), 36 deletions(-) diff --git a/aitelemetry/telemetrywrapper_test.go b/aitelemetry/telemetrywrapper_test.go index 4edebadae6..4897fe583d 100644 --- a/aitelemetry/telemetrywrapper_test.go +++ b/aitelemetry/telemetrywrapper_test.go @@ -22,10 +22,9 @@ var ( ) func TestMain(m *testing.M) { - log.SetLogDirectory("/var/log/") log.SetName("testaitelemetry") log.SetLevel(log.LevelInfo) - err := log.SetTarget(log.TargetLogfile) + err := log.SetTargetLogDirectory(log.TargetLogfile, "/var/log/") if err == nil { fmt.Printf("TestST LogDir configuration succeeded\n") } diff --git a/cni/ipam/plugin/main.go b/cni/ipam/plugin/main.go index 1b61f16002..2a7538b3b4 100644 --- a/cni/ipam/plugin/main.go +++ b/cni/ipam/plugin/main.go @@ -24,10 +24,11 @@ var version string func main() { var config common.PluginConfig config.Version = version + logDirectory := "" // Sets the current location as log directory log.SetName(name) log.SetLevel(log.LevelInfo) - if err := log.SetTarget(log.TargetLogfile); err != nil { + if err := log.SetTargetLogDirectory(log.TargetLogfile, logDirectory); err != nil { fmt.Printf("Failed to setup cni logging: %v\n", err) return } diff --git a/cni/network/plugin/main.go b/cni/network/plugin/main.go index 8b95a41ff5..638f0763d3 100644 --- a/cni/network/plugin/main.go +++ b/cni/network/plugin/main.go @@ -139,14 +139,15 @@ func main() { } var ( - config common.PluginConfig - err error - cnimetric telemetry.AIMetric + config common.PluginConfig + err error + cnimetric telemetry.AIMetric + logDirectory string // This sets empty string i.e. current location ) log.SetName(name) log.SetLevel(log.LevelInfo) - if err = log.SetTarget(log.TargetLogfile); err != nil { + if err = log.SetTargetLogDirectory(log.TargetLogfile, logDirectory); err != nil { fmt.Printf("Failed to setup cni logging: %v\n", err) return } diff --git a/cni/telemetry/service/telemetrymain.go b/cni/telemetry/service/telemetrymain.go index 1a8229e3d9..d45b371876 100644 --- a/cni/telemetry/service/telemetrymain.go +++ b/cni/telemetry/service/telemetrymain.go @@ -129,11 +129,7 @@ func main() { log.SetName(azureVnetTelemetry) log.SetLevel(logLevel) - if logDirectory != "" { - log.SetLogDirectory(logDirectory) - } - - err = log.SetTarget(logTarget) + err = log.SetTargetLogDirectory(logTarget, logDirectory) if err != nil { fmt.Printf("Failed to configure logging: %v\n", err) return diff --git a/cnm/plugin/main.go b/cnm/plugin/main.go index 287113aee7..c26a26d966 100644 --- a/cnm/plugin/main.go +++ b/cnm/plugin/main.go @@ -166,9 +166,10 @@ func main() { } // Create logging provider. + logDirectory := "" // Sets the current location as log directory log.SetName(name) log.SetLevel(logLevel) - err = log.SetTarget(logTarget) + err = log.SetTargetLogDirectory(logTarget, logDirectory) if err != nil { fmt.Printf("Failed to configure logging: %v\n", err) return diff --git a/cns/logger/log.go b/cns/logger/log.go index 902451e4f3..8a7913b48d 100644 --- a/cns/logger/log.go +++ b/cns/logger/log.go @@ -28,9 +28,9 @@ type CNSLogger struct { } // Initialize CNS Logger -func InitLogger(fileName string, logLevel, logTarget int) { +func InitLogger(fileName string, logLevel, logTarget int, logDir string) { Log = &CNSLogger{ - logger: log.NewLogger(fileName, logLevel, logTarget), + logger: log.NewLogger(fileName, logLevel, logTarget, logDir), } } @@ -61,8 +61,8 @@ func Close() { } } -func SetLogDirectory(dir string) { - Log.logger.SetLogDirectory(dir) +func SetTargetLogDirectory(target int, dir string) error { + return Log.logger.SetTargetLogDirectory(target, dir) } // Set context details for logs and metrics diff --git a/cns/service/main.go b/cns/service/main.go index 5719a2fc15..62eb45bd50 100644 --- a/cns/service/main.go +++ b/cns/service/main.go @@ -224,8 +224,7 @@ func main() { config.ErrChan = make(chan error, 1) // Create logging provider. - logger.InitLogger(name, logLevel, logTarget) - logger.SetLogDirectory(logDirectory) + logger.InitLogger(name, logLevel, logTarget, logDirectory) if !telemetryEnabled { logger.Errorf("[Azure CNS] Cannot disable telemetry via cmdline. Update cns_config.json to disable telemetry.") diff --git a/log/logger.go b/log/logger.go index a9ba4d7f13..bda969737f 100644 --- a/log/logger.go +++ b/log/logger.go @@ -60,16 +60,16 @@ type Logger struct { var pid = os.Getpid() // NewLogger creates a new Logger. -func NewLogger(name string, level int, target int) *Logger { +func NewLogger(name string, level int, target int, logDir string) *Logger { var logger Logger logger.l = log.New(nil, logPrefix, log.LstdFlags) logger.name = name logger.level = level + logger.directory = logDir logger.SetTarget(target) logger.maxFileSize = maxLogFileSize logger.maxFileCount = maxLogFileCount - logger.directory = "" logger.mutex = &sync.Mutex{} return &logger @@ -103,9 +103,10 @@ func (logger *Logger) Close() { } } -// SetLogDirectory sets the directory location where logs should be stored. -func (logger *Logger) SetLogDirectory(logDirectory string) { +// SetTargetLogDirectory sets the directory location where logs should be stored along with the target +func (logger *Logger) SetTargetLogDirectory(target int, logDirectory string) error { logger.directory = logDirectory + return logger.SetTarget(target) } // GetLogDirectory gets the directory location where logs should be stored. diff --git a/log/logger_test.go b/log/logger_test.go index 2dd20116cf..a34ad727dd 100644 --- a/log/logger_test.go +++ b/log/logger_test.go @@ -17,7 +17,8 @@ const ( // Tests that the log file rotates when size limit is reached. func TestLogFileRotatesWhenSizeLimitIsReached(t *testing.T) { - l := NewLogger(logName, LevelInfo, TargetLogfile) + logDirectory := "" // This sets the current location for logs + l := NewLogger(logName, LevelInfo, TargetLogfile, logDirectory) if l == nil { t.Fatalf("Failed to create logger.\n") } @@ -53,7 +54,8 @@ func TestLogFileRotatesWhenSizeLimitIsReached(t *testing.T) { } func TestPid(t *testing.T) { - l := NewLogger(logName, LevelInfo, TargetLogfile) + logDirectory := "" // This sets the current location for logs + l := NewLogger(logName, LevelInfo, TargetLogfile, logDirectory) if l == nil { t.Fatalf("Failed to create logger.") } @@ -62,15 +64,15 @@ func TestPid(t *testing.T) { l.Close() fn := l.GetLogDirectory() + logName + ".log" defer os.Remove(fn) - + logBytes, err := ioutil.ReadFile(fn) if err != nil { t.Fatalf("Failed to read log, %v", err) } log := string(logBytes) - exptectedLog := fmt.Sprintf("[%v] LogText 1", os.Getpid()); + exptectedLog := fmt.Sprintf("[%v] LogText 1", os.Getpid()) - if !strings.Contains(log, exptectedLog){ + if !strings.Contains(log, exptectedLog) { t.Fatalf("Unexpected log: %s.", log) } } diff --git a/log/stdapi.go b/log/stdapi.go index cac9922ba7..9b91afecde 100644 --- a/log/stdapi.go +++ b/log/stdapi.go @@ -4,7 +4,8 @@ package log // Standard logger is a pre-defined logger for convenience. -var stdLog = NewLogger("azure-container-networking", LevelInfo, TargetStderr) +// Set log directory as the current location +var stdLog = NewLogger("azure-container-networking", LevelInfo, TargetStderr, "") // GetStd - Helper functions for the standard logger. func GetStd() *Logger { @@ -15,10 +16,6 @@ func SetName(name string) { stdLog.SetName(name) } -func SetTarget(target int) error { - return stdLog.SetTarget(target) -} - func SetLevel(level int) { stdLog.SetLevel(level) } @@ -31,8 +28,8 @@ func Close() { stdLog.Close() } -func SetLogDirectory(logDirectory string) { - stdLog.SetLogDirectory(logDirectory) +func SetTargetLogDirectory(target int, logDirectory string) error { + return stdLog.SetTargetLogDirectory(target, logDirectory) } func GetLogDirectory() string { diff --git a/npm/plugin/main.go b/npm/plugin/main.go index 82ff4ae465..6b915e3f7c 100644 --- a/npm/plugin/main.go +++ b/npm/plugin/main.go @@ -22,7 +22,7 @@ var version string func initLogging() error { log.SetName("azure-npm") log.SetLevel(log.LevelInfo) - if err := log.SetTarget(log.TargetStdOutAndLogFile); err != nil { + if err := log.SetTargetLogDirectory(log.TargetStdOutAndLogFile, ""); err != nil { log.Logf("Failed to configure logging, err:%v.", err) return err }