use of org.apache.metron.rest.model.TopologyResponse in project metron by apache.
the class StormAdminServiceImplTest method stopParserTopologyShouldProperlyReturnErrorTopologyResponse.
@Test
public void stopParserTopologyShouldProperlyReturnErrorTopologyResponse() throws Exception {
TopologyStatus topologyStatus = new TopologyStatus();
topologyStatus.setName("bro");
when(stormCLIClientWrapper.stopParserTopology("bro", false)).thenReturn(1);
when(stormStatusService.getTopologyStatus("bro")).thenReturn(topologyStatus);
TopologyResponse expected = new TopologyResponse();
expected.setErrorMessage(TopologyStatusCode.STOP_ERROR.toString());
assertEquals(expected, stormAdminService.stopParserTopology("bro", false));
}
use of org.apache.metron.rest.model.TopologyResponse in project metron by apache.
the class StormStatusServiceImplTest method activateTopologyShouldReturnTopologyNotFoundTopologyResponse.
@Test
public void activateTopologyShouldReturnTopologyNotFoundTopologyResponse() throws Exception {
when(environment.getProperty(STORM_UI_SPRING_PROPERTY)).thenReturn(HTTP_STORM_UI);
when(restTemplate.getForObject(HTTP_STORM_UI + TOPOLOGY_SUMMARY_URL, TopologySummary.class)).thenReturn(new TopologySummary());
TopologyResponse expected = new TopologyResponse();
expected.setErrorMessage(TopologyStatusCode.TOPOLOGY_NOT_FOUND.toString());
assertEquals(expected, stormStatusService.activateTopology("bro"));
}
use of org.apache.metron.rest.model.TopologyResponse in project metron by apache.
the class StormAdminServiceImpl method startParserTopology.
/**
* Starts a parser topology. The name should either be a sensor name or group name in the case of aggregate parser topologies.
* @param name SensorParserConfig or SensorParserGroup name
* @return ToplogyResponse
* @throws RestException Global Config or SensorParserConfigs not found or starting the topology resulted in an error.
*/
@Override
public TopologyResponse startParserTopology(String name) throws RestException {
TopologyResponse topologyResponse = new TopologyResponse();
if (globalConfigService.get() == null) {
topologyResponse.setErrorMessage(TopologyStatusCode.GLOBAL_CONFIG_MISSING.toString());
return topologyResponse;
}
List<String> sensorTypes = Collections.singletonList(name);
// If name is a group then look up sensors to build the actual topology name
SensorParserGroup sensorParserGroup = sensorParserGroupService.findOne(name);
if (sensorParserGroup != null) {
sensorTypes = new ArrayList<>(sensorParserGroup.getSensors());
}
for (String sensorType : sensorTypes) {
if (sensorParserConfigService.findOne(sensorType.trim()) == null) {
topologyResponse.setErrorMessage(TopologyStatusCode.SENSOR_PARSER_CONFIG_MISSING.toString());
return topologyResponse;
}
}
// sort the sensor types so the topology name is consistent
Collections.sort(sensorTypes);
return createResponse(stormCLIClientWrapper.startParserTopology(String.join(ParserTopologyCLI.TOPOLOGY_OPTION_SEPARATOR, sensorTypes)), TopologyStatusCode.STARTED, TopologyStatusCode.START_ERROR);
}
Aggregations