in pkg/admin/services/override_service_impl.go [291:355]
func (s *OverrideServiceImpl) DeleteOverride(id string) error {
path := GetOverridePath(id)
conf, err := config.Governance.GetConfig(path)
if err != nil {
logger.Logger().Error(err.Error())
return err
}
override := &model.Override{}
err = yaml.UnmarshalYML([]byte(conf), override)
if err != nil {
logger.Logger().Error(err.Error())
return err
}
old := override.ToDynamicConfig()
if len(override.Configs) > 0 {
newConfigs := make([]model.OverrideConfig, 0)
for _, c := range override.Configs {
if constant.Configs.Contains(c.Type) {
newConfigs = append(newConfigs, c)
}
}
if len(newConfigs) == 0 {
err := config.Governance.DeleteConfig(path)
if err != nil {
logger.Logger().Error(err.Error())
return err
}
} else {
override.Configs = newConfigs
if b, err := yaml.MarshalYML(override); err != nil {
logger.Logger().Error(err.Error())
return err
} else {
err := config.Governance.SetConfig(path, string(b))
if err != nil {
logger.Logger().Error(err.Error())
return err
}
}
}
} else {
err := config.Governance.DeleteConfig(path)
if err != nil {
logger.Logger().Error(err.Error())
return err
}
}
// for 2.6
if override.Scope == constant.Service {
overrides := old.ToOldOverride()
for _, o := range overrides {
url, err := util.OldOverride2URL(o)
if err != nil {
logger.Logger().Error(err.Error())
return err
}
config.Governance.UnRegister(url)
}
}
return nil
}