@@ -35,7 +35,7 @@ import (
35
35
"github.com/percona/pmm-managed/utils/stringset"
36
36
)
37
37
38
- type componentsService struct {
38
+ type ComponentsService struct {
39
39
l * logrus.Entry
40
40
db * reform.DB
41
41
dbaasClient dbaasClient
@@ -51,9 +51,9 @@ type installedComponentsVersion struct {
51
51
}
52
52
53
53
// NewComponentsService creates Components Service.
54
- func NewComponentsService (db * reform.DB , dbaasClient dbaasClient , versionServiceClient versionService ) dbaasv1beta1. ComponentsServer {
54
+ func NewComponentsService (db * reform.DB , dbaasClient dbaasClient , versionServiceClient versionService ) * ComponentsService {
55
55
l := logrus .WithField ("component" , "components_service" )
56
- return & componentsService {
56
+ return & ComponentsService {
57
57
l : l ,
58
58
db : db ,
59
59
dbaasClient : dbaasClient ,
@@ -62,7 +62,7 @@ func NewComponentsService(db *reform.DB, dbaasClient dbaasClient, versionService
62
62
}
63
63
64
64
// Enabled returns if service is enabled and can be used.
65
- func (c * componentsService ) Enabled () bool {
65
+ func (c * ComponentsService ) Enabled () bool {
66
66
settings , err := models .GetSettings (c .db )
67
67
if err != nil {
68
68
c .l .WithError (err ).Error ("can't get settings" )
@@ -71,7 +71,7 @@ func (c *componentsService) Enabled() bool {
71
71
return settings .DBaaS .Enabled
72
72
}
73
73
74
- func (c componentsService ) GetPSMDBComponents (ctx context.Context , req * dbaasv1beta1.GetPSMDBComponentsRequest ) (* dbaasv1beta1.GetPSMDBComponentsResponse , error ) {
74
+ func (c ComponentsService ) GetPSMDBComponents (ctx context.Context , req * dbaasv1beta1.GetPSMDBComponentsRequest ) (* dbaasv1beta1.GetPSMDBComponentsResponse , error ) {
75
75
var kubernetesCluster * models.KubernetesCluster
76
76
params := componentsParams {
77
77
product : psmdbOperator ,
@@ -99,7 +99,7 @@ func (c componentsService) GetPSMDBComponents(ctx context.Context, req *dbaasv1b
99
99
return & dbaasv1beta1.GetPSMDBComponentsResponse {Versions : versions }, nil
100
100
}
101
101
102
- func (c componentsService ) GetPXCComponents (ctx context.Context , req * dbaasv1beta1.GetPXCComponentsRequest ) (* dbaasv1beta1.GetPXCComponentsResponse , error ) {
102
+ func (c ComponentsService ) GetPXCComponents (ctx context.Context , req * dbaasv1beta1.GetPXCComponentsRequest ) (* dbaasv1beta1.GetPXCComponentsResponse , error ) {
103
103
var kubernetesCluster * models.KubernetesCluster
104
104
params := componentsParams {
105
105
product : pxcOperator ,
@@ -127,7 +127,7 @@ func (c componentsService) GetPXCComponents(ctx context.Context, req *dbaasv1bet
127
127
return & dbaasv1beta1.GetPXCComponentsResponse {Versions : versions }, nil
128
128
}
129
129
130
- func (c componentsService ) ChangePSMDBComponents (ctx context.Context , req * dbaasv1beta1.ChangePSMDBComponentsRequest ) (* dbaasv1beta1.ChangePSMDBComponentsResponse , error ) {
130
+ func (c ComponentsService ) ChangePSMDBComponents (ctx context.Context , req * dbaasv1beta1.ChangePSMDBComponentsRequest ) (* dbaasv1beta1.ChangePSMDBComponentsResponse , error ) {
131
131
err := c .db .InTransaction (func (tx * reform.TX ) error {
132
132
kubernetesCluster , e := models .FindKubernetesClusterByName (tx .Querier , req .KubernetesClusterName )
133
133
if e != nil {
@@ -156,7 +156,7 @@ func (c componentsService) ChangePSMDBComponents(ctx context.Context, req *dbaas
156
156
return & dbaasv1beta1.ChangePSMDBComponentsResponse {}, nil
157
157
}
158
158
159
- func (c componentsService ) ChangePXCComponents (ctx context.Context , req * dbaasv1beta1.ChangePXCComponentsRequest ) (* dbaasv1beta1.ChangePXCComponentsResponse , error ) {
159
+ func (c ComponentsService ) ChangePXCComponents (ctx context.Context , req * dbaasv1beta1.ChangePXCComponentsRequest ) (* dbaasv1beta1.ChangePXCComponentsResponse , error ) {
160
160
err := c .db .InTransaction (func (tx * reform.TX ) error {
161
161
kubernetesCluster , e := models .FindKubernetesClusterByName (tx .Querier , req .KubernetesClusterName )
162
162
if e != nil {
@@ -200,7 +200,7 @@ func (c componentsService) ChangePXCComponents(ctx context.Context, req *dbaasv1
200
200
return & dbaasv1beta1.ChangePXCComponentsResponse {}, nil
201
201
}
202
202
203
- func (c componentsService ) installedOperatorsVersion (ctx context.Context , wg * sync.WaitGroup , responseCh chan installedComponentsVersion , kuberentesCluster * models.KubernetesCluster ) {
203
+ func (c ComponentsService ) installedOperatorsVersion (ctx context.Context , wg * sync.WaitGroup , responseCh chan installedComponentsVersion , kuberentesCluster * models.KubernetesCluster ) {
204
204
defer wg .Done ()
205
205
resp , err := c .dbaasClient .CheckKubernetesClusterConnection (ctx , kuberentesCluster .KubeConfig )
206
206
if err != nil {
@@ -217,7 +217,7 @@ func (c componentsService) installedOperatorsVersion(ctx context.Context, wg *sy
217
217
}
218
218
}
219
219
220
- func (c componentsService ) CheckForOperatorUpdate (ctx context.Context , req * dbaasv1beta1.CheckForOperatorUpdateRequest ) (* dbaasv1beta1.CheckForOperatorUpdateResponse , error ) {
220
+ func (c ComponentsService ) CheckForOperatorUpdate (ctx context.Context , req * dbaasv1beta1.CheckForOperatorUpdateRequest ) (* dbaasv1beta1.CheckForOperatorUpdateResponse , error ) {
221
221
if pmmversion .PMMVersion == "" {
222
222
return nil , status .Error (codes .Internal , "failed to get current PMM version" )
223
223
}
@@ -293,7 +293,7 @@ func (c componentsService) CheckForOperatorUpdate(ctx context.Context, req *dbaa
293
293
return resp , nil
294
294
}
295
295
296
- func (c componentsService ) versions (ctx context.Context , params componentsParams , cluster * models.KubernetesCluster ) ([]* dbaasv1beta1.OperatorVersion , error ) {
296
+ func (c ComponentsService ) versions (ctx context.Context , params componentsParams , cluster * models.KubernetesCluster ) ([]* dbaasv1beta1.OperatorVersion , error ) {
297
297
components , err := c .versionServiceClient .Matrix (ctx , params )
298
298
if err != nil {
299
299
return nil , err
@@ -331,7 +331,7 @@ func (c componentsService) versions(ctx context.Context, params componentsParams
331
331
return versions , nil
332
332
}
333
333
334
- func (c componentsService ) matrix (m map [string ]componentVersion , minimalVersion * goversion.Version , kc * models.Component ) map [string ]* dbaasv1beta1.Component {
334
+ func (c ComponentsService ) matrix (m map [string ]componentVersion , minimalVersion * goversion.Version , kc * models.Component ) map [string ]* dbaasv1beta1.Component {
335
335
result := make (map [string ]* dbaasv1beta1.Component )
336
336
337
337
var lastVersion string
@@ -405,7 +405,7 @@ func setComponent(kc *models.Component, rc *dbaasv1beta1.ChangeComponent) (*mode
405
405
return kc , nil
406
406
}
407
407
408
- func (c componentsService ) InstallOperator (ctx context.Context , req * dbaasv1beta1.InstallOperatorRequest ) (* dbaasv1beta1.InstallOperatorResponse , error ) {
408
+ func (c ComponentsService ) InstallOperator (ctx context.Context , req * dbaasv1beta1.InstallOperatorRequest ) (* dbaasv1beta1.InstallOperatorResponse , error ) {
409
409
kubernetesCluster , err := models .FindKubernetesClusterByName (c .db .Querier , req .KubernetesClusterName )
410
410
if err != nil {
411
411
return nil , status .Error (codes .Internal , err .Error ())
@@ -458,3 +458,24 @@ func (c componentsService) InstallOperator(ctx context.Context, req *dbaasv1beta
458
458
459
459
return & dbaasv1beta1.InstallOperatorResponse {Status : dbaasv1beta1 .OperatorsStatus_OPERATORS_STATUS_OK }, nil
460
460
}
461
+
462
+ // DefaultComponent returns the component marked as default in the components list.
463
+ func DefaultComponent (m map [string ]* dbaasv1beta1.Component ) (* dbaasv1beta1.Component , error ) {
464
+ if len (m ) == 0 {
465
+ return nil , errNoVersionsFound
466
+ }
467
+
468
+ for _ , component := range m {
469
+ if component .Default {
470
+ return & dbaasv1beta1.Component {
471
+ ImagePath : component .ImagePath ,
472
+ ImageHash : component .ImageHash ,
473
+ Status : component .Status ,
474
+ Critical : component .Critical ,
475
+ },
476
+ nil
477
+ }
478
+ }
479
+
480
+ return nil , errors .New ("cannot find a default version in the components list" )
481
+ }
0 commit comments