From 0066d04a2824162f72384b0914dc987e00669d41 Mon Sep 17 00:00:00 2001 From: Craig Bryant Date: Tue, 1 Apr 2014 16:55:29 -0600 Subject: [PATCH] Change to use the AlarmStateTransitionedEvent from mon-common and remove AlarmStateTransitionEvent from mon-thresh. Update creation of AlarmUpdatedEvent because it now has more fields. --- pom.xml | 2 +- .../model/AlarmStateTransitionEvent.java | 43 ------------------- .../thresholding/AlarmThresholdingBolt.java | 4 +- .../hpcloud/mon/ThresholdingEngineTest.java | 4 +- .../model/AlarmStateTransitionEventTest.java | 17 -------- .../thresholding/EventProcessingBoltTest.java | 5 ++- .../deserializer/EventDeserializerTest.java | 2 +- 7 files changed, 9 insertions(+), 68 deletions(-) delete mode 100644 src/main/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEvent.java delete mode 100644 src/test/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEventTest.java diff --git a/pom.xml b/pom.xml index 874911e..e9275c3 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ - 1.0.0.22 + 1.0.0.26 0.7.0-rc1 true diff --git a/src/main/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEvent.java b/src/main/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEvent.java deleted file mode 100644 index c8ac146..0000000 --- a/src/main/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hpcloud.mon.domain.model; - -import com.fasterxml.jackson.annotation.JsonRootName; -import com.hpcloud.mon.common.model.alarm.AlarmState; - -/** - * Represents an alarm state transition having occurred. - * - * @author Jonathan Halterman - */ -@JsonRootName(value = "alarm-transitioned") -public class AlarmStateTransitionEvent { - public String tenantId; - public String alarmId; - public String alarmName; - public String alarmDescription; - public AlarmState oldState; - public AlarmState newState; - public String stateChangeReason; - public long timestamp; - - public AlarmStateTransitionEvent() { - } - - public AlarmStateTransitionEvent(String tenantId, String alarmId, String alarmName, String alarmDescription, - AlarmState oldState, AlarmState newState, String stateChangeReason, long timestamp) { - this.tenantId = tenantId; - this.alarmId = alarmId; - this.alarmName = alarmName; - this.alarmDescription = alarmDescription; - this.oldState = oldState; - this.newState = newState; - this.stateChangeReason = stateChangeReason; - this.timestamp = timestamp; - } - - @Override - public String toString() { - return String.format( - "AlarmStateTransitionEvent [tenantId=%s, alarmId=%s, alarmName=%s, alarmDescription=%s, oldState=%s, newState=%s, stateChangeReason=%s, timestamp=%s]", - tenantId, alarmId, alarmName, alarmDescription, oldState, newState, stateChangeReason, timestamp); - } -} diff --git a/src/main/java/com/hpcloud/mon/infrastructure/thresholding/AlarmThresholdingBolt.java b/src/main/java/com/hpcloud/mon/infrastructure/thresholding/AlarmThresholdingBolt.java index 009b9b0..cda8b50 100644 --- a/src/main/java/com/hpcloud/mon/infrastructure/thresholding/AlarmThresholdingBolt.java +++ b/src/main/java/com/hpcloud/mon/infrastructure/thresholding/AlarmThresholdingBolt.java @@ -13,9 +13,9 @@ import backtype.storm.topology.base.BaseRichBolt; import backtype.storm.tuple.Tuple; import com.hpcloud.mon.ThresholdingConfiguration; +import com.hpcloud.mon.common.event.AlarmStateTransitionedEvent; import com.hpcloud.mon.common.model.alarm.AlarmState; import com.hpcloud.mon.domain.model.Alarm; -import com.hpcloud.mon.domain.model.AlarmStateTransitionEvent; import com.hpcloud.mon.domain.model.SubAlarm; import com.hpcloud.mon.domain.service.AlarmDAO; import com.hpcloud.mon.infrastructure.persistence.PersistenceModule; @@ -136,7 +136,7 @@ public class AlarmThresholdingBolt extends BaseRichBolt { alarmDAO.updateState(alarm.getId(), alarm.getState()); LOG.debug("Alarm {} transitioned from {} to {}", alarm, initialState, alarm.getState()); - AlarmStateTransitionEvent event = new AlarmStateTransitionEvent(alarm.getTenantId(), + AlarmStateTransitionedEvent event = new AlarmStateTransitionedEvent(alarm.getTenantId(), alarm.getId(), alarm.getName(), alarm.getDescription(), initialState, alarm.getState(), stateChangeReason, getTimestamp()); try { diff --git a/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java b/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java index b810fbf..05408a7 100644 --- a/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java +++ b/src/test/java/com/hpcloud/mon/ThresholdingEngineTest.java @@ -24,12 +24,12 @@ import backtype.storm.tuple.Values; import com.google.inject.AbstractModule; import com.hpcloud.configuration.KafkaProducerConfiguration; +import com.hpcloud.mon.common.event.AlarmStateTransitionedEvent; import com.hpcloud.mon.common.model.alarm.AlarmExpression; import com.hpcloud.mon.common.model.alarm.AlarmState; import com.hpcloud.mon.common.model.metric.Metric; import com.hpcloud.mon.common.model.metric.MetricDefinition; import com.hpcloud.mon.domain.model.Alarm; -import com.hpcloud.mon.domain.model.AlarmStateTransitionEvent; import com.hpcloud.mon.domain.model.SubAlarm; import com.hpcloud.mon.domain.service.AlarmDAO; import com.hpcloud.mon.domain.service.MetricDefinitionDAO; @@ -138,7 +138,7 @@ public class ThresholdingEngineTest extends TopologyTestCase { doAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { final Object[] args = invocation.getArguments(); - AlarmStateTransitionEvent event = Serialization.fromJson((String)args[2]); + AlarmStateTransitionedEvent event = Serialization.fromJson((String)args[2]); alarmsSent++; System.out.printf("Alarm transitioned from %s to %s%n", event.oldState, event.newState); assertEquals(event.alarmName, TEST_ALARM_NAME); diff --git a/src/test/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEventTest.java b/src/test/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEventTest.java deleted file mode 100644 index e99a3be..0000000 --- a/src/test/java/com/hpcloud/mon/domain/model/AlarmStateTransitionEventTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hpcloud.mon.domain.model; - -import static org.testng.Assert.assertEquals; - -import org.testng.annotations.Test; - -import com.hpcloud.mon.domain.model.AlarmStateTransitionEvent; -import com.hpcloud.util.Serialization; - -@Test -public class AlarmStateTransitionEventTest { - public void shouldSerialize() { - assertEquals( - Serialization.toJson(new AlarmStateTransitionEvent()), - "{\"alarm-transitioned\":{\"tenantId\":null,\"alarmId\":null,\"alarmName\":null,\"alarmDescription\":null,\"oldState\":null,\"newState\":null,\"stateChangeReason\":null,\"timestamp\":0}}"); - } -} diff --git a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/EventProcessingBoltTest.java b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/EventProcessingBoltTest.java index 645e5d5..72b842d 100644 --- a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/EventProcessingBoltTest.java +++ b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/EventProcessingBoltTest.java @@ -139,9 +139,10 @@ public class EventProcessingBoltTest { oldAndNewSubExpressionsFor(createAlarmSubExpressionMap(alarm), updatedAlarmExpression); final Map newAlarmSubExpressions = entry.getValue(); + Map changedSubExpressions = new HashMap<>(); final AlarmUpdatedEvent event = new AlarmUpdatedEvent(updatedAlarm.getTenantId(), updatedAlarm.getId(), - updatedAlarm.getName(), updatedAlarm.getAlarmExpression().getExpression(), entry.getKey(), - newAlarmSubExpressions); + updatedAlarm.getName(), updatedAlarm.getAlarmExpression().getExpression(), alarm.getState(), true, entry.getKey(), + changedSubExpressions, newAlarmSubExpressions); return event; } diff --git a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/deserializer/EventDeserializerTest.java b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/deserializer/EventDeserializerTest.java index 0e3d691..b6ed525 100644 --- a/src/test/java/com/hpcloud/mon/infrastructure/thresholding/deserializer/EventDeserializerTest.java +++ b/src/test/java/com/hpcloud/mon/infrastructure/thresholding/deserializer/EventDeserializerTest.java @@ -32,7 +32,7 @@ private EventDeserializer deserializer = new EventDeserializer(); } public void shouldDeserializeAlarmUpdatedEvent() { - roundTrip(new AlarmUpdatedEvent(TENANT_ID, ALARM_ID, ALARM_NAME, ALARM_EXPRESSION, null, null)); + roundTrip(new AlarmUpdatedEvent(TENANT_ID, ALARM_ID, ALARM_NAME, ALARM_EXPRESSION, null, false, null, null, null)); } private void roundTrip(Object event) {