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..9d16fe7 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;
@@ -75,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());
@@ -88,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
@@ -101,7 +104,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 +121,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 +135,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();
}
}