From c8b2668a7531db52143f9d452fbfc2543ebdbcf2 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 28 Jun 2024 19:10:20 +0300 Subject: [PATCH] PMM-12857 fix API tests --- api-tests/alerting/alerting_test.go | 6 +- api-tests/helpers.go | 16 +++ .../agents_azure_database_exporter_test.go | 26 ++-- .../inventory/agents_mongodb_exporter_test.go | 2 +- .../inventory/agents_node_exporter_test.go | 2 +- .../agents_postgres_exporter_test.go | 2 +- .../agents_proxysql_exporter_test.go | 2 +- .../inventory/agents_rds_exporter_test.go | 2 +- api-tests/inventory/agents_test.go | 14 +- api-tests/management/external_test.go | 4 +- api-tests/management/haproxy_test.go | 4 +- api-tests/management/mongodb_test.go | 4 +- api-tests/management/mysql_test.go | 6 +- api-tests/management/postgresql_test.go | 4 +- api-tests/management/proxysql_test.go | 6 +- api-tests/management/rds_test.go | 4 +- api-tests/server/logs_test.go | 1 + api-tests/server/platform_test.go | 2 +- api-tests/server/settings_test.go | 12 +- managed/services/inventory/agents.go | 126 ++++++++++++++---- 20 files changed, 168 insertions(+), 77 deletions(-) diff --git a/api-tests/alerting/alerting_test.go b/api-tests/alerting/alerting_test.go index 300c5854ac..d974e9452e 100644 --- a/api-tests/alerting/alerting_test.go +++ b/api-tests/alerting/alerting_test.go @@ -556,14 +556,14 @@ func assertTemplate(t *testing.T, expectedTemplate alert.Template, listTemplates require.NotNil(t, param.Float) value, err := expectedParam.GetValueForFloat() require.NoError(t, err) - assert.Equal(t, value, param.Float.Default) //nolint:testifylint + assert.Equal(t, value, *param.Float.Default) //nolint:testifylint } if len(expectedParam.Range) != 0 { min, max, err := expectedParam.GetRangeForFloat() require.NoError(t, err) - assert.Equal(t, min, param.Float.Min) //nolint:testifylint - assert.Equal(t, max, param.Float.Max) //nolint:testifylint + assert.Equal(t, min, *param.Float.Min) //nolint:testifylint + assert.Equal(t, max, *param.Float.Max) //nolint:testifylint } assert.Nil(t, param.Bool) diff --git a/api-tests/helpers.go b/api-tests/helpers.go index 9b4dd493e3..29b783c5fb 100644 --- a/api-tests/helpers.go +++ b/api-tests/helpers.go @@ -203,6 +203,22 @@ func RemoveAgents(t TestingT, agentIDs ...string) { } } +// RemoveAgentsWithForce removes specified agents along with dependents. +func RemoveAgentsWithForce(t TestingT, agentIDs ...string) { + t.Helper() + + for _, agentID := range agentIDs { + params := &agents.RemoveAgentParams{ + AgentID: agentID, + Force: pointer.ToBool(true), + Context: context.Background(), + } + res, err := client.Default.AgentsService.RemoveAgent(params) + require.NoError(t, err) + assert.NotNil(t, res) + } +} + // AddGenericNode adds a generic node. func AddGenericNode(t TestingT, nodeName string) *nodes.AddNodeOKBodyGeneric { t.Helper() diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index ba2f1cab24..8050edb28c 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -212,7 +212,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.AzureDatabaseExporter.AgentID) } @@ -252,21 +252,17 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }) require.NoError(t, err) - assert.Equal(t, &agents.GetAgentOK{ - Payload: &agents.GetAgentOKBody{ - AzureDatabaseExporter: &agents.GetAgentOKBodyAzureDatabaseExporter{ - NodeID: nodeID, - AgentID: agentID, - PMMAgentID: pmmAgentID, - AzureDatabaseSubscriptionID: "azure_subscription_id", - CustomLabels: map[string]string{ - "custom_label_azure_database_exporter": "azure_database_exporter", - }, - Status: &AgentStatusUnknown, - LogLevel: pointer.ToString("LOG_LEVEL_UNSPECIFIED"), - }, + assert.Equal(t, &agents.GetAgentOKBodyAzureDatabaseExporter{ + NodeID: nodeID, + AgentID: agentID, + PMMAgentID: pmmAgentID, + AzureDatabaseSubscriptionID: "azure_subscription_id", + CustomLabels: map[string]string{ + "custom_label_azure_database_exporter": "azure_database_exporter", }, - }, getAgentRes) + Status: &AgentStatusUnknown, + LogLevel: pointer.ToString("LOG_LEVEL_UNSPECIFIED"), + }, getAgentRes.Payload.AzureDatabaseExporter) // Test change API. changeAzureDatabaseExporterOK, err := client.Default.AgentsService.ChangeAgent( diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index ae6cf1d443..c7e11f5714 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -280,7 +280,7 @@ func TestMongoDBExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.MongodbExporter.AgentID) } diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index 492700dfdb..973e4bc36e 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -156,7 +156,7 @@ func TestNodeExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-node-exporter-node\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-node-exporter-node not found.") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.NodeExporter.AgentID) } diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index d202f5bb09..710807e94a 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -280,7 +280,7 @@ func TestPostgresExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.PostgresExporter.AgentID) } diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index 0f0b99f646..8e0f7e5f47 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -277,7 +277,7 @@ func TestProxySQLExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.ProxysqlExporter.AgentID) } diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index 356c7125eb..8481faf77d 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -212,7 +212,7 @@ func TestRDSExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.RDSExporter.AgentID) } diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index ca3ddb67b2..f8304fbe94 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -423,14 +423,14 @@ func TestPMMAgent(t *testing.T) { AgentID: pmmAgentID, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID %q not found.", pmmAgentID) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID %s not found.", pmmAgentID) assert.Nil(t, getAgentRes) listAgentsOK, err = client.Default.AgentsService.ListAgents(&agents.ListAgentsParams{ PMMAgentID: pointer.ToString(pmmAgentID), Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID %q not found.", pmmAgentID) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID %s not found.", pmmAgentID) assert.Nil(t, listAgentsOK) }) @@ -444,7 +444,7 @@ func TestPMMAgent(t *testing.T) { } res, err := client.Default.AgentsService.RemoveAgent(params) assert.Nil(t, res) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, `Agent with ID %q not found.`, agentID) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, `Agent with ID %s not found.`, agentID) }) t.Run("Remove with empty params", func(t *testing.T) { @@ -722,7 +722,7 @@ func TestQanAgentExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANMysqlPerfschemaAgent.AgentID) } @@ -981,7 +981,7 @@ func TestPGStatStatementsQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatementsAgent.AgentID) } @@ -1306,7 +1306,7 @@ func TestPGStatMonitorQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID \"pmm-not-exist-server\" not found.") + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatmonitorAgent.AgentID) } @@ -1357,7 +1357,7 @@ func TestMetricsResolutionsChange(t *testing.T) { }) require.NoError(t, err) agentID := res.Payload.PostgresExporter.AgentID - defer pmmapitests.RemoveAgents(t, agentID) + defer pmmapitests.RemoveAgentsWithForce(t, agentID) getAgentRes, err := client.Default.AgentsService.GetAgent( &agents.GetAgentParams{ diff --git a/api-tests/management/external_test.go b/api-tests/management/external_test.go index 250dba219f..8009a296aa 100644 --- a/api-tests/management/external_test.go +++ b/api-tests/management/external_test.go @@ -311,7 +311,7 @@ func TestAddExternal(t *testing.T) { }, } addExternalOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addExternalOK) }) @@ -335,7 +335,7 @@ func TestAddExternal(t *testing.T) { }, } addExternalOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalRequest.ListenPort: value must be inside range (0, 65536)") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalServiceParams.ListenPort: value must be inside range (0, 65536)") assert.Nil(t, addExternalOK) }) diff --git a/api-tests/management/haproxy_test.go b/api-tests/management/haproxy_test.go index ae338b8846..126bd2a7df 100644 --- a/api-tests/management/haproxy_test.go +++ b/api-tests/management/haproxy_test.go @@ -303,7 +303,7 @@ func TestAddHAProxy(t *testing.T) { }, } addHAProxyOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddHAProxyRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddHAProxyServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addHAProxyOK) }) @@ -324,7 +324,7 @@ func TestAddHAProxy(t *testing.T) { }, } addHAProxyOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddHAProxyRequest.ListenPort: value must be inside range (0, 65536)") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddHAProxyServiceParams.ListenPort: value must be inside range (0, 65536)") assert.Nil(t, addHAProxyOK) }) diff --git a/api-tests/management/mongodb_test.go b/api-tests/management/mongodb_test.go index aff5326a21..38a663960b 100644 --- a/api-tests/management/mongodb_test.go +++ b/api-tests/management/mongodb_test.go @@ -478,7 +478,7 @@ func TestAddMongoDB(t *testing.T) { }, } addMongoDBOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addMongoDBOK) }) @@ -555,7 +555,7 @@ func TestAddMongoDB(t *testing.T) { }, } addMongoDBOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBServiceParams.PmmAgentId: value length must be at least 1 runes") assert.Nil(t, addMongoDBOK) }) diff --git a/api-tests/management/mysql_test.go b/api-tests/management/mysql_test.go index ddd58952c1..4f2c31a947 100644 --- a/api-tests/management/mysql_test.go +++ b/api-tests/management/mysql_test.go @@ -507,7 +507,7 @@ func TestAddMySQL(t *testing.T) { }, } addMySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addMySQLOK) }) @@ -618,7 +618,7 @@ func TestAddMySQL(t *testing.T) { }, } addMySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLServiceParams.PmmAgentId: value length must be at least 1 runes") assert.Nil(t, addMySQLOK) }) @@ -645,7 +645,7 @@ func TestAddMySQL(t *testing.T) { }, } addMySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLRequest.Username: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLServiceParams.Username: value length must be at least 1 runes") assert.Nil(t, addMySQLOK) }) diff --git a/api-tests/management/postgresql_test.go b/api-tests/management/postgresql_test.go index 204a47c82e..b95b1a89ad 100644 --- a/api-tests/management/postgresql_test.go +++ b/api-tests/management/postgresql_test.go @@ -515,7 +515,7 @@ func TestAddPostgreSQL(t *testing.T) { }, } addPostgreSQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgreSQLRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgreSQLServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addPostgreSQLOK) }) @@ -594,7 +594,7 @@ func TestAddPostgreSQL(t *testing.T) { }, } addPostgreSQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgreSQLRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgreSQLServiceParams.PmmAgentId: value length must be at least 1 runes") assert.Nil(t, addPostgreSQLOK) }) diff --git a/api-tests/management/proxysql_test.go b/api-tests/management/proxysql_test.go index 240e2fb4c0..6a41fb5d51 100644 --- a/api-tests/management/proxysql_test.go +++ b/api-tests/management/proxysql_test.go @@ -472,7 +472,7 @@ func TestAddProxySQL(t *testing.T) { }, } addProxySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLRequest.ServiceName: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLServiceParams.ServiceName: value length must be at least 1 runes") assert.Nil(t, addProxySQLOK) }) @@ -581,7 +581,7 @@ func TestAddProxySQL(t *testing.T) { }, } addProxySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLServiceParams.PmmAgentId: value length must be at least 1 runes") assert.Nil(t, addProxySQLOK) }) @@ -608,7 +608,7 @@ func TestAddProxySQL(t *testing.T) { }, } addProxySQLOK, err := client.Default.ManagementService.AddService(params) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLRequest.Username: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLServiceParams.Username: value length must be at least 1 runes") assert.Nil(t, addProxySQLOK) }) } diff --git a/api-tests/management/rds_test.go b/api-tests/management/rds_test.go index b679746036..c4e08209a5 100644 --- a/api-tests/management/rds_test.go +++ b/api-tests/management/rds_test.go @@ -110,7 +110,7 @@ func TestAddRds(t *testing.T) { AgentID: agentID, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, agentID)) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, fmt.Sprintf(`Agent with ID %s not found.`, agentID)) _, err = inventoryClient.Default.NodesService.GetNode(&nodes.GetNodeParams{ NodeID: nodeID, @@ -168,7 +168,7 @@ func TestAddRds(t *testing.T) { AgentID: body.RDS.RDSExporter.AgentID, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, body.RDS.RDSExporter.AgentID)) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, fmt.Sprintf(`Agent with ID %s not found.`, body.RDS.RDSExporter.AgentID)) _, err = inventoryClient.Default.NodesService.GetNode(&nodes.GetNodeParams{ NodeID: body.RDS.Postgresql.NodeID, diff --git a/api-tests/server/logs_test.go b/api-tests/server/logs_test.go index 09a65c0caa..0e09e84b4b 100644 --- a/api-tests/server/logs_test.go +++ b/api-tests/server/logs_test.go @@ -75,6 +75,7 @@ func TestDownloadLogs(t *testing.T) { "victoriametrics_targets.json", "vmalert.ini", "vmalert.log", + "vmproxy.ini", "vmproxy.log", } diff --git a/api-tests/server/platform_test.go b/api-tests/server/platform_test.go index 56452eacbb..b7e16d74a5 100644 --- a/api-tests/server/platform_test.go +++ b/api-tests/server/platform_test.go @@ -80,7 +80,7 @@ func TestPlatform(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, http.StatusBadRequest, codes.InvalidArgument, "invalid field ServerName: value '' must not be an empty string") + pmmapitests.AssertAPIErrorf(t, err, http.StatusBadRequest, codes.InvalidArgument, "invalid field ConnectRequest.ServerName: value '' must not be an empty string") }) t.Run("successful connect and disconnect", func(t *testing.T) { diff --git a/api-tests/server/settings_test.go b/api-tests/server/settings_test.go index 56b6b26903..7b437ead3d 100644 --- a/api-tests/server/settings_test.go +++ b/api-tests/server/settings_test.go @@ -632,7 +632,7 @@ func TestSettings(t *testing.T) { getRes, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) - getExpected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ + getExpected := &server.GetSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", @@ -657,7 +657,7 @@ func TestSettings(t *testing.T) { // Check if the values were persisted getRes, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) - getExpected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ + getExpected := &server.GetSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", @@ -679,10 +679,10 @@ func TestSettings(t *testing.T) { } `json:"settings"` } changeURI := pmmapitests.BaseURL.ResolveReference(&url.URL{ - Path: "v1/Settings/Change", + Path: "v1/server/settings", }) getURI := pmmapitests.BaseURL.ResolveReference(&url.URL{ - Path: "v1/Settings/Get", + Path: "v1/server/settings", }) for change, get := range map[string]string{ @@ -703,7 +703,7 @@ func TestSettings(t *testing.T) { p.Settings.MetricsResolutions.LR = change b, err := json.Marshal(p.Settings) require.NoError(t, err) - req, err := http.NewRequestWithContext(pmmapitests.Context, http.MethodPost, changeURI.String(), bytes.NewReader(b)) + req, err := http.NewRequestWithContext(pmmapitests.Context, http.MethodPut, changeURI.String(), bytes.NewReader(b)) require.NoError(t, err) if pmmapitests.Debug { b, err = httputil.DumpRequestOut(req, true) @@ -733,7 +733,7 @@ func TestSettings(t *testing.T) { require.NoError(t, err) assert.Equal(t, get, p.Settings.MetricsResolutions.LR, "Change") - req, err = http.NewRequestWithContext(pmmapitests.Context, http.MethodPost, getURI.String(), nil) + req, err = http.NewRequestWithContext(pmmapitests.Context, http.MethodGet, getURI.String(), nil) require.NoError(t, err) if pmmapitests.Debug { b, err = httputil.DumpRequestOut(req, true) diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 9dcbd89df9..1b96b51081 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -55,11 +55,11 @@ func NewAgentsService(db *reform.DB, r agentsRegistry, state agentsStateUpdater, } } -type commonAgentParams interface { - GetEnable() bool - GetEnablePushMetrics() bool - GetCustomLabels() *common.StringMap - GetMetricsResolutions() *common.MetricsResolutions +type commonAgentParams struct { + Enable *bool + EnablePushMetrics *bool + CustomLabels *common.StringMap + MetricsResolutions *common.MetricsResolutions } func toInventoryAgent(q *reform.Querier, row *models.Agent, registry agentsRegistry) (inventoryv1.Agent, error) { //nolint:ireturn @@ -75,18 +75,18 @@ func toInventoryAgent(q *reform.Querier, row *models.Agent, registry agentsRegis } // changeAgent changes common parameters for given Agent. -func (as *AgentsService) changeAgent(ctx context.Context, agentID string, common commonAgentParams) (inventoryv1.Agent, error) { //nolint:ireturn +func (as *AgentsService) changeAgent(ctx context.Context, agentID string, common *commonAgentParams) (inventoryv1.Agent, error) { //nolint:ireturn var agent inventoryv1.Agent e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.ChangeCommonAgentParams{ - Enabled: pointer.ToBool(common.GetEnable()), - EnablePushMetrics: pointer.ToBool(common.GetEnablePushMetrics()), + Enabled: common.Enable, + EnablePushMetrics: common.EnablePushMetrics, } - if common.GetCustomLabels() != nil { - params.CustomLabels = &common.GetCustomLabels().Values + if common.CustomLabels != nil { + params.CustomLabels = &common.CustomLabels.Values } - if mrs := common.GetMetricsResolutions(); mrs != nil { + if mrs := common.MetricsResolutions; mrs != nil { if hr := mrs.GetHr(); hr != nil { params.MetricsResolutions.HR = pointer.ToDuration(hr.AsDuration()) } @@ -235,7 +235,13 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add // ChangeNodeExporter updates node_exporter Agent with given parameters. func (as *AgentsService) ChangeNodeExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -316,7 +322,13 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A // ChangeMySQLdExporter updates mysqld_exporter Agent with given parameters. func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -394,7 +406,13 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. // ChangeMongoDBExporter updates mongo_exporter Agent with given parameters. func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -467,7 +485,13 @@ func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inve // ChangeQANMySQLPerfSchemaAgent updates MySQL PerfSchema QAN Agent with given parameters. func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, agentID string, p *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -546,7 +570,13 @@ func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *invento // ChangeQANMySQLSlowlogAgent updates MySQL Slowlog QAN Agent with given parameters. func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, agentID string, p *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -623,7 +653,13 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 // ChangePostgresExporter updates postgres_exporter Agent with given parameters. func (as *AgentsService) ChangePostgresExporter(ctx context.Context, agentID string, p *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -697,7 +733,13 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve // //nolint:lll,dupl func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, agentID string, p *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -773,7 +815,13 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 // ChangeProxySQLExporter updates proxysql_exporter Agent with given parameters. func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -844,7 +892,13 @@ func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, // ChangeQANPostgreSQLPgStatementsAgent updates PostgreSQL Pg stat statements QAN Agent with given parameters. func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, agentID string, p *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -916,7 +970,13 @@ func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, // ChangeQANPostgreSQLPgStatMonitorAgent updates PostgreSQL Pg stat monitor QAN Agent with given parameters. func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, agentID string, p *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -980,7 +1040,13 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR // ChangeRDSExporter updates rds_exporter Agent with given parameters. func (as *AgentsService) ChangeRDSExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -1049,7 +1115,13 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 // ChangeExternalExporter updates external-exporter Agent with given parameters. func (as *AgentsService) ChangeExternalExporter(ctx context.Context, agentID string, p *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err } @@ -1113,7 +1185,13 @@ func (as *AgentsService) ChangeAzureDatabaseExporter( agentID string, p *inventoryv1.ChangeAzureDatabaseExporterParams, ) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(ctx, agentID, p) + common := &commonAgentParams{ + Enable: p.Enable, + EnablePushMetrics: p.EnablePushMetrics, + CustomLabels: p.CustomLabels, + MetricsResolutions: p.MetricsResolutions, + } + ag, err := as.changeAgent(ctx, agentID, common) if err != nil { return nil, err }