Search in sources :

Example 16 with TopologyResponse

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));
}
Also used : TopologyResponse(org.apache.metron.rest.model.TopologyResponse) TopologyStatus(org.apache.metron.rest.model.TopologyStatus) Test(org.junit.jupiter.api.Test)

Example 17 with TopologyResponse

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"));
}
Also used : TopologyResponse(org.apache.metron.rest.model.TopologyResponse) TopologySummary(org.apache.metron.rest.model.TopologySummary) Test(org.junit.jupiter.api.Test)

Example 18 with TopologyResponse

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);
}
Also used : TopologyResponse(org.apache.metron.rest.model.TopologyResponse) SensorParserGroup(org.apache.metron.common.configuration.SensorParserGroup)

Aggregations

TopologyResponse (org.apache.metron.rest.model.TopologyResponse)18 Test (org.junit.jupiter.api.Test)15 TopologySummary (org.apache.metron.rest.model.TopologySummary)6 TopologyStatus (org.apache.metron.rest.model.TopologyStatus)5 HashMap (java.util.HashMap)4 Map (java.util.Map)2 SensorParserConfig (org.apache.metron.common.configuration.SensorParserConfig)2 SensorParserGroup (org.apache.metron.common.configuration.SensorParserGroup)2