mirror of
https://github.com/openziti/zrok.git
synced 2025-08-15 02:22:32 +02:00
.github
bin
build
cmd
controller
config
emailUi
env
limits
agent.go
bandwidthClass.go
config.go
email.go
influxReader.go
limitAction.go
model.go
relaxAction.go
resourceCountClass.go
userLimits.go
warningAction.go
metrics
store
zrokEdgeSdk
access.go
accountDetail.go
bootstrap.go
changePassword.go
configuration.go
controller.go
createAccount.go
createFrontend.go
createIdentity.go
deleteFrontend.go
disable.go
enable.go
environmentDetail.go
frontendDetail.go
gc.go
health.go
invite.go
inviteTokenGenerate.go
listFrontends.go
login.go
maintenance.go
metrics.go
overview.go
passwords.go
regenerateToken.go
register.go
resetPassword.go
resetPasswordEmail.go
resetPasswordRequest.go
share.go
shareDetail.go
sharePrivate.go
sharePublic.go
sparkData.go
startup.go
unaccess.go
unshare.go
updateFrontend.go
updateShare.go
util.go
verify.go
verifyEmail.go
version.go
docker
docs
drives
endpoints
environment
etc
nfpm
rest_client_zrok
rest_model_zrok
rest_server_zrok
sdk
specs
tui
ui
util
website
.flake8
.gitattributes
.gitignore
.goreleaser-darwin.yml
.goreleaser-linux-amd64.yml
.goreleaser-linux-arm64.yml
.goreleaser-linux-armel.yml
.goreleaser-linux-armhf.yml
.goreleaser-release.yml
.goreleaser-windows.yml
.markdownlint.yaml
ACKNOWLEDGEMENTS.md
BUILD.md
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
RELEASING.md
SECURITY.md
go.mod
go.sum
openapitools.json
53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package limits
|
|
|
|
import (
|
|
"github.com/jmoiron/sqlx"
|
|
"github.com/openziti/zrok/controller/store"
|
|
"github.com/openziti/zrok/controller/zrokEdgeSdk"
|
|
"github.com/openziti/zrok/sdk/golang/sdk"
|
|
"github.com/pkg/errors"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type limitAction struct {
|
|
str *store.Store
|
|
zCfg *zrokEdgeSdk.Config
|
|
}
|
|
|
|
func newLimitAction(str *store.Store, zCfg *zrokEdgeSdk.Config) *limitAction {
|
|
return &limitAction{str, zCfg}
|
|
}
|
|
|
|
func (a *limitAction) HandleAccount(acct *store.Account, _, _ int64, bwc store.BandwidthClass, ul *userLimits, trx *sqlx.Tx) error {
|
|
envs, err := a.str.FindEnvironmentsForAccount(acct.Id, trx)
|
|
if err != nil {
|
|
return errors.Wrapf(err, "error finding environments for account '%v'", acct.Email)
|
|
}
|
|
|
|
edge, err := zrokEdgeSdk.Client(a.zCfg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ignoreBackends := ul.ignoreBackends(bwc)
|
|
for _, env := range envs {
|
|
shrs, err := a.str.FindSharesForEnvironment(env.Id, trx)
|
|
if err != nil {
|
|
return errors.Wrapf(err, "error finding shares for environment '%v'", env.ZId)
|
|
}
|
|
|
|
for _, shr := range shrs {
|
|
if _, ignore := ignoreBackends[sdk.BackendMode(shr.BackendMode)]; !ignore {
|
|
if err := zrokEdgeSdk.DeleteServicePoliciesDial(env.ZId, shr.Token, edge); err != nil {
|
|
return errors.Wrapf(err, "error deleting dial service policy for '%v'", shr.Token)
|
|
}
|
|
logrus.Infof("removed dial service policy for share '%v' of environment '%v'", shr.Token, env.ZId)
|
|
} else {
|
|
logrus.Debugf("ignoring share '%v' for '%v' with backend mode '%v'", shr.Token, acct.Email, shr.BackendMode)
|
|
}
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|