2021-04-18 15:41:13 -04:00
|
|
|
// Copyright (c) 2015-2021 MinIO, Inc.
|
|
|
|
//
|
|
|
|
// This file is part of MinIO Object Storage stack
|
|
|
|
//
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU Affero General Public License as published by
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
// (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This program is distributed in the hope that it will be useful
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU Affero General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2019-10-23 01:59:13 -04:00
|
|
|
|
|
|
|
package config
|
|
|
|
|
|
|
|
// HelpKV - implements help messages for keys
|
|
|
|
// with value as description of the keys.
|
2019-11-19 16:48:13 -05:00
|
|
|
type HelpKV struct {
|
|
|
|
Key string `json:"key"`
|
|
|
|
Type string `json:"type"`
|
|
|
|
Description string `json:"description"`
|
|
|
|
Optional bool `json:"optional"`
|
|
|
|
|
2023-06-23 10:45:27 -04:00
|
|
|
// Indicates if the value contains sensitive info that shouldn't be exposed
|
|
|
|
// in certain apis (such as Health Diagnostics/Callhome)
|
2021-06-07 15:43:21 -04:00
|
|
|
Sensitive bool `json:"-"`
|
2021-06-03 11:15:44 -04:00
|
|
|
|
2023-06-23 10:45:27 -04:00
|
|
|
// Indicates if the value is a secret such as a password that shouldn't be
|
|
|
|
// exposed by the server
|
|
|
|
Secret bool `json:"-"`
|
|
|
|
|
2019-11-19 16:48:13 -05:00
|
|
|
// Indicates if sub-sys supports multiple targets.
|
|
|
|
MultipleTargets bool `json:"multipleTargets"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// HelpKVS - implement order of keys help messages.
|
|
|
|
type HelpKVS []HelpKV
|
|
|
|
|
|
|
|
// Lookup - lookup a key from help kvs.
|
|
|
|
func (hkvs HelpKVS) Lookup(key string) (HelpKV, bool) {
|
|
|
|
for _, hkv := range hkvs {
|
|
|
|
if hkv.Key == key {
|
|
|
|
return hkv, true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return HelpKV{}, false
|
|
|
|
}
|
2019-10-23 01:59:13 -04:00
|
|
|
|
2019-12-04 18:32:37 -05:00
|
|
|
// DefaultComment used across all sub-systems.
|
|
|
|
const DefaultComment = "optionally add a comment to this setting"
|
|
|
|
|
2021-11-25 16:06:25 -05:00
|
|
|
// Region help is documented in default config
|
2019-10-23 01:59:13 -04:00
|
|
|
var (
|
2021-11-25 16:06:25 -05:00
|
|
|
SiteHelp = HelpKVS{
|
|
|
|
HelpKV{
|
|
|
|
Key: NameKey,
|
|
|
|
Type: "string",
|
|
|
|
Description: `name for the site e.g. "cal-rack0"`,
|
|
|
|
Optional: true,
|
|
|
|
},
|
|
|
|
HelpKV{
|
|
|
|
Key: RegionKey,
|
|
|
|
Type: "string",
|
|
|
|
Description: `name of the location of the server e.g. "us-west-1"`,
|
|
|
|
Optional: true,
|
|
|
|
},
|
|
|
|
HelpKV{
|
|
|
|
Key: Comment,
|
|
|
|
Type: "sentence",
|
|
|
|
Description: DefaultComment,
|
|
|
|
Optional: true,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2019-11-19 16:48:13 -05:00
|
|
|
RegionHelp = HelpKVS{
|
|
|
|
HelpKV{
|
|
|
|
Key: RegionName,
|
|
|
|
Type: "string",
|
2021-11-25 16:06:25 -05:00
|
|
|
Description: `[DEPRECATED] name of the location of the server e.g. "us-west-rack2"`,
|
2019-11-19 16:48:13 -05:00
|
|
|
Optional: true,
|
|
|
|
},
|
|
|
|
HelpKV{
|
|
|
|
Key: Comment,
|
|
|
|
Type: "sentence",
|
2019-12-04 18:32:37 -05:00
|
|
|
Description: DefaultComment,
|
2019-11-19 16:48:13 -05:00
|
|
|
Optional: true,
|
|
|
|
},
|
2019-10-23 01:59:13 -04:00
|
|
|
}
|
|
|
|
)
|
2022-04-26 23:11:37 -04:00
|
|
|
|
|
|
|
// DefaultHelpPostfix - Helper function to add (default: $value) messages in config help
|
|
|
|
func DefaultHelpPostfix(subsystem KVS, key string) string {
|
|
|
|
val, found := subsystem.Lookup(key)
|
|
|
|
if !found || val == "" {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
return " (default: '" + val + "')"
|
|
|
|
}
|