VOL-1848 API for setting and querying loglevel of api-server;
Add source-router to support routing UpdateLogLevel to cores;
Add logging endpoints to rocore
Change-Id: I89eea3599ea3006fe92e6917221cd1fd235ec5e4
diff --git a/ro_core/core/grpc_nbi_api_handler.go b/ro_core/core/grpc_nbi_api_handler.go
index e2c6843..c68b230 100644
--- a/ro_core/core/grpc_nbi_api_handler.go
+++ b/ro_core/core/grpc_nbi_api_handler.go
@@ -73,6 +73,47 @@
}
}
+func (handler *APIHandler) UpdateLogLevel(ctx context.Context, logging *voltha.Logging) (*empty.Empty, error) {
+ log.Debugw("UpdateLogLevel-request", log.Fields{"package": logging.PackageName, "intval": int(logging.Level)})
+ out := new(empty.Empty)
+ if logging.PackageName == "" {
+ log.SetAllLogLevel(int(logging.Level))
+ log.SetDefaultLogLevel(int(logging.Level))
+ } else if logging.PackageName == "default" {
+ log.SetDefaultLogLevel(int(logging.Level))
+ } else {
+ log.SetPackageLogLevel(logging.PackageName, int(logging.Level))
+ }
+
+ return out, nil
+}
+
+func (aa APIHandler) GetLogLevels(ctx context.Context, in *voltha.LoggingComponent) (*voltha.Loggings, error) {
+ logLevels := &voltha.Loggings{}
+
+ // do the per-package log levels
+ for _, packageName := range log.GetPackageNames() {
+ level, err := log.GetPackageLogLevel(packageName)
+ if err != nil {
+ return nil, err
+ }
+ logLevel := &voltha.Logging{
+ ComponentName: in.ComponentName,
+ PackageName: packageName,
+ Level: voltha.LogLevel_LogLevel(level)}
+ logLevels.Items = append(logLevels.Items, logLevel)
+ }
+
+ // now do the default log level
+ logLevel := &voltha.Logging{
+ ComponentName: in.ComponentName,
+ PackageName: "default",
+ Level: voltha.LogLevel_LogLevel(log.GetDefaultLogLevel())}
+ logLevels.Items = append(logLevels.Items, logLevel)
+
+ return logLevels, nil
+}
+
// GetVoltha returns the contents of all components (i.e. devices, logical_devices, ...)
func (handler *APIHandler) GetVoltha(ctx context.Context, empty *empty.Empty) (*voltha.Voltha, error) {
log.Debug("GetVoltha")