in pkg/admin/services/traffic/generic_rule_operation.go [29:69]
func removeFromOverride(key, side, param string) error {
oldRule, err := config.Governance.GetConfig(key)
if err != nil {
return err
}
if oldRule == "" {
return perrors.Errorf("Override rule does not exist!")
}
override := &model.Override{}
err = yaml.Unmarshal([]byte(oldRule), override)
if err != nil {
logger.Error("Unrecognized override rule!")
return err
}
for i, c := range override.Configs {
if c.Side == side && c.Parameters[param] != "" {
if len(c.Parameters) == 1 {
override.Configs = append(override.Configs[:i], override.Configs[i+1:]...)
} else {
delete(c.Parameters, param)
}
}
}
if len(override.Configs) == 0 {
err = config.Governance.DeleteConfig(key)
if err != nil {
logger.Error("Failed to delete override rule!")
return err
}
} else {
bytes, _ := yaml.Marshal(override)
err = config.Governance.SetConfig(key, string(bytes))
if err != nil {
return err
}
}
return nil
}