Update listen api address config override handling

This commit is contained in:
Daniel 2019-08-02 16:10:34 +02:00
parent 05bead1890
commit 79a4219487
3 changed files with 16 additions and 16 deletions

View file

@ -17,41 +17,41 @@ func init() {
flag.StringVar(&listenAddressFlag, "api-address", "", "override api listen address")
}
func checkFlags() error {
func logFlagOverrides() {
if listenAddressFlag != "" {
log.Warning("api: api/listenAddress config is being overridden by -api-address flag")
log.Warning("api: api/listenAddress default config is being overridden by -api-address flag")
}
return nil
}
func GetAPIAddress() string {
func getDefaultListenAddress() string {
// check if overridden
if listenAddressFlag != "" {
return listenAddressFlag
}
return listenAddressConfig()
// return internal default
return defaultListenAddress
}
func registerConfig() error {
err := config.Register(&config.Option{
Name: "API Address",
Key: "api/listenAddress",
Description: "Define on what IP and port the API should listen on. Be careful, changing this may become a security issue.",
ExpertiseLevel: config.ExpertiseLevelExpert,
Description: "Define on which IP and port the API should listen on.",
ExpertiseLevel: config.ExpertiseLevelDeveloper,
OptType: config.OptTypeString,
DefaultValue: defaultListenAddress,
DefaultValue: getDefaultListenAddress(),
ValidationRegex: "^([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}:[0-9]{1,5}|\\[[:0-9A-Fa-f]+\\]:[0-9]{1,5})$",
RequiresRestart: true,
})
if err != nil {
return err
}
listenAddressConfig = config.GetAsString("api/listenAddress", defaultListenAddress)
listenAddressConfig = config.GetAsString("api/listenAddress", getDefaultListenAddress())
return nil
}
// SetDefaultAPIListenAddress sets the default listen address for the API.
func SetDefaultAPIListenAddress(address string) {
if defaultListenAddress == "" {
defaultListenAddress = address
}
defaultListenAddress = address
}

View file

@ -17,14 +17,14 @@ func init() {
}
func prep() error {
err := checkFlags()
if err != nil {
return err
if getDefaultListenAddress() == "" {
return errors.New("no listen address for api available")
}
return registerConfig()
}
func start() error {
logFlagOverrides()
go Serve()
return nil
}

View file

@ -51,7 +51,7 @@ func RegisterMiddleware(middleware Middleware) {
// Serve starts serving the API endpoint.
func Serve() {
// configure server
server.Addr = GetAPIAddress()
server.Addr = listenAddressConfig()
server.Handler = middlewareHandler
// start serving