func()

in pkg/admin/services/override_service_impl.go [240:289]


func (s *OverrideServiceImpl) EnableOverride(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()
	override.Enabled = true
	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
		}
	}

	// for 2.6
	if override.Scope == constant.Service {
		overrides := old.ToOldOverride()
		for _, o := range overrides {
			o.Enabled = false
			url, err := util.OldOverride2URL(o)
			if err != nil {
				return err
			}
			config.Governance.UnRegister(url)

			o.Enabled = true
			url, err = util.OldOverride2URL(o)
			if err != nil {
				return err
			}
			config.Governance.Register(url)
		}
	}

	return nil
}