diff --git a/controller/limits/agent.go b/controller/limits/agent.go index 838911c9..d1885e46 100644 --- a/controller/limits/agent.go +++ b/controller/limits/agent.go @@ -87,15 +87,24 @@ func (a *Agent) CanCreateShare(acctId, envId int, reserved, uniqueName bool, _ s return false, err } - bwcs := ul.toBandwidthArray(backendMode) - for _, bwc := range bwcs { - latestJe, err := a.isBandwidthClassLimitedForAccount(acctId, bwc, trx) + if scopedBwc, found := ul.scopes[backendMode]; found { + latestScopedJe, err := a.isBandwidthClassLimitedForAccount(acctId, scopedBwc, trx) if err != nil { return false, err } - if latestJe != nil { + if latestScopedJe != nil { return false, nil } + } else { + for _, bwc := range ul.bandwidth { + latestJe, err := a.isBandwidthClassLimitedForAccount(acctId, bwc, trx) + if err != nil { + return false, err + } + if latestJe != nil { + return false, nil + } + } } if ul.resource.GetShares() > store.Unlimited || (reserved && ul.resource.GetReservedShares() > store.Unlimited) || (reserved && uniqueName && ul.resource.GetUniqueNames() > store.Unlimited) { diff --git a/controller/limits/relaxAction.go b/controller/limits/relaxAction.go index f0df0441..454b03e0 100644 --- a/controller/limits/relaxAction.go +++ b/controller/limits/relaxAction.go @@ -44,11 +44,11 @@ func (a *relaxAction) HandleAccount(acct *store.Account, _, _ int64, bwc store.B switch shr.ShareMode { case string(sdk.PublicShareMode): if err := relaxPublicShare(a.str, edge, shr, trx); err != nil { - return errors.Wrap(err, "error relaxing public share") + logrus.Errorf("error relaxing public share '%v' for account '%v' (ignoring): %v", shr.Token, acct.Email, err) } case string(sdk.PrivateShareMode): if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil { - return errors.Wrap(err, "error relaxing private share") + logrus.Errorf("error relaxing private share '%v' for account '%v' (ignoring): %v", shr.Token, acct.Email, err) } } }