Change to use the AlarmStateTransitionedEvent from mon-common and remove AlarmStateTransitionEvent from mon-thresh.

Update creation of AlarmUpdatedEvent because it now has more fields.
This commit is contained in:
Craig Bryant 2014-04-01 16:55:29 -06:00
parent db87f26edd
commit 0066d04a28
7 changed files with 9 additions and 68 deletions

View File

@ -14,7 +14,7 @@
</prerequisites>
<properties>
<mon.common.version>1.0.0.22</mon.common.version>
<mon.common.version>1.0.0.26</mon.common.version>
<dropwizard.version>0.7.0-rc1</dropwizard.version>
<skipITs>true</skipITs>

View File

@ -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);
}
}

View File

@ -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 {

View File

@ -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<Object>() {
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);

View File

@ -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}}");
}
}

View File

@ -139,9 +139,10 @@ public class EventProcessingBoltTest {
oldAndNewSubExpressionsFor(createAlarmSubExpressionMap(alarm), updatedAlarmExpression);
final Map<String, AlarmSubExpression> newAlarmSubExpressions = entry.getValue();
Map<String, AlarmSubExpression> 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;
}

View File

@ -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) {