Skip to content

Commit 82a6afc

Browse files
committed
PMM-12913 migrate /v1/management/Service
1 parent 8c5b6ff commit 82a6afc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+13428
-13364
lines changed

.golangci.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ linters-settings:
7676
xml: camel
7777

7878
unused:
79-
check-exported: false #TODO: set true for agent
79+
exported-is-used: false #TODO: set true for agent
8080

8181
unparam:
8282
check-exported: true
@@ -126,12 +126,12 @@ linters:
126126

127127
run:
128128
timeout: 5m
129-
skip-dirs:
130-
- agent/agents/mongodb/internal/
131-
- qan-api2/migrations/
132129

133130
issues:
134131
exclude-use-default: false
132+
exclude-dirs:
133+
- agent/agents/mongodb/internal/
134+
- qan-api2/migrations/
135135
exclude:
136136
# gas: Duplicated errcheck checks
137137
- "G104: Errors unhandled"
@@ -149,6 +149,7 @@ issues:
149149
- forcetypeassert # for tests' brevity sake
150150
- funlen # tests may be long
151151
- gocognit # triggered by subtests
152+
- goconst # not critical
152153
- gomnd # tests are full of magic numbers
153154
- ireturn # we have exceptions, so need to silence them in tests
154155
- lll # tests often require long lines

admin/commands/management/add_external.go

+22-20
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Group : {{ .Service.Group }}
4242
`)
4343

4444
type addExternalResult struct {
45-
Service *mservice.AddExternalOKBodyService `json:"service"`
45+
Service *mservice.AddServiceOKBodyExternalService `json:"service"`
4646
}
4747

4848
func (res *addExternalResult) Result() {}
@@ -120,32 +120,34 @@ func (cmd *AddExternalCommand) RunCmd() (commands.Result, error) {
120120
}
121121
}
122122

123-
params := &mservice.AddExternalParams{
124-
Body: mservice.AddExternalBody{
125-
RunsOnNodeID: cmd.RunsOnNodeID,
126-
ServiceName: cmd.ServiceName,
127-
Username: cmd.Username,
128-
Password: cmd.Password,
129-
Scheme: cmd.Scheme,
130-
MetricsPath: cmd.MetricsPath,
131-
ListenPort: int64(cmd.ListenPort),
132-
NodeID: cmd.NodeID,
133-
Environment: cmd.Environment,
134-
Cluster: cmd.Cluster,
135-
ReplicationSet: cmd.ReplicationSet,
136-
CustomLabels: customLabels,
137-
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
138-
Group: cmd.Group,
139-
SkipConnectionCheck: cmd.SkipConnectionCheck,
123+
params := &mservice.AddServiceParams{
124+
Body: mservice.AddServiceBody{
125+
External: &mservice.AddServiceParamsBodyExternal{
126+
RunsOnNodeID: cmd.RunsOnNodeID,
127+
ServiceName: cmd.ServiceName,
128+
Username: cmd.Username,
129+
Password: cmd.Password,
130+
Scheme: cmd.Scheme,
131+
MetricsPath: cmd.MetricsPath,
132+
ListenPort: int64(cmd.ListenPort),
133+
NodeID: cmd.NodeID,
134+
Environment: cmd.Environment,
135+
Cluster: cmd.Cluster,
136+
ReplicationSet: cmd.ReplicationSet,
137+
CustomLabels: customLabels,
138+
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
139+
Group: cmd.Group,
140+
SkipConnectionCheck: cmd.SkipConnectionCheck,
141+
},
140142
},
141143
Context: commands.Ctx,
142144
}
143-
resp, err := client.Default.ManagementService.AddExternal(params)
145+
resp, err := client.Default.ManagementService.AddService(params)
144146
if err != nil {
145147
return nil, err
146148
}
147149

148150
return &addExternalResult{
149-
Service: resp.Payload.Service,
151+
Service: resp.Payload.External.Service,
150152
}, nil
151153
}

admin/commands/management/add_external_serverless.go

+32-30
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Group : {{ .Service.Group }}
3737
`)
3838

3939
type addExternalServerlessResult struct {
40-
Service *mservice.AddExternalOKBodyService `json:"service"`
40+
Service *mservice.AddServiceOKBodyExternalService `json:"service"`
4141
}
4242

4343
func (res *addExternalServerlessResult) Result() {}
@@ -125,44 +125,46 @@ func (cmd *AddExternalServerlessCommand) RunCmd() (commands.Result, error) {
125125
}
126126
}
127127

128-
params := &mservice.AddExternalParams{
129-
Body: mservice.AddExternalBody{
130-
AddNode: &mservice.AddExternalParamsBodyAddNode{
131-
NodeType: pointer.ToString(mservice.AddExternalParamsBodyAddNodeNodeTypeNODETYPEREMOTENODE),
132-
NodeName: serviceName,
133-
MachineID: cmd.MachineID,
134-
Distro: cmd.Distro,
135-
ContainerID: cmd.ContainerID,
136-
ContainerName: cmd.ContainerName,
137-
NodeModel: cmd.NodeModel,
138-
Region: cmd.Region,
139-
Az: cmd.Az,
140-
CustomLabels: customLabels,
128+
params := &mservice.AddServiceParams{
129+
Body: mservice.AddServiceBody{
130+
External: &mservice.AddServiceParamsBodyExternal{
131+
AddNode: &mservice.AddServiceParamsBodyExternalAddNode{
132+
NodeType: pointer.ToString(mservice.AddServiceParamsBodyExternalAddNodeNodeTypeNODETYPEREMOTENODE),
133+
NodeName: serviceName,
134+
MachineID: cmd.MachineID,
135+
Distro: cmd.Distro,
136+
ContainerID: cmd.ContainerID,
137+
ContainerName: cmd.ContainerName,
138+
NodeModel: cmd.NodeModel,
139+
Region: cmd.Region,
140+
Az: cmd.Az,
141+
CustomLabels: customLabels,
142+
},
143+
Address: address,
144+
ServiceName: serviceName,
145+
Username: cmd.Username,
146+
Password: cmd.Password,
147+
Scheme: scheme,
148+
MetricsPath: metricsPath,
149+
ListenPort: int64(port),
150+
Environment: cmd.Environment,
151+
Cluster: cmd.Cluster,
152+
ReplicationSet: cmd.ReplicationSet,
153+
CustomLabels: customLabels,
154+
MetricsMode: pointer.ToString(mservice.AddServiceParamsBodyExternalMetricsModeMETRICSMODEPULL),
155+
Group: cmd.Group,
156+
SkipConnectionCheck: cmd.SkipConnectionCheck,
141157
},
142-
Address: address,
143-
ServiceName: serviceName,
144-
Username: cmd.Username,
145-
Password: cmd.Password,
146-
Scheme: scheme,
147-
MetricsPath: metricsPath,
148-
ListenPort: int64(port),
149-
Environment: cmd.Environment,
150-
Cluster: cmd.Cluster,
151-
ReplicationSet: cmd.ReplicationSet,
152-
CustomLabels: customLabels,
153-
MetricsMode: pointer.ToString(mservice.AddExternalBodyMetricsModeMETRICSMODEPULL),
154-
Group: cmd.Group,
155-
SkipConnectionCheck: cmd.SkipConnectionCheck,
156158
},
157159
Context: commands.Ctx,
158160
}
159-
resp, err := client.Default.ManagementService.AddExternal(params)
161+
resp, err := client.Default.ManagementService.AddService(params)
160162
if err != nil {
161163
return nil, err
162164
}
163165

164166
return &addExternalServerlessResult{
165-
Service: resp.Payload.Service,
167+
Service: resp.Payload.External.Service,
166168
}, nil
167169
}
168170

admin/commands/management/add_external_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
func TestAddExternal(t *testing.T) {
2727
t.Run("Basic", func(t *testing.T) {
2828
res := &addExternalResult{
29-
Service: &mservice.AddExternalOKBodyService{
29+
Service: &mservice.AddServiceOKBodyExternalService{
3030
ServiceID: "/service_id/1",
3131
ServiceName: "myhost-redis",
3232
Group: "redis",

admin/commands/management/add_mysql.go

+44-42
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ Service name: {{ .Service.ServiceName }}
4747
`)
4848

4949
type addMySQLResult struct {
50-
Service *mservice.AddMySQLOKBodyService `json:"service"`
51-
MysqldExporter *mservice.AddMySQLOKBodyMysqldExporter `json:"mysqld_exporter,omitempty"`
52-
TableCount int32 `json:"table_count,omitempty"`
50+
Service *mservice.AddServiceOKBodyMysqlService `json:"service"`
51+
MysqldExporter *mservice.AddServiceOKBodyMysqlMysqldExporter `json:"mysqld_exporter,omitempty"`
52+
TableCount int32 `json:"table_count,omitempty"`
5353
}
5454

5555
func (res *addMySQLResult) Result() {}
@@ -208,52 +208,54 @@ func (cmd *AddMySQLCommand) RunCmd() (commands.Result, error) {
208208
tablestatsGroupTableLimit = -1
209209
}
210210

211-
params := &mservice.AddMySQLParams{
212-
Body: mservice.AddMySQLBody{
213-
NodeID: cmd.NodeID,
214-
ServiceName: serviceName,
215-
Address: host,
216-
Socket: socket,
217-
Port: int64(port),
218-
ExposeExporter: cmd.ExposeExporter,
219-
PMMAgentID: cmd.PMMAgentID,
220-
Environment: cmd.Environment,
221-
Cluster: cmd.Cluster,
222-
ReplicationSet: cmd.ReplicationSet,
223-
Username: cmd.Username,
224-
Password: cmd.Password,
225-
AgentPassword: cmd.AgentPassword,
226-
CustomLabels: customLabels,
227-
228-
QANMysqlSlowlog: cmd.QuerySource == MysqlQuerySourceSlowLog,
229-
QANMysqlPerfschema: cmd.QuerySource == MysqlQuerySourcePerfSchema,
230-
231-
SkipConnectionCheck: cmd.SkipConnectionCheck,
232-
DisableCommentsParsing: disableCommentsParsing,
233-
MaxQueryLength: cmd.MaxQueryLength,
234-
DisableQueryExamples: cmd.DisableQueryExamples,
235-
236-
MaxSlowlogFileSize: strconv.FormatInt(int64(cmd.MaxSlowlogFileSize), 10),
237-
TLS: cmd.TLS,
238-
TLSSkipVerify: cmd.TLSSkipVerify,
239-
TLSCa: tlsCa,
240-
TLSCert: tlsCert,
241-
TLSKey: tlsKey,
242-
TablestatsGroupTableLimit: tablestatsGroupTableLimit,
243-
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
244-
DisableCollectors: commands.ParseDisableCollectors(cmd.DisableCollectors),
245-
LogLevel: &cmd.AddLogLevel,
211+
params := &mservice.AddServiceParams{
212+
Body: mservice.AddServiceBody{
213+
Mysql: &mservice.AddServiceParamsBodyMysql{
214+
NodeID: cmd.NodeID,
215+
ServiceName: serviceName,
216+
Address: host,
217+
Socket: socket,
218+
Port: int64(port),
219+
ExposeExporter: cmd.ExposeExporter,
220+
PMMAgentID: cmd.PMMAgentID,
221+
Environment: cmd.Environment,
222+
Cluster: cmd.Cluster,
223+
ReplicationSet: cmd.ReplicationSet,
224+
Username: cmd.Username,
225+
Password: cmd.Password,
226+
AgentPassword: cmd.AgentPassword,
227+
CustomLabels: customLabels,
228+
229+
QANMysqlSlowlog: cmd.QuerySource == MysqlQuerySourceSlowLog,
230+
QANMysqlPerfschema: cmd.QuerySource == MysqlQuerySourcePerfSchema,
231+
232+
SkipConnectionCheck: cmd.SkipConnectionCheck,
233+
DisableCommentsParsing: disableCommentsParsing,
234+
MaxQueryLength: cmd.MaxQueryLength,
235+
DisableQueryExamples: cmd.DisableQueryExamples,
236+
237+
MaxSlowlogFileSize: strconv.FormatInt(int64(cmd.MaxSlowlogFileSize), 10),
238+
TLS: cmd.TLS,
239+
TLSSkipVerify: cmd.TLSSkipVerify,
240+
TLSCa: tlsCa,
241+
TLSCert: tlsCert,
242+
TLSKey: tlsKey,
243+
TablestatsGroupTableLimit: tablestatsGroupTableLimit,
244+
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
245+
DisableCollectors: commands.ParseDisableCollectors(cmd.DisableCollectors),
246+
LogLevel: &cmd.AddLogLevel,
247+
},
246248
},
247249
Context: commands.Ctx,
248250
}
249-
resp, err := client.Default.ManagementService.AddMySQL(params)
251+
resp, err := client.Default.ManagementService.AddService(params)
250252
if err != nil {
251253
return nil, err
252254
}
253255

254256
return &addMySQLResult{
255-
Service: resp.Payload.Service,
256-
MysqldExporter: resp.Payload.MysqldExporter,
257-
TableCount: resp.Payload.TableCount,
257+
Service: resp.Payload.Mysql.Service,
258+
MysqldExporter: resp.Payload.Mysql.MysqldExporter,
259+
TableCount: resp.Payload.Mysql.TableCount,
258260
}, nil
259261
}

admin/commands/management/add_mysql_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ import (
2626
func TestAddMySQL(t *testing.T) {
2727
t.Run("TablestatEnabled", func(t *testing.T) {
2828
res := &addMySQLResult{
29-
Service: &mservice.AddMySQLOKBodyService{
29+
Service: &mservice.AddServiceOKBodyMysqlService{
3030
ServiceID: "/service_id/1",
3131
ServiceName: "mysql-1",
3232
},
33-
MysqldExporter: &mservice.AddMySQLOKBodyMysqldExporter{
33+
MysqldExporter: &mservice.AddServiceOKBodyMysqlMysqldExporter{
3434
TablestatsGroupTableLimit: 1000,
3535
TablestatsGroupDisabled: false,
3636
},
@@ -48,11 +48,11 @@ Table statistics collection enabled (the limit is 1000, the actual table count i
4848

4949
t.Run("TablestatEnabledNoLimit", func(t *testing.T) {
5050
res := &addMySQLResult{
51-
Service: &mservice.AddMySQLOKBodyService{
51+
Service: &mservice.AddServiceOKBodyMysqlService{
5252
ServiceID: "/service_id/1",
5353
ServiceName: "mysql-1",
5454
},
55-
MysqldExporter: &mservice.AddMySQLOKBodyMysqldExporter{
55+
MysqldExporter: &mservice.AddServiceOKBodyMysqlMysqldExporter{
5656
TablestatsGroupTableLimit: 0,
5757
TablestatsGroupDisabled: false,
5858
},
@@ -70,11 +70,11 @@ Table statistics collection enabled (the table count limit is not set).
7070

7171
t.Run("TablestatEnabledUnknown", func(t *testing.T) {
7272
res := &addMySQLResult{
73-
Service: &mservice.AddMySQLOKBodyService{
73+
Service: &mservice.AddServiceOKBodyMysqlService{
7474
ServiceID: "/service_id/1",
7575
ServiceName: "mysql-1",
7676
},
77-
MysqldExporter: &mservice.AddMySQLOKBodyMysqldExporter{
77+
MysqldExporter: &mservice.AddServiceOKBodyMysqlMysqldExporter{
7878
TablestatsGroupTableLimit: 1000,
7979
TablestatsGroupDisabled: false,
8080
},
@@ -92,11 +92,11 @@ Table statistics collection enabled (the limit is 1000, the actual table count i
9292

9393
t.Run("TablestatDisabled", func(t *testing.T) {
9494
res := &addMySQLResult{
95-
Service: &mservice.AddMySQLOKBodyService{
95+
Service: &mservice.AddServiceOKBodyMysqlService{
9696
ServiceID: "/service_id/1",
9797
ServiceName: "mysql-1",
9898
},
99-
MysqldExporter: &mservice.AddMySQLOKBodyMysqldExporter{
99+
MysqldExporter: &mservice.AddServiceOKBodyMysqlMysqldExporter{
100100
TablestatsGroupTableLimit: 1000,
101101
TablestatsGroupDisabled: true,
102102
TLS: true,
@@ -118,11 +118,11 @@ Table statistics collection disabled (the limit is 1000, the actual table count
118118

119119
t.Run("TablestatDisabledAlways", func(t *testing.T) {
120120
res := &addMySQLResult{
121-
Service: &mservice.AddMySQLOKBodyService{
121+
Service: &mservice.AddServiceOKBodyMysqlService{
122122
ServiceID: "/service_id/1",
123123
ServiceName: "mysql-1",
124124
},
125-
MysqldExporter: &mservice.AddMySQLOKBodyMysqldExporter{
125+
MysqldExporter: &mservice.AddServiceOKBodyMysqlMysqldExporter{
126126
TablestatsGroupTableLimit: -1,
127127
TablestatsGroupDisabled: true,
128128
},

0 commit comments

Comments
 (0)