diff --git a/cmd/config/config.go b/cmd/config/config.go index b342acdfe..2ff51ca1f 100644 --- a/cmd/config/config.go +++ b/cmd/config/config.go @@ -448,6 +448,11 @@ func (c Config) Merge() Config { ckvs.Set(kv.Key, kv.Value) } } + if _, ok := cp[subSys]; !ok { + // A config subsystem was removed or server was downgraded. + Logger.Info("config: ignoring unknown subsystem config %q\n", subSys) + continue + } cp[subSys][tgt] = ckvs } } diff --git a/cmd/config/logger.go b/cmd/config/logger.go new file mode 100644 index 000000000..096045c8d --- /dev/null +++ b/cmd/config/logger.go @@ -0,0 +1,27 @@ +/* + * MinIO Cloud Storage, (C) 2020 MinIO, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package config + +import "context" + +// Logger contains injected logger methods. +var Logger = struct { + Info func(msg string, data ...interface{}) + LogIf func(ctx context.Context, err error, errKind ...interface{}) +}{ + // Initialized via injection. +} diff --git a/cmd/logger/config.go b/cmd/logger/config.go index dc520f832..2cc6e71f3 100644 --- a/cmd/logger/config.go +++ b/cmd/logger/config.go @@ -56,6 +56,12 @@ const ( EnvAuditWebhookAuthToken = "MINIO_AUDIT_WEBHOOK_AUTH_TOKEN" ) +// Inject into config package. +func init() { + config.Logger.Info = Info + config.Logger.LogIf = LogIf +} + // Default KVS for loggerHTTP and loggerAuditHTTP var ( DefaultKVS = config.KVS{