@@ -19,6 +19,7 @@ package grpc
19
19
import (
20
20
"context"
21
21
"fmt"
22
+ "strings"
22
23
23
24
inventoryv1 "github.com/percona/pmm/api/inventory/v1"
24
25
"github.com/percona/pmm/managed/models"
@@ -211,33 +212,39 @@ func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRe
211
212
212
213
// ChangeAgent allows to change some Agent attributes.
213
214
func (s * agentsServer ) ChangeAgent (ctx context.Context , req * inventoryv1.ChangeAgentRequest ) (* inventoryv1.ChangeAgentResponse , error ) {
215
+ agentID := req .GetAgentId ()
216
+ // NOTE: we need to add a prefix since gRPC does not allow to pass a URL segment that begins with a slash.
217
+ // TODO: remove this once we drop prefixes in agent IDs.
218
+ if strings .HasPrefix (agentID , "/agent_id/" ) {
219
+ agentID = "/agent_id/" + agentID
220
+ }
214
221
switch req .Agent .(type ) {
215
222
case * inventoryv1.ChangeAgentRequest_NodeExporter :
216
- return s .s .ChangeNodeExporter (ctx , req . GetAgentId () , req .GetNodeExporter ())
223
+ return s .s .ChangeNodeExporter (ctx , agentID , req .GetNodeExporter ())
217
224
case * inventoryv1.ChangeAgentRequest_MysqldExporter :
218
- return s .s .ChangeMySQLdExporter (ctx , req . GetAgentId () , req .GetMysqldExporter ())
225
+ return s .s .ChangeMySQLdExporter (ctx , agentID , req .GetMysqldExporter ())
219
226
case * inventoryv1.ChangeAgentRequest_MongodbExporter :
220
- return s .s .ChangeMongoDBExporter (ctx , req . GetAgentId () , req .GetMongodbExporter ())
227
+ return s .s .ChangeMongoDBExporter (ctx , agentID , req .GetMongodbExporter ())
221
228
case * inventoryv1.ChangeAgentRequest_PostgresExporter :
222
- return s .s .ChangePostgresExporter (ctx , req . GetAgentId () , req .GetPostgresExporter ())
229
+ return s .s .ChangePostgresExporter (ctx , agentID , req .GetPostgresExporter ())
223
230
case * inventoryv1.ChangeAgentRequest_ProxysqlExporter :
224
- return s .s .ChangeProxySQLExporter (ctx , req . GetAgentId () , req .GetProxysqlExporter ())
231
+ return s .s .ChangeProxySQLExporter (ctx , agentID , req .GetProxysqlExporter ())
225
232
case * inventoryv1.ChangeAgentRequest_RdsExporter :
226
- return s .s .ChangeRDSExporter (ctx , req . GetAgentId () , req .GetRdsExporter ())
233
+ return s .s .ChangeRDSExporter (ctx , agentID , req .GetRdsExporter ())
227
234
case * inventoryv1.ChangeAgentRequest_ExternalExporter :
228
- return s .s .ChangeExternalExporter (ctx , req . GetAgentId () , req .GetExternalExporter ())
235
+ return s .s .ChangeExternalExporter (ctx , agentID , req .GetExternalExporter ())
229
236
case * inventoryv1.ChangeAgentRequest_AzureDatabaseExporter :
230
- return s .s .ChangeAzureDatabaseExporter (ctx , req . GetAgentId () , req .GetAzureDatabaseExporter ())
237
+ return s .s .ChangeAzureDatabaseExporter (ctx , agentID , req .GetAzureDatabaseExporter ())
231
238
case * inventoryv1.ChangeAgentRequest_QanMysqlPerfschemaAgent :
232
- return s .s .ChangeQANMySQLPerfSchemaAgent (ctx , req . GetAgentId () , req .GetQanMysqlPerfschemaAgent ())
239
+ return s .s .ChangeQANMySQLPerfSchemaAgent (ctx , agentID , req .GetQanMysqlPerfschemaAgent ())
233
240
case * inventoryv1.ChangeAgentRequest_QanMysqlSlowlogAgent :
234
- return s .s .ChangeQANMySQLSlowlogAgent (ctx , req . GetAgentId () , req .GetQanMysqlSlowlogAgent ())
241
+ return s .s .ChangeQANMySQLSlowlogAgent (ctx , agentID , req .GetQanMysqlSlowlogAgent ())
235
242
case * inventoryv1.ChangeAgentRequest_QanMongodbProfilerAgent :
236
- return s .s .ChangeQANMongoDBProfilerAgent (ctx , req . GetAgentId () , req .GetQanMongodbProfilerAgent ())
243
+ return s .s .ChangeQANMongoDBProfilerAgent (ctx , agentID , req .GetQanMongodbProfilerAgent ())
237
244
case * inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatementsAgent :
238
- return s .s .ChangeQANPostgreSQLPgStatementsAgent (ctx , req . GetAgentId () , req .GetQanPostgresqlPgstatementsAgent ())
245
+ return s .s .ChangeQANPostgreSQLPgStatementsAgent (ctx , agentID , req .GetQanPostgresqlPgstatementsAgent ())
239
246
case * inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent :
240
- return s .s .ChangeQANPostgreSQLPgStatMonitorAgent (ctx , req . GetAgentId () , req .GetQanPostgresqlPgstatmonitorAgent ())
247
+ return s .s .ChangeQANPostgreSQLPgStatMonitorAgent (ctx , agentID , req .GetQanPostgresqlPgstatmonitorAgent ())
241
248
default :
242
249
return nil , fmt .Errorf ("invalid request %v" , req .Agent )
243
250
}
0 commit comments