Search in sources :

Example 1 with Alert

use of io.gravitee.rest.api.portal.rest.model.Alert in project gravitee-management-rest-api by gravitee-io.

the class AlertMapperTest method convertAlertTriggerEntityToAlertResponseTime.

@Test
public void convertAlertTriggerEntityToAlertResponseTime() {
    AlertTriggerEntity alertTriggerEntity = mock(AlertTriggerEntity.class);
    when(alertTriggerEntity.getType()).thenReturn(AlertMapper.RESPONSE_TIME_ALERT);
    final AggregationCondition aggregationCondition = mock(AggregationCondition.class);
    when(alertTriggerEntity.getConditions()).thenReturn(Collections.singletonList(aggregationCondition));
    when(aggregationCondition.getTimeUnit()).thenReturn(TimeUnit.MINUTES);
    when(aggregationCondition.getDuration()).thenReturn(10L);
    when(aggregationCondition.getThreshold()).thenReturn(200D);
    final Alert actual = alertMapper.convert(alertTriggerEntity);
    assertThat(actual.getType()).isEqualTo(AlertType.RESPONSE_TIME);
    assertThat(actual.getResponseTime()).isEqualTo(200);
    assertThat(actual.getDuration()).isEqualTo(10);
    assertThat(actual.getTimeUnit()).isEqualTo(AlertTimeUnit.MINUTES);
}
Also used : AggregationCondition(io.gravitee.alert.api.condition.AggregationCondition) Alert(io.gravitee.rest.api.portal.rest.model.Alert) UpdateAlertTriggerEntity(io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity) AlertTriggerEntity(io.gravitee.rest.api.model.alert.AlertTriggerEntity) NewAlertTriggerEntity(io.gravitee.rest.api.model.alert.NewAlertTriggerEntity) Test(org.junit.Test)

Example 2 with Alert

use of io.gravitee.rest.api.portal.rest.model.Alert in project gravitee-management-rest-api by gravitee-io.

the class AlertMapperTest method convertAlertTriggerEntityToAlertStatus200.

@Test
public void convertAlertTriggerEntityToAlertStatus200() {
    AlertTriggerEntity alertTriggerEntity = mock(AlertTriggerEntity.class);
    when(alertTriggerEntity.getType()).thenReturn(AlertMapper.STATUS_ALERT);
    final RateCondition rateCondition = mock(RateCondition.class);
    when(alertTriggerEntity.getConditions()).thenReturn(Collections.singletonList(rateCondition));
    when(rateCondition.getTimeUnit()).thenReturn(TimeUnit.MINUTES);
    when(rateCondition.getDuration()).thenReturn(10L);
    when(rateCondition.getThreshold()).thenReturn(20D);
    final ThresholdRangeCondition thresholdRangeCondition = mock(ThresholdRangeCondition.class);
    when(rateCondition.getComparison()).thenReturn(thresholdRangeCondition);
    when(thresholdRangeCondition.getThresholdLow()).thenReturn(200D);
    when(thresholdRangeCondition.getThresholdHigh()).thenReturn(200D);
    final Alert actual = alertMapper.convert(alertTriggerEntity);
    assertThat(actual.getType()).isEqualTo(AlertType.STATUS);
    assertThat(actual.getStatusCode()).isEqualTo("200");
    assertThat(actual.getStatusPercent()).isEqualTo(20);
    assertThat(actual.getDuration()).isEqualTo(10);
    assertThat(actual.getTimeUnit()).isEqualTo(AlertTimeUnit.MINUTES);
}
Also used : RateCondition(io.gravitee.alert.api.condition.RateCondition) ThresholdRangeCondition(io.gravitee.alert.api.condition.ThresholdRangeCondition) Alert(io.gravitee.rest.api.portal.rest.model.Alert) UpdateAlertTriggerEntity(io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity) AlertTriggerEntity(io.gravitee.rest.api.model.alert.AlertTriggerEntity) NewAlertTriggerEntity(io.gravitee.rest.api.model.alert.NewAlertTriggerEntity) Test(org.junit.Test)

Example 3 with Alert

use of io.gravitee.rest.api.portal.rest.model.Alert in project gravitee-management-rest-api by gravitee-io.

the class AlertMapper method convert.

public Alert convert(AlertTriggerEntity alertTriggerEntity) {
    final Alert alert = new Alert();
    alert.setId(alertTriggerEntity.getId());
    alert.setEnabled(alertTriggerEntity.isEnabled());
    if (RESPONSE_TIME_ALERT.equals(alertTriggerEntity.getType())) {
        alert.setType(AlertType.RESPONSE_TIME);
        final AggregationCondition condition = (AggregationCondition) alertTriggerEntity.getConditions().get(0);
        alert.setDuration((int) condition.getDuration());
        alert.setTimeUnit(convert(condition.getTimeUnit()));
        alert.setResponseTime(condition.getThreshold().intValue());
    } else if (STATUS_ALERT.equals(alertTriggerEntity.getType())) {
        alert.setType(AlertType.STATUS);
        final RateCondition condition = (RateCondition) alertTriggerEntity.getConditions().get(0);
        alert.setDuration((int) condition.getDuration());
        alert.setTimeUnit(convert(condition.getTimeUnit()));
        final ThresholdRangeCondition comparison = (ThresholdRangeCondition) condition.getComparison();
        alert.setStatusCode(convertStatusCode(comparison.getThresholdLow(), comparison.getThresholdHigh()));
        alert.setStatusPercent((int) condition.getThreshold());
    }
    return alert;
}
Also used : AggregationCondition(io.gravitee.alert.api.condition.AggregationCondition) RateCondition(io.gravitee.alert.api.condition.RateCondition) Alert(io.gravitee.rest.api.portal.rest.model.Alert) ThresholdRangeCondition(io.gravitee.alert.api.condition.ThresholdRangeCondition)

Example 4 with Alert

use of io.gravitee.rest.api.portal.rest.model.Alert in project gravitee-management-rest-api by gravitee-io.

the class AlertMapperTest method convertAlertTriggerEntityToAlertStatus2xx.

@Test
public void convertAlertTriggerEntityToAlertStatus2xx() {
    AlertTriggerEntity alertTriggerEntity = mock(AlertTriggerEntity.class);
    when(alertTriggerEntity.getType()).thenReturn(AlertMapper.STATUS_ALERT);
    final RateCondition rateCondition = mock(RateCondition.class);
    when(alertTriggerEntity.getConditions()).thenReturn(Collections.singletonList(rateCondition));
    when(rateCondition.getTimeUnit()).thenReturn(TimeUnit.MINUTES);
    when(rateCondition.getDuration()).thenReturn(10L);
    when(rateCondition.getThreshold()).thenReturn(20D);
    final ThresholdRangeCondition thresholdRangeCondition = mock(ThresholdRangeCondition.class);
    when(rateCondition.getComparison()).thenReturn(thresholdRangeCondition);
    when(thresholdRangeCondition.getThresholdLow()).thenReturn(200D);
    when(thresholdRangeCondition.getThresholdHigh()).thenReturn(299D);
    final Alert actual = alertMapper.convert(alertTriggerEntity);
    assertThat(actual.getType()).isEqualTo(AlertType.STATUS);
    assertThat(actual.getStatusCode()).isEqualTo("2xx");
    assertThat(actual.getStatusPercent()).isEqualTo(20);
    assertThat(actual.getDuration()).isEqualTo(10);
    assertThat(actual.getTimeUnit()).isEqualTo(AlertTimeUnit.MINUTES);
}
Also used : RateCondition(io.gravitee.alert.api.condition.RateCondition) ThresholdRangeCondition(io.gravitee.alert.api.condition.ThresholdRangeCondition) Alert(io.gravitee.rest.api.portal.rest.model.Alert) UpdateAlertTriggerEntity(io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity) AlertTriggerEntity(io.gravitee.rest.api.model.alert.AlertTriggerEntity) NewAlertTriggerEntity(io.gravitee.rest.api.model.alert.NewAlertTriggerEntity) Test(org.junit.Test)

Example 5 with Alert

use of io.gravitee.rest.api.portal.rest.model.Alert in project gravitee-management-rest-api by gravitee-io.

the class ApplicationAlertResource method updateAlert.

@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Permissions({ @Permission(value = RolePermission.APPLICATION_ALERT, acls = RolePermissionAction.UPDATE) })
public Response updateAlert(@PathParam("applicationId") String applicationId, @PathParam("alertId") String alertId, @Valid @NotNull(message = "Input must not be null.") AlertInput alertInput) {
    LOGGER.info("Updating alert {}", alertId);
    checkPlugins();
    final UpdateAlertTriggerEntity updateAlertTriggerEntity = alertMapper.convertToUpdate(alertInput);
    updateAlertTriggerEntity.setId(alertId);
    final AlertTriggerEntity updated = applicationAlertService.update(applicationId, updateAlertTriggerEntity);
    Alert alert = alertMapper.convert(updated);
    return Response.ok(alert).build();
}
Also used : UpdateAlertTriggerEntity(io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity) Alert(io.gravitee.rest.api.portal.rest.model.Alert) UpdateAlertTriggerEntity(io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity) AlertTriggerEntity(io.gravitee.rest.api.model.alert.AlertTriggerEntity) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Permissions(io.gravitee.rest.api.portal.rest.security.Permissions) PUT(javax.ws.rs.PUT)

Aggregations

Alert (io.gravitee.rest.api.portal.rest.model.Alert)5 AlertTriggerEntity (io.gravitee.rest.api.model.alert.AlertTriggerEntity)4 UpdateAlertTriggerEntity (io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity)4 RateCondition (io.gravitee.alert.api.condition.RateCondition)3 ThresholdRangeCondition (io.gravitee.alert.api.condition.ThresholdRangeCondition)3 NewAlertTriggerEntity (io.gravitee.rest.api.model.alert.NewAlertTriggerEntity)3 Test (org.junit.Test)3 AggregationCondition (io.gravitee.alert.api.condition.AggregationCondition)2 Permissions (io.gravitee.rest.api.portal.rest.security.Permissions)1 Consumes (javax.ws.rs.Consumes)1 PUT (javax.ws.rs.PUT)1 Produces (javax.ws.rs.Produces)1