Skip to content
This repository was archived by the owner on Jun 21, 2022. It is now read-only.

PMM-10078 Extract portal client, add dev env variables for portal address overwriting #1136

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
PMM-10078 Refactoring
  • Loading branch information
artemgavrilov committed May 31, 2022
commit 70570cf2dbc55ad7aa7c2ed602f33f02e5a52d47
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@ import (
"github.com/percona/pmm-managed/utils/clean"
"github.com/percona/pmm-managed/utils/interceptors"
"github.com/percona/pmm-managed/utils/logger"
"github.com/percona/pmm-managed/utils/portal"
platformClient "github.com/percona/pmm-managed/utils/platform"
)

const (
@@ -131,7 +131,7 @@ func addLogsHandler(mux *http.ServeMux, logs *supervisord.Logs) {
type gRPCServerDeps struct {
db *reform.DB
vmdb *victoriametrics.Service
portalClient *portal.Client
portalClient *platformClient.Client
server *server.Server
agentsRegistry *agents.Registry
handler *agents.Handler
@@ -691,7 +691,7 @@ func main() {
logs := supervisord.NewLogs(version.FullInfo(), pmmUpdateCheck)
supervisord := supervisord.New(*supervisordConfigDirF, pmmUpdateCheck, vmParams)

portalClient, err := portal.NewClient(db)
portalClient, err := platformClient.NewClient(db)
if err != nil {
l.Fatalf("Could not create Percona Portal client: %s", err)
}
6 changes: 3 additions & 3 deletions services/checks/checks.go
Original file line number Diff line number Diff line change
@@ -47,7 +47,7 @@ import (

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/services"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
)

const (
@@ -86,7 +86,7 @@ var (

// Service is responsible for interactions with Percona Check service.
type Service struct {
portalClient *portal.Client
portalClient *platform.Client
agentsRegistry agentsRegistry
alertmanagerService alertmanagerService
db *reform.DB
@@ -111,7 +111,7 @@ type Service struct {
}

// New returns Service with given PMM version.
func New(db *reform.DB, portalClient *portal.Client, agentsRegistry agentsRegistry, alertmanagerService alertmanagerService, VMAddress string) (*Service, error) {
func New(db *reform.DB, portalClient *platform.Client, agentsRegistry agentsRegistry, alertmanagerService alertmanagerService, VMAddress string) (*Service, error) {
l := logrus.WithField("component", "checks")

resendInterval := defaultResendInterval
24 changes: 12 additions & 12 deletions services/checks/checks_test.go
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@ import (

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/services"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
"github.com/percona/pmm-managed/utils/testdb"
)

@@ -58,7 +58,7 @@ func TestDownloadChecks(t *testing.T) {

sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)
portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -150,7 +150,7 @@ func TestCollectChecks(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -193,7 +193,7 @@ func TestDisableChecks(t *testing.T) {
t.Run("normal", func(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)
portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -223,7 +223,7 @@ func TestDisableChecks(t *testing.T) {
t.Run("disable same check twice", func(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)
portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -256,7 +256,7 @@ func TestDisableChecks(t *testing.T) {
t.Run("disable unknown check", func(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)
portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -281,7 +281,7 @@ func TestEnableChecks(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -318,7 +318,7 @@ func TestChangeInterval(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -394,7 +394,7 @@ func TestGetSecurityCheckResults(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -429,7 +429,7 @@ func TestStartChecks(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -612,7 +612,7 @@ func setup(t *testing.T, db *reform.DB, serviceName, nodeID, pmmAgentVersion str
func TestFindTargets(t *testing.T) {
sqlDB := testdb.Open(t, models.SetupFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))
portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -702,7 +702,7 @@ func TestGetFailedChecks(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, nil)

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
4 changes: 2 additions & 2 deletions services/management/ia/alerts_service_test.go
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ import (
"gopkg.in/reform.v1/dialects/postgresql"

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
"github.com/percona/pmm-managed/utils/testdb"
)

@@ -228,7 +228,7 @@ func TestListAlerts(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
4 changes: 2 additions & 2 deletions services/management/ia/rules_service_test.go
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ import (

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/utils/dir"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
"github.com/percona/pmm-managed/utils/testdb"
"github.com/percona/pmm-managed/utils/tests"
)
@@ -47,7 +47,7 @@ func TestCreateAlertRule(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
6 changes: 3 additions & 3 deletions services/management/ia/templates_service.go
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ import (
"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/utils/dir"
"github.com/percona/pmm-managed/utils/envvars"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
)

const (
@@ -69,7 +69,7 @@ type templateInfo struct {
type TemplatesService struct {
db *reform.DB
l *logrus.Entry
portalClient *portal.Client
portalClient *platform.Client
userTemplatesPath string

host string
@@ -82,7 +82,7 @@ type TemplatesService struct {
}

// NewTemplatesService creates a new TemplatesService.
func NewTemplatesService(db *reform.DB, portalClient *portal.Client) (*TemplatesService, error) {
func NewTemplatesService(db *reform.DB, portalClient *platform.Client) (*TemplatesService, error) {
l := logrus.WithField("component", "management/ia/templates")

err := dir.CreateDataDir(templatesDir, "pmm", "pmm", dirPerm)
8 changes: 4 additions & 4 deletions services/management/ia/templates_service_test.go
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ import (
"gopkg.in/reform.v1/dialects/postgresql"

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
"github.com/percona/pmm-managed/utils/testdb"
)

@@ -52,7 +52,7 @@ func TestCollect(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -121,7 +121,7 @@ func TestDownloadTemplates(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
@@ -172,7 +172,7 @@ func TestTemplateValidation(t *testing.T) {
sqlDB := testdb.Open(t, models.SkipFixtures, nil)
db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

portalClient, err := portal.NewClient(db)
portalClient, err := platform.NewClient(db)
require.NoError(t, err)
portalClient.SetAddress(devPortalAddress)
portalClient.SetPublicKeys([]string{devPortalPublicKey})
22 changes: 11 additions & 11 deletions services/platform/platform.go
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ import (

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/services/grafana"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
)

const rollbackFailed = "Failed to rollback:"
@@ -44,7 +44,7 @@ var errGetSSODetailsFailed = status.Error(codes.Aborted, "Failed to fetch SSO de
type Service struct {
db *reform.DB
l *logrus.Entry
portalClient *portal.Client
client *platform.Client
grafanaClient grafanaClient
supervisord supervisordService
checksService checksService
@@ -53,12 +53,12 @@ type Service struct {
}

// New returns platform Service.
func New(portalClient *portal.Client, db *reform.DB, supervisord supervisordService, checksService checksService, grafanaClient grafanaClient) (*Service, error) {
func New(client *platform.Client, db *reform.DB, supervisord supervisordService, checksService checksService, grafanaClient grafanaClient) (*Service, error) {
l := logrus.WithField("component", "platform")

s := Service{
db: db,
portalClient: portalClient,
client: client,
l: l,
supervisord: supervisord,
checksService: checksService,
@@ -87,7 +87,7 @@ func (s *Service) Connect(ctx context.Context, req *platformpb.ConnectRequest) (
pmmServerURL := fmt.Sprintf("https://%s/graph", settings.PMMPublicAddress)
pmmServerOAuthCallbackURL := fmt.Sprintf("%s/login/generic_oauth", pmmServerURL)

resp, err := s.portalClient.Connect(ctx, req.PersonalAccessToken, settings.PMMServerID, req.ServerName, pmmServerURL, pmmServerOAuthCallbackURL)
resp, err := s.client.Connect(ctx, req.PersonalAccessToken, settings.PMMServerID, req.ServerName, pmmServerURL, pmmServerOAuthCallbackURL)
if err != nil {
return nil, err
}
@@ -149,7 +149,7 @@ func (s *Service) Disconnect(ctx context.Context, req *platformpb.DisconnectRequ
return nil, err
}

err = s.portalClient.Disconnect(ctx, userAccessToken, settings.PMMServerID)
err = s.client.Disconnect(ctx, userAccessToken, settings.PMMServerID)
needRecover := err != nil && !req.Force

if needRecover {
@@ -217,7 +217,7 @@ func (s *Service) SearchOrganizationTickets(ctx context.Context, req *platformpb
return nil, errGetSSODetailsFailed
}

resp, err := s.portalClient.SearchOrgTickets(ctx, accessToken, ssoDetails.OrganizationID)
resp, err := s.client.SearchOrgTickets(ctx, accessToken, ssoDetails.OrganizationID)
if err != nil {
return nil, err
}
@@ -235,7 +235,7 @@ func (s *Service) SearchOrganizationTickets(ctx context.Context, req *platformpb
return response, nil
}

func convertTicket(t *portal.TicketResponse) (*platformpb.OrganizationTicket, error) {
func convertTicket(t *platform.TicketResponse) (*platformpb.OrganizationTicket, error) {
createTime, err := time.Parse(time.RFC3339, t.CreateTime)
if err != nil {
return nil, err
@@ -271,7 +271,7 @@ func (s *Service) SearchOrganizationEntitlements(ctx context.Context, req *platf
return nil, errGetSSODetailsFailed
}

resp, err := s.portalClient.SearchOrgEntitlements(ctx, accessToken, ssoDetails.OrganizationID)
resp, err := s.client.SearchOrgEntitlements(ctx, accessToken, ssoDetails.OrganizationID)
if err != nil {
return nil, err
}
@@ -289,7 +289,7 @@ func (s *Service) SearchOrganizationEntitlements(ctx context.Context, req *platf
return response, nil
}

func convertEntitlement(ent *portal.EntitlementResponse) (*platformpb.OrganizationEntitlement, error) {
func convertEntitlement(ent *platform.EntitlementResponse) (*platformpb.OrganizationEntitlement, error) {
startDate, err := time.Parse(time.RFC3339, ent.StartDate)
if err != nil {
return nil, err
@@ -336,7 +336,7 @@ func (s *Service) GetContactInformation(ctx context.Context, req *platformpb.Get
return nil, status.Error(codes.Aborted, "PMM server is not connected to Portal")
}

resp, err := s.portalClient.GetContactInformation(ctx, accessToken, ssoDetails.OrganizationID)
resp, err := s.client.GetContactInformation(ctx, accessToken, ssoDetails.OrganizationID)

response := &platformpb.GetContactInformationResponse{
CustomerSuccess: &platformpb.GetContactInformationResponse_CustomerSuccess{
6 changes: 3 additions & 3 deletions services/telemetry/telemetry.go
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ import (
"gopkg.in/reform.v1"

"github.com/percona/pmm-managed/models"
"github.com/percona/pmm-managed/utils/portal"
"github.com/percona/pmm-managed/utils/platform"
)

const (
@@ -49,7 +49,7 @@ const (
type Service struct {
db *reform.DB
l *logrus.Entry
portalClient *portal.Client
portalClient *platform.Client
start time.Time
config ServiceConfig
dsRegistry DataSourceLocator
@@ -70,7 +70,7 @@ var (
)

// NewService creates a new service.
func NewService(db *reform.DB, portalClient *portal.Client, pmmVersion string, config ServiceConfig) (*Service, error) {
func NewService(db *reform.DB, portalClient *platform.Client, pmmVersion string, config ServiceConfig) (*Service, error) {
if config.SaasHostname == "" {
return nil, errors.New("empty host")
}
Loading