func()

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
}