Ejemplo n.º 1
0
func deletePolicy(c *config.Config, policyName string) error {
	defer ctxCancelFunc.Unlock()
	ctxCancelFunc.Lock()

	if _, ok := ctxCancelFunc.m[policyName]; !ok {
		return errors.New("policy not found")
	}
	log.Printf("deleting the policy %s...", policyName)

	delete(ctxCancelFunc.m, policyName)
	defer c.Unlock()
	c.Lock()
	for i, q := range c.PolicyConfig {
		if q.Name == policyName {
			c.PolicyConfig = append(c.PolicyConfig[:i], c.PolicyConfig[i+1:]...)
		}
	}

	if err := c.Save(); err != nil {
		return err
	}
	return nil
}