mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
cmd/cli: do not validate invalid syntax config
If the remote custom config is an invalid syntax config, we should not do rules validation, prevent unnecessary error messages printed.
This commit is contained in:
committed by
Cuong Manh Le
parent
20e61550c2
commit
1ad63827e1
@@ -1843,7 +1843,11 @@ func doValidateCdRemoteConfig(cdUID string, fatal bool) error {
|
||||
oldV := v
|
||||
var cfgErr error
|
||||
remoteCfg := &ctrld.Config{}
|
||||
if cfgErr = validateCdRemoteConfig(rc, remoteCfg); cfgErr != nil {
|
||||
if cfgErr = validateCdRemoteConfig(rc, remoteCfg); cfgErr == nil {
|
||||
setListenerDefaultValue(remoteCfg)
|
||||
setNetworkDefaultValue(remoteCfg)
|
||||
cfgErr = validateConfig(remoteCfg)
|
||||
} else {
|
||||
if errors.As(cfgErr, &viper.ConfigParseError{}) {
|
||||
if configStr, _ := base64.StdEncoding.DecodeString(rc.Ctrld.CustomConfig); len(configStr) > 0 {
|
||||
tmpDir := os.TempDir()
|
||||
@@ -1866,11 +1870,7 @@ func doValidateCdRemoteConfig(cdUID string, fatal bool) error {
|
||||
} else {
|
||||
mainLog.Load().Error().Msgf("failed to unmarshal custom config: %v", err)
|
||||
}
|
||||
} else {
|
||||
setListenerDefaultValue(remoteCfg)
|
||||
setNetworkDefaultValue(remoteCfg)
|
||||
}
|
||||
cfgErr = validateConfig(remoteCfg)
|
||||
if cfgErr != nil {
|
||||
mainLog.Load().Warn().Msg("disregarding invalid custom config")
|
||||
}
|
||||
|
||||
@@ -351,15 +351,19 @@ func (p *prog) apiConfigReload() {
|
||||
if resolverConfig.Ctrld.CustomLastUpdate > lastUpdated || forced {
|
||||
lastUpdated = time.Now().Unix()
|
||||
cfg := &ctrld.Config{}
|
||||
if err := validateCdRemoteConfig(resolverConfig, cfg); err != nil {
|
||||
var cfgErr error
|
||||
if cfgErr = validateCdRemoteConfig(resolverConfig, cfg); cfgErr == nil {
|
||||
setListenerDefaultValue(cfg)
|
||||
setNetworkDefaultValue(cfg)
|
||||
cfgErr = validateConfig(cfg)
|
||||
}
|
||||
if cfgErr != nil {
|
||||
logger.Warn().Err(err).Msg("skipping invalid custom config")
|
||||
if _, err := controld.UpdateCustomLastFailed(cdUID, rootCmd.Version, cdDev, true); err != nil {
|
||||
logger.Error().Err(err).Msg("could not mark custom last update failed")
|
||||
}
|
||||
return
|
||||
}
|
||||
setListenerDefaultValue(cfg)
|
||||
setNetworkDefaultValue(cfg)
|
||||
logger.Debug().Msg("custom config changes detected, reloading...")
|
||||
p.apiReloadCh <- cfg
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user