mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-08-10 13:20:33 +02: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:
+5
-5
@@ -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")
|
||||
}
|
||||
|
||||
+7
-3
@@ -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