mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 02:10:45 -06:00
a21a232a8e
* Revert "chore: add replDB to team service (#91799)" This reverts commitc6ae2d7999
. * Revert "experiment: use read replica for Get and Find Dashboards (#91706)" This reverts commit54177ca619
. * Revert "QuotaService: refactor to use ReplDB for Get queries (#91333)" This reverts commit299c142f6a
. * Revert "refactor replCfg to look more like plugins/plugin config (#91142)" This reverts commitac0b4bb34d
. * Revert "chore (replstore): fix registration with multiple sql drivers, again (#90990)" This reverts commitdaedb358dd
. * Revert "Chore (sqlstore): add validation and testing for repl config (#90683)" This reverts commitaf19f039b6
. * Revert "ReplStore: Add support for round robin load balancing between multiple read replicas (#90530)" This reverts commit27b52b1507
. * Revert "DashboardStore: Use ReplDB and get dashboard quotas from the ReadReplica (#90235)" This reverts commit8a6107cd35
. * Revert "accesscontrol service read replica (#89963)" This reverts commit77a4869fca
. * Revert "Fix: add mapping for the new mysqlRepl driver (#89551)" This reverts commitab5a079bcc
. * Revert "fix: sql instrumentation dual registration error (#89508)" This reverts commitd988f5c3b0
. * Revert "Experimental Feature Toggle: databaseReadReplica (#89232)" This reverts commit50244ed4a1
.
94 lines
3.4 KiB
Go
94 lines
3.4 KiB
Go
package tests
|
|
|
|
import (
|
|
"context"
|
|
"crypto/tls"
|
|
"net/url"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/go-openapi/strfmt"
|
|
goapi "github.com/grafana/grafana-openapi-client-go/client"
|
|
"github.com/grafana/grafana/pkg/infra/db"
|
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
|
|
"github.com/grafana/grafana/pkg/services/org"
|
|
"github.com/grafana/grafana/pkg/services/org/orgimpl"
|
|
"github.com/grafana/grafana/pkg/services/quota/quotaimpl"
|
|
"github.com/grafana/grafana/pkg/services/supportbundles/supportbundlestest"
|
|
"github.com/grafana/grafana/pkg/services/user"
|
|
"github.com/grafana/grafana/pkg/services/user/userimpl"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func CreateUser(t *testing.T, db db.DB, cfg *setting.Cfg, cmd user.CreateUserCommand) int64 {
|
|
t.Helper()
|
|
|
|
cfg.AutoAssignOrg = true
|
|
cfg.AutoAssignOrgId = 1
|
|
|
|
quotaService := quotaimpl.ProvideService(db, cfg)
|
|
orgService, err := orgimpl.ProvideService(db, cfg, quotaService)
|
|
require.NoError(t, err)
|
|
usrSvc, err := userimpl.ProvideService(
|
|
db, orgService, cfg, nil, nil, tracing.InitializeTracerForTest(),
|
|
quotaService, supportbundlestest.NewFakeBundleService(),
|
|
)
|
|
require.NoError(t, err)
|
|
|
|
u, err := usrSvc.Create(context.Background(), &cmd)
|
|
require.NoError(t, err)
|
|
return u.ID
|
|
}
|
|
|
|
func GetClient(host string, username string, password string) *goapi.GrafanaHTTPAPI {
|
|
cfg := &goapi.TransportConfig{
|
|
// Host is the doman name or IP address of the host that serves the API.
|
|
Host: host,
|
|
// BasePath is the URL prefix for all API paths, relative to the host root.
|
|
BasePath: "/api",
|
|
// Schemes are the transfer protocols used by the API (http or https).
|
|
Schemes: []string{"http"},
|
|
// APIKey is an optional API key or service account token.
|
|
APIKey: os.Getenv("API_ACCESS_TOKEN"),
|
|
// BasicAuth is optional basic auth credentials.
|
|
BasicAuth: url.UserPassword(username, password),
|
|
// OrgID provides an optional organization ID.
|
|
// OrgID is only supported with BasicAuth since API keys are already org-scoped.
|
|
OrgID: 1,
|
|
// TLSConfig provides an optional configuration for a TLS client
|
|
TLSConfig: &tls.Config{},
|
|
// NumRetries contains the optional number of attempted retries
|
|
NumRetries: 3,
|
|
// RetryTimeout sets an optional time to wait before retrying a request
|
|
RetryTimeout: 0,
|
|
// RetryStatusCodes contains the optional list of status codes to retry
|
|
// Use "x" as a wildcard for a single digit (default: [429, 5xx])
|
|
RetryStatusCodes: []string{"420", "5xx"},
|
|
// HTTPHeaders contains an optional map of HTTP headers to add to each request
|
|
HTTPHeaders: map[string]string{},
|
|
}
|
|
return goapi.NewHTTPClientWithConfig(strfmt.Default, cfg)
|
|
}
|
|
|
|
func RemoveFolderPermission(t *testing.T, store resourcepermissions.Store, orgID int64, role org.RoleType, uid string) {
|
|
t.Helper()
|
|
|
|
// remove org role permissions from folder
|
|
_, _ = store.SetBuiltInResourcePermission(context.Background(), orgID, string(role), resourcepermissions.SetResourcePermissionCommand{
|
|
Resource: "folders",
|
|
ResourceID: uid,
|
|
ResourceAttribute: "uid",
|
|
}, nil)
|
|
|
|
// remove org role children permissions from folder
|
|
for _, c := range role.Children() {
|
|
_, _ = store.SetBuiltInResourcePermission(context.Background(), orgID, string(c), resourcepermissions.SetResourcePermissionCommand{
|
|
Resource: "folders",
|
|
ResourceID: uid,
|
|
ResourceAttribute: "uid",
|
|
}, nil)
|
|
}
|
|
}
|