From e6d7ffe89c769884d7f8f449fc8f30b41e689891 Mon Sep 17 00:00:00 2001 From: Gretchen-z Date: Mon, 23 Mar 2026 19:20:09 +0300 Subject: [PATCH 1/2] Bump proto --- pom.xml | 2 +- .../thrift/service/AlertingService.java | 60 +++++++------------ .../integration/AlertingIntegrationTest.java | 36 ++++------- .../mayday/unit/TemplateHelperTest.java | 12 ++-- 4 files changed, 39 insertions(+), 71 deletions(-) diff --git a/pom.xml b/pom.xml index a9a8c63..f54e47a 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ dev.vality mayday-proto - 1.8-d79c25b + 1.3-bd21fa1 dev.vality diff --git a/src/main/java/dev/vality/alerting/mayday/thrift/service/AlertingService.java b/src/main/java/dev/vality/alerting/mayday/thrift/service/AlertingService.java index 73b74b6..ad3eef1 100644 --- a/src/main/java/dev/vality/alerting/mayday/thrift/service/AlertingService.java +++ b/src/main/java/dev/vality/alerting/mayday/thrift/service/AlertingService.java @@ -27,28 +27,22 @@ public class AlertingService implements AlertingServiceSrv.Iface { private final TemplateHelper templateHelper; - private final Converter alertTemplateAlertConverter; private final Converter, AlertConfiguration> alertParamsToAlertConfiguration; @Override - public void deleteAllAlerts(String userId) { - log.info("Removing all alerts for user '{}'", userId); - alertmanagerService.deleteUserRoutes(userId); - prometheusService.deleteAllUserAlerts(userId); - log.info("Removed all alerts for user '{}'", userId); + public void deleteAlert(DeleteAlertRequest deleteAlertRequest) throws AlertNotFound { + String userAlertId = deleteAlertRequest.getUserAlertId(); + String userId = deleteAlertRequest.getUserId(); + log.info("Removing alert '{}' for user '{}'", userAlertId, userId); + alertmanagerService.deleteUserRoute(userAlertId); + prometheusService.deleteUserAlert(userId, userAlertId); + log.info("Removed alert '{}' for user '{}'", userAlertId, userId); } @Override - public void deleteAlert(String userId, String alertId) { - log.info("Removing alert '{}' for user '{}'", alertId, userId); - alertmanagerService.deleteUserRoute(alertId); - prometheusService.deleteUserAlert(userId, alertId); - log.info("Removed alert '{}' for user '{}'", alertId, userId); - } - - @Override - public List getUserAlerts(String userId) { + public List getUserAlerts(GetUserAlertsRequest getUserAlertsRequest) throws UserNotFound { + String userId = getUserAlertsRequest.getUserId(); log.info("Retrieving all alerts for user '{}'", userId); List userAlerts = prometheusService.getUserAlerts(userId); log.info("Retrieved {} alerts for user '{}'", userAlerts.size(), userId); @@ -56,28 +50,20 @@ public List getUserAlerts(String userId) { } @Override - public List getSupportedAlerts() { - log.info("Retrieving all supported alerts"); - List metricTemplates = - templateService.getAlertTemplates(); - List supportedAlerts = - metricTemplates.stream() - .map(alertTemplateAlertConverter::convert) - .sorted(Comparator.comparing(a -> a.getName())) - .collect(Collectors.toList()); - log.info("Retrieved {} supported alerts", supportedAlerts.size()); - return supportedAlerts; - } - - @Override - public AlertConfiguration getAlertConfiguration(String alertTemplateId) { - log.info("Retrieving configuration for alert '{}'", alertTemplateId); - List metricParams = - templateService.getAlertTemplateParams(alertTemplateId); - AlertConfiguration alertConfiguration = alertParamsToAlertConfiguration.convert(metricParams); - alertConfiguration.setId(alertTemplateId); - log.info("Successfully retrieved configuration for alert '{}': {}", alertTemplateId, alertConfiguration); - return alertConfiguration; + public List getAlertConfigurationsList() { + log.info("Retrieving all alert configurations"); + List alertConfigurations = templateService.getAlertTemplates().stream() + .sorted(Comparator.comparing(AlertTemplate::getReadableName)) + .map(alertTemplate -> { + AlertConfiguration alertConfiguration = + alertParamsToAlertConfiguration.convert(alertTemplate.getParameters()); + alertConfiguration.setId(alertTemplate.getId()); + alertConfiguration.setName(alertTemplate.getReadableName()); + return alertConfiguration; + }) + .collect(Collectors.toList()); + log.info("Retrieved {} alert configurations", alertConfigurations.size()); + return alertConfigurations; } @Override diff --git a/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java b/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java index 0f4fc7e..866ff00 100644 --- a/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java +++ b/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java @@ -1,9 +1,6 @@ package dev.vality.alerting.mayday.integration; -import dev.vality.alerting.mayday.Alert; -import dev.vality.alerting.mayday.AlertConfiguration; -import dev.vality.alerting.mayday.AlertingServiceSrv; -import dev.vality.alerting.mayday.UserAlert; +import dev.vality.alerting.mayday.*; import dev.vality.alerting.mayday.alertmanager.client.k8s.AlertmanagerClient; import dev.vality.alerting.mayday.alertmanager.client.k8s.model.AlertmanagerConfig; import dev.vality.alerting.mayday.alertmanager.service.AlertmanagerService; @@ -101,7 +98,7 @@ void getUserAlertsEmpty() throws TException { .thenReturn(Optional.of(new PrometheusRule())); when(prometheusClient.getPrometheusRuleGroupAlerts(prometheusService.getPrometheusRuleName(), userName)) .thenReturn(Set.of()); - List userAlerts = thriftEndpoint.getUserAlerts(userName); + List userAlerts = thriftEndpoint.getUserAlerts(new GetUserAlertsRequest().setUserId(userName)); assertNotNull(userAlerts); assertTrue(userAlerts.isEmpty()); verify(prometheusClient, times(1)) @@ -118,7 +115,7 @@ void getUserAlerts() throws TException { .thenReturn(Optional.of(new PrometheusRule())); when(prometheusClient.getPrometheusRuleGroupAlerts(prometheusService.getPrometheusRuleName(), userName)) .thenReturn(Set.of(testRule)); - List userAlerts = thriftEndpoint.getUserAlerts(userName); + List userAlerts = thriftEndpoint.getUserAlerts(new GetUserAlertsRequest().setUserId(userName)); assertNotNull(userAlerts); assertEquals(1, userAlerts.size()); @@ -132,28 +129,17 @@ void getUserAlerts() throws TException { } AlertConfiguration getPaymentConversionAlertConfiguration() throws TException { - List alertList = getSupportedAlerts(); - AlertConfiguration alertConfiguration = - thriftEndpoint.getAlertConfiguration(alertList.stream() - .filter(alert -> alert.getId().equals("payment_conversion")) - .findFirst() - .orElseThrow().getId()); - assertNotNull(alertConfiguration); + List alertConfigurations = thriftEndpoint.getAlertConfigurationsList(); + assertNotNull(alertConfigurations); + assertFalse(alertConfigurations.isEmpty()); + AlertConfiguration alertConfiguration = alertConfigurations.stream() + .filter(alert -> alert.getId().equals("payment_conversion")) + .findFirst() + .orElseThrow(); assertNotNull(alertConfiguration.getId()); + assertNotNull(alertConfiguration.getName()); assertNotNull(alertConfiguration.getParameters()); assertFalse(alertConfiguration.getParameters().isEmpty()); return alertConfiguration; } - - private List getSupportedAlerts() throws TException { - List alertList = thriftEndpoint.getSupportedAlerts(); - assertNotNull(alertList); - assertFalse(alertList.isEmpty()); - - for (Alert alert : alertList) { - assertNotNull(alert.getId()); - assertNotNull(alert.getName()); - } - return alertList; - } } diff --git a/src/test/java/dev/vality/alerting/mayday/unit/TemplateHelperTest.java b/src/test/java/dev/vality/alerting/mayday/unit/TemplateHelperTest.java index 32df365..01cf1ce 100644 --- a/src/test/java/dev/vality/alerting/mayday/unit/TemplateHelperTest.java +++ b/src/test/java/dev/vality/alerting/mayday/unit/TemplateHelperTest.java @@ -1,6 +1,5 @@ package dev.vality.alerting.mayday.unit; -import dev.vality.alerting.mayday.Alert; import dev.vality.alerting.mayday.AlertConfiguration; import dev.vality.alerting.mayday.AlertingServiceSrv; import dev.vality.alerting.mayday.alertmanager.client.k8s.AlertmanagerClient; @@ -17,7 +16,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.bean.override.mockito.MockitoBean; -import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -78,11 +76,9 @@ void preparePrometheusRuleDataTest() throws TException { AlertConfiguration getPaymentConversionAlertConfiguration() throws TException { - List alertList = thriftEndpoint.getSupportedAlerts(); - return - thriftEndpoint.getAlertConfiguration(alertList.stream() - .filter(alert -> alert.getId().equals("payment_conversion")) - .findFirst() - .orElseThrow().getId()); + return thriftEndpoint.getAlertConfigurationsList().stream() + .filter(alert -> alert.getId().equals("payment_conversion")) + .findFirst() + .orElseThrow(); } } From 9e3a8809429e0d2dec14cecbc884e4ecd186e535 Mon Sep 17 00:00:00 2001 From: Gretchen-z Date: Wed, 25 Mar 2026 11:36:11 +0300 Subject: [PATCH 2/2] Bump proto --- .../integration/AlertingIntegrationTest.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java b/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java index 866ff00..9d16fe7 100644 --- a/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java +++ b/src/test/java/dev/vality/alerting/mayday/integration/AlertingIntegrationTest.java @@ -72,6 +72,9 @@ void createAlert() throws TException { when(dawayDao.getPaymentTerminals()).thenReturn(DawayObjectUtil.getTestTerminals()); when(dawayDao.getShops()).thenReturn(DawayObjectUtil.getTestShops()); when(dawayDao.getCurrencies()).thenReturn(DawayObjectUtil.getTestCurrencies()); + when(dawayDao.getPayoutProviders()).thenReturn(List.of()); + when(dawayDao.getPayoutTerminals()).thenReturn(List.of()); + when(dawayDao.getWallets()).thenReturn(List.of()); var createAlertRequest = ThriftObjectUtil.testCreatePaymentConversionAlertRequest(getPaymentConversionAlertConfiguration()); @@ -85,10 +88,13 @@ void createAlert() throws TException { verify(alertmanagerClient, times(1)) .addRouteIfNotExists(eq(alertmanagerService.getAlertmanagerConfigName()), any()); - verify(dawayDao, times(2)).getPaymentProviders(); - verify(dawayDao, times(2)).getPaymentTerminals(); - verify(dawayDao, times(2)).getShops(); - verify(dawayDao, times(2)).getCurrencies(); + verify(dawayDao, times(6)).getPaymentProviders(); + verify(dawayDao, times(6)).getPaymentTerminals(); + verify(dawayDao, times(6)).getShops(); + verify(dawayDao, times(6)).getCurrencies(); + verify(dawayDao, times(4)).getPayoutProviders(); + verify(dawayDao, times(4)).getPayoutTerminals(); + verify(dawayDao, times(5)).getWallets(); } @Test